Я изменил разрешение видео, используя следующий код:
pFrameOut = avcodec_alloc_frame();
avpicture_fill((AVPicture *)pFrameOut, video_outbuf, PIX_FMT_YUV420P, video_width_out, video_height_out );
avcodec_decode_video2( pCodecCtx, pFrame, &frameFinished, &packet );
if(frameFinished) // Did we get a video frame?
{
static struct SwsContext *img_convert_ctx_in = NULL;
if (img_convert_ctx_in == NULL)
{
img_convert_ctx_in =sws_getContext( pCodecCtx->width, pCodecCtx->height, pCodecCtx->pix_fmt,video_width_out, video_height_out, PIX_FMT_YUV420P, SWS_BICUBIC,NULL, NULL, NULL );
if (img_convert_ctx_in == NULL)
{
LOGI(10,"naInitFile::Could no create Software Scale Context");
return ;
}
}
retval = sws_scale(img_convert_ctx_in, pFrame->data, pFrame->linesize, 0, pCodecCtx->height, pFrameOut->data, pFrameOut->linesize);
SaveVideoFrame();
}//end if(frameFinished)
Но после этого время игры увеличилось в два раза. Почему это могло произойти?