[FFmpeg-cvslog] ffplay: add support for changing pixel format

Marton Balint git at videolan.org
Thu Jun 7 22:00:50 CEST 2012


ffmpeg | branch: master | Marton Balint <cus at passwd.hu> | Wed Jun  6 22:32:25 2012 +0200| [e85df18d7495ac2816c090a9421f60055e4e59c9] | committer: Marton Balint

ffplay: add support for changing pixel format

With the filtering code refactored, it was much easier to finally fix this.

Fixes ticket 123 and 238.

Signed-off-by: Marton Balint <cus at passwd.hu>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=e85df18d7495ac2816c090a9421f60055e4e59c9
---

 ffplay.c |    5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/ffplay.c b/ffplay.c
index f22a848..86e347f 100644
--- a/ffplay.c
+++ b/ffplay.c
@@ -1648,6 +1648,7 @@ static int video_thread(void *arg)
     AVFilterContext *filt_out = NULL, *filt_in = NULL;
     int last_w = is->video_st->codec->width;
     int last_h = is->video_st->codec->height;
+    enum PixelFormat last_format = is->video_st->codec->pix_fmt;
 
     if ((ret = configure_video_filters(graph, is, vfilters)) < 0) {
         SDL_Event event;
@@ -1684,7 +1685,8 @@ static int video_thread(void *arg)
 
 #if CONFIG_AVFILTER
         if (   last_w != is->video_st->codec->width
-            || last_h != is->video_st->codec->height) {
+            || last_h != is->video_st->codec->height
+            || last_format != is->video_st->codec->pix_fmt) {
             av_log(NULL, AV_LOG_INFO, "Frame changed from size:%dx%d to size:%dx%d\n",
                    last_w, last_h, is->video_st->codec->width, is->video_st->codec->height);
             avfilter_graph_free(&graph);
@@ -1697,6 +1699,7 @@ static int video_thread(void *arg)
             filt_out = is->out_video_filter;
             last_w = is->video_st->codec->width;
             last_h = is->video_st->codec->height;
+            last_format = is->video_st->codec->pix_fmt;
         }
 
         frame->pts = pts_int;



More information about the ffmpeg-cvslog mailing list