summaryrefslogtreecommitdiff
path: root/ffplay.c
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2011-08-15 23:35:53 +0200
committerMichael Niedermayer <michaelni@gmx.at>2011-08-15 23:35:53 +0200
commit1a34478b7183b1a08caab7eac56b452609725736 (patch)
tree4ddae5c3407716d83b592694cdabbdb3dff3041f /ffplay.c
parent6ae356c9a0987d56f60137f9784afcb3a9303037 (diff)
parentcc73511e8e81b2e1454f406acb71da9fd1c60d32 (diff)
Merge remote-tracking branch 'qatar/master'
* qatar/master: Fix NASM include directive dsputil_mmx: Honor HAVE_AMD3DNOW lavf,lavd: remove all usage of AVFormatParameters from demuxers. jack: add 'channels' private option. VC-1: fix reading of custom PAR. Remove redundant and dubious video codec detection by its extradata mpeg12: remove repeat-field code disabled since May 2002 patch checklist: suggest fate instead of regression tests Turn on resampling on sudden size change instead of bailing out during recode. avtools: reinitialise filter chain when input video stream changes dimensions Conflicts: Makefile avconv.c doc/developer.texi ffplay.c libavcodec/x86/dsputil_mmx.c libavdevice/libdc1394.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'ffplay.c')
-rw-r--r--ffplay.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/ffplay.c b/ffplay.c
index 61f4bc086c..d35983d333 100644
--- a/ffplay.c
+++ b/ffplay.c
@@ -1728,6 +1728,8 @@ static int video_thread(void *arg)
#if CONFIG_AVFILTER
AVFilterGraph *graph = avfilter_graph_alloc();
AVFilterContext *filt_out = NULL;
+ int last_w = is->video_st->codec->width;
+ int last_h = is->video_st->codec->height;
if ((ret = configure_video_filters(graph, is, vfilters)) < 0)
goto the_end;
@@ -1744,6 +1746,18 @@ static int video_thread(void *arg)
while (is->paused && !is->videoq.abort_request)
SDL_Delay(10);
#if CONFIG_AVFILTER
+ if ( last_w != is->video_st->codec->width
+ || last_h != is->video_st->codec->height) {
+ av_dlog(NULL, "Changing size %dx%d -> %dx%d\n", last_w, last_h,
+ is->video_st->codec->width, is->video_st->codec->height);
+ avfilter_graph_free(&graph);
+ graph = avfilter_graph_alloc();
+ if ((ret = configure_video_filters(graph, is, vfilters)) < 0)
+ goto the_end;
+ filt_out = is->out_video_filter;
+ last_w = is->video_st->codec->width;
+ last_h = is->video_st->codec->height;
+ }
ret = av_vsink_buffer_get_video_buffer_ref(filt_out, &picref, 0);
if (picref) {
avfilter_fill_frame_from_video_buffer_ref(frame, picref);