History

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

Vitor Sessak committed 17 years ago

Commit 9dd08b41 parent b07781b1 file · +3 −1Browse files

Unified · Split

libavfilter/avfilter.c+3−1
@@ -224,9 +224,11 @@ int avfilter_poll_frame(AVFilterLink *link) · 223 unmodified lines
224 return link_spad(link).poll_frame(link);224 return link_spad(link).poll_frame(link);
225 225
226 for (i=0; i<link->src->input_count; i++) {226 for (i=0; i<link->src->input_count; i++) {
227 int val;
227 if(!link->src->inputs[i])228 if(!link->src->inputs[i])
228 return -1;229 return -1;
229 min = FFMIN(min, avfilter_poll_frame(link->src->inputs[i]));230 val = avfilter_poll_frame(link->src->inputs[i]);
231 min = FFMIN(min, val);
230 }232 }
231 233
232 return min;234 return min;

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t