[FFmpeg-cvslog] r20295 - trunk/libavfilter/avfilter.c

Stefano Sabatini stefano.sabatini-lala
Mon Oct 19 00:47:17 CEST 2009


On date Monday 2009-10-19 00:33:38 +0200, vitor wrote:
> Author: vitor
> Date: Mon Oct 19 00:33:37 2009
> New Revision: 20295
> 
> Log:
> Fix recursive avfilter_poll_frame(). It was doing
> min = FFMIN(min, avfilter_poll_frame(link->src->inputs[i]))
> which, since FFMIN is a macro, was calling itself
> twice for every input, causing an exponential cost in time.
> 
> Modified:
>    trunk/libavfilter/avfilter.c
> 
> Modified: trunk/libavfilter/avfilter.c
> ==============================================================================
> --- trunk/libavfilter/avfilter.c	Sun Oct 18 23:44:03 2009	(r20294)
> +++ trunk/libavfilter/avfilter.c	Mon Oct 19 00:33:37 2009	(r20295)
> @@ -224,9 +224,11 @@ int avfilter_poll_frame(AVFilterLink *li
>          return link_spad(link).poll_frame(link);
>  
>      for (i=0; i<link->src->input_count; i++) {
> +        int val;
>          if(!link->src->inputs[i])
>              return -1;
> -        min = FFMIN(min, avfilter_poll_frame(link->src->inputs[i]));
> +        val = avfilter_poll_frame(link->src->inputs[i]);
> +        min = FFMIN(min, val);
>      }
>  
>      return min;

Thanks :).



More information about the ffmpeg-cvslog mailing list