[FFmpeg-cvslog] avfilter/vf_idet: flush internal buffers on parameter changes

Pascal Massimino pascal.massimino at gmail.com
Mon Jan 19 14:43:39 CET 2015


On Mon, Jan 19, 2015 at 1:56 PM, Michael Niedermayer <git at videolan.org>
wrote:

> ffmpeg | branch: master | Michael Niedermayer <michaelni at gmx.at> | Mon
> Jan 19 05:36:27 2015 +0100| [56a33b232cbb71045fa6609fda3145ea08047b7d] |
> committer: Michael Niedermayer
>
> avfilter/vf_idet: flush internal buffers on parameter changes
>
> This is needed to auto insert the filter by default
>
> Signed-off-by: Michael Niedermayer <michaelni at gmx.at>
>
> >
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=56a33b232cbb71045fa6609fda3145ea08047b7d
> ---
>
>  libavfilter/vf_idet.c |   12 ++++++++++++
>  1 file changed, 12 insertions(+)
>
> diff --git a/libavfilter/vf_idet.c b/libavfilter/vf_idet.c
> index 72729be..c6ee8db 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);
>

note that this free-ing of idet->prev could be factorized with the one just
below


> +        av_frame_free(&idet->cur );
> +        av_frame_free(&idet->next);
> +    }
> +
>      if (idet->prev)
>          av_frame_free(&idet->prev);
>

^^^^^^ here

Otherwise, looks good to me. Good catch!


>      idet->prev = idet->cur;
>
> _______________________________________________
> ffmpeg-cvslog mailing list
> ffmpeg-cvslog at ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
>


More information about the ffmpeg-cvslog mailing list