ボイドConvertYUVFrameToBGRFrame(AVFrame * pYUVFrame、AVFrame * pBGRFrame)
{
int型nBGRFrameSize = av_image_get_buffer_size(AV_PIX_FMT_BGR24、pBGRFrame->幅、pBGRFrame->高さ、1)。
uint8_t * pszBGRBuffer =(uint8_t *)av_malloc(nBGRFrameSize)。
//ピクチャバッファポインタpszBGRBuffer pBGRFrameフレームマウント、手動で除去する必要がある
av_image_fill_arraysを(pBGRFrame->データ、pBGRFrame-> LINESIZE、pszBGRBuffer、AV_PIX_FMT_BGR24、pBGRFrame->幅、pBGRFrame->高さ、1)。
構造体SwsContext * pSwsCtx = sws_getContext(pYUVFrame->幅、pYUVFrame->高さ、AV_PIX_FMT_YUVJ420P、
pBGRFrame->幅、pBGRFrame->高さ、AV_PIX_FMT_BGR24、
SWS_BICUBIC、NULL、NULL、NULL);
0 //注意が必要でsrcSliceYを満たすために、または呼び出しが失敗
sws_scale(pSwsCtx、pYUVFrame->データ、
pYUVFrame-> LINESIZE、0、pYUVFrame->高さ、
pBGRFrame->データ、pBGRFrame-> LINESIZEを);
}
コールの例
AVFrame * pBGRFrame = NULL;
pBGRFrame = av_frame_alloc()。
pBGRFrame->幅= 2分の1920;
pBGRFrame->高さ= / 2 1080。
pBGRFrame->形式= AV_PIX_FMT_BGR24。
pVideoc-> ConvertYUVFrameToBGRFrame(PFRAME、pBGRFrame)。
説明:ズームアウトする画像のサイズは、ピクセルフォーマットが変換BGR24