diff --git a/libavfilter/vf_idet.c b/libavfilter/vf_idet.c index c6ee8dbb33..5430aba628 100644 --- a/libavfilter/vf_idet.c +++ b/libavfilter/vf_idet.c @@ -249,6 +249,8 @@ static int filter_frame(AVFilterLink *link, AVFrame *picref) return ff_filter_frame(ctx->outputs[0], picref); } + av_frame_free(&idet->prev); + if( picref->width != link->w || picref->height != link->h || picref->format != link->format) { @@ -256,13 +258,10 @@ static int filter_frame(AVFilterLink *link, AVFrame *picref) 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; idet->cur = idet->next; idet->next = picref;