diff options
author | Marton Balint <cus@passwd.hu> | 2012-06-06 22:32:25 +0200 |
---|---|---|
committer | Marton Balint <cus@passwd.hu> | 2012-06-07 01:22:00 +0200 |
commit | e85df18d7495ac2816c090a9421f60055e4e59c9 (patch) | |
tree | e36cf0af87442d7e75d1ebc05bf27f321dca709e | |
parent | cd947e9a2bc37f5af7a1dda90a7bc62b7f9019e7 (diff) | |
download | ffmpeg-e85df18d7495ac2816c090a9421f60055e4e59c9.tar.gz |
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@passwd.hu>
-rw-r--r-- | ffplay.c | 5 |
1 files changed, 4 insertions, 1 deletions
@@ -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; |