diff --git a/ffplay.c b/ffplay.c index 248d66f79b..e849f89f23 100644 --- a/ffplay.c +++ b/ffplay.c @@ -1252,8 +1252,7 @@ static int queue_picture(VideoState *is, AVFrame *src_frame, double pts) pict.linesize[0] = vp->bmp->pitches[0]; pict.linesize[1] = vp->bmp->pitches[2]; pict.linesize[2] = vp->bmp->pitches[1]; - if (img_convert_ctx == NULL) { - img_convert_ctx = sws_getContext(is->video_st->codec->width, + img_convert_ctx = sws_getCachedContext(img_convert_ctx, is->video_st->codec->width, is->video_st->codec->height, is->video_st->codec->pix_fmt, is->video_st->codec->width, is->video_st->codec->height, dst_pix_fmt, sws_flags, NULL, NULL, NULL); @@ -1261,7 +1260,6 @@ static int queue_picture(VideoState *is, AVFrame *src_frame, double pts) fprintf(stderr, "Cannot initialize the conversion context\n"); exit(1); } - } sws_scale(img_convert_ctx, src_frame->data, src_frame->linesize, 0, is->video_st->codec->height, pict.data, pict.linesize); /* update the bitmap content */