--- file_not_specified_in_diff +++ file_not_specified_in_diff @@ -44,0 +44,1 @@ +#define __STDC_CONSTANT_MACROS @@ -47,0 +48,4 @@ +#include +#include +#include /* size_t */ +#include @@ -55,0 +60,2 @@ +static struct SwsContext *img_convert_ctx; + @@ -217,13 +224,15 @@ -#if LIBAVFORMAT_BUILD > 4628 - img_convert( (AVPicture*)&capture->rgb_picture, PIX_FMT_BGR24, - (AVPicture*)capture->picture, - capture->video_st->codec->pix_fmt, - capture->video_st->codec->width, - capture->video_st->codec->height ); -#else - img_convert( (AVPicture*)&capture->rgb_picture, PIX_FMT_BGR24, - (AVPicture*)capture->picture, - capture->video_st->codec.pix_fmt, - capture->video_st->codec.width, - capture->video_st->codec.height ); -#endif --- + + img_convert_ctx = sws_getContext(capture->video_st->codec->width, + capture->video_st->codec->height, + capture->video_st->codec->pix_fmt, + capture->video_st->codec->width, + capture->video_st->codec->height, + PIX_FMT_BGR24, + SWS_BICUBIC, + NULL, NULL, NULL); + + sws_scale(img_convert_ctx, capture->picture->data, + capture->picture->linesize, 0, + capture->video_st->codec->height, + capture->rgb_picture.data, capture->rgb_picture.linesize); + @@ -716,3 +725,14 @@ - if( img_convert((AVPicture *)mywriter->picture, c->pix_fmt, - (AVPicture *)mywriter->rgb_picture, PIX_FMT_BGR24, - image->width, image->height) < 0){ --- + img_convert_ctx = sws_getContext(image->width, + image->height, + PIX_FMT_BGR24, + c->width, + c->height, + c->pix_fmt, + SWS_BICUBIC, + NULL, NULL, NULL); + + if ( sws_scale(img_convert_ctx, mywriter->rgb_picture->data, + mywriter->rgb_picture->linesize, 0, + image->height, + mywriter->picture->data, mywriter->picture->linesize) < 0 ) + {