diff --git a/ffmpeg.c b/ffmpeg.c index 82b12c8276513e39dd537f11bb4a24aeaf411569..56b884a0042a10d1ba9a5c9d2e88f44f9a50e7d5 100644 --- a/ffmpeg.c +++ b/ffmpeg.c @@ -428,14 +428,15 @@ static void pre_process_video_frame(AVInputStream *ist, AVPicture *picture, void picture2 = &picture_tmp; avpicture_fill(picture2, buf, dec->pix_fmt, dec->width, dec->height); - if (do_deinterlace && avpicture_deinterlace(picture2, picture, - dec->pix_fmt, dec->width, dec->height) < 0) { - /* if error, do not deinterlace */ - av_free(buf); - buf = NULL; - picture2 = picture; - } - else { + if (do_deinterlace){ + if(avpicture_deinterlace(picture2, picture, + dec->pix_fmt, dec->width, dec->height) < 0) { + /* if error, do not deinterlace */ + av_free(buf); + buf = NULL; + picture2 = picture; + } + } else { if (img_convert(picture2, dec->pix_fmt, picture, dec->pix_fmt, dec->width, dec->height) < 0) { /* if error, do not copy */