From 9dd08b4e1ebc294848e69dd3e1d4eed19ffe5a90 Mon Sep 17 00:00:00 2001 From: Vitor Sessak Date: Sun, 18 Oct 2009 22:33:37 +0000 Subject: [PATCH] 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. Originally committed as revision 20295 to svn://svn.ffmpeg.org/ffmpeg/trunk --- libavfilter/avfilter.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/libavfilter/avfilter.c b/libavfilter/avfilter.c index 77c7571388..c68afad077 100644 --- a/libavfilter/avfilter.c +++ b/libavfilter/avfilter.c @@ -224,9 +224,11 @@ int avfilter_poll_frame(AVFilterLink *link) return link_spad(link).poll_frame(link); for (i=0; isrc->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; -- 2.11.0