From 56a33b232cbb71045fa6609fda3145ea08047b7d Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Mon, 19 Jan 2015 05:36:27 +0100 Subject: [PATCH] avfilter/vf_idet: flush internal buffers on parameter changes This is needed to auto insert the filter by default Signed-off-by: Michael Niedermayer --- libavfilter/vf_idet.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) 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; -- 2.11.0