Use getCachedContext instead getContext to support resolution change. Patch by Glenn...
authorGlenn A. Serre <gaserre@spiresoftware.com>
Fri, 3 Aug 2007 18:44:44 +0000 (18:44 +0000)
committerAlex Beregszaszi <alex@rtfs.hu>
Fri, 3 Aug 2007 18:44:44 +0000 (18:44 +0000)
Originally committed as revision 9873 to svn://svn.ffmpeg.org/ffmpeg/trunk

ffplay.c

index 248d66f..e849f89 100644 (file)
--- 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];
         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);
                     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);
             }
                 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 */
         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 */