From: Michael Niedermayer Date: Mon, 19 Jan 2015 04:36:27 +0000 (+0100) Subject: avfilter/vf_idet: flush internal buffers on parameter changes X-Git-Tag: android-x86-6.0-r1~862 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=56a33b232cbb71045fa6609fda3145ea08047b7d;p=android-x86%2Fexternal-ffmpeg.git avfilter/vf_idet: flush internal buffers on parameter changes This is needed to auto insert the filter by default Signed-off-by: Michael Niedermayer --- diff --git a/libavfilter/vf_idet.c b/libavfilter/vf_idet.c index 72729be833..c6ee8dbb33 100644 --- a/libavfilter/vf_idet.c +++ b/libavfilter/vf_idet.c @@ -249,6 +249,18 @@ static int filter_frame(AVFilterLink *link, AVFrame *picref) return ff_filter_frame(ctx->outputs[0], picref); } + if( picref->width != link->w + || picref->height != link->h + || picref->format != link->format) { + link->dst->inputs[0]->format = picref->format; + link->dst->inputs[0]->w = picref->width; + link->dst->inputs[0]->h = picref->height; + + av_frame_free(&idet->prev); + av_frame_free(&idet->cur ); + av_frame_free(&idet->next); + } + if (idet->prev) av_frame_free(&idet->prev); idet->prev = idet->cur;