diff options
author | Nicolas George <nicolas.george@normalesup.org> | 2013-05-06 13:46:23 +0200 |
---|---|---|
committer | Nicolas George <nicolas.george@normalesup.org> | 2013-05-07 18:40:51 +0200 |
commit | 78d16b6a51095cde231524dd394ac200b7bddde9 (patch) | |
tree | ea1660722f9e800aff03a6fb89e9045ccef2ba04 /libavfilter | |
parent | 449704b47500bbd3530c584e50a5d76f02d90113 (diff) | |
download | ffmpeg-78d16b6a51095cde231524dd394ac200b7bddde9.tar.gz |
lavfi: fix filter format negotiation loop.
query_formats() returning EAGAIN is not considered a progress
in the format negotiation.
If the filter returns EAGAIN but did set some of its formats
lists, it could be considered a partial success and counted
as progress in the negotiation. Not counting it is not a
problem because it currently only happens in the first round,
where there will always be some progress on the other filters.
Diffstat (limited to 'libavfilter')
-rw-r--r-- | libavfilter/avfiltergraph.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/libavfilter/avfiltergraph.c b/libavfilter/avfiltergraph.c index 582a87023d..860f1d892b 100644 --- a/libavfilter/avfiltergraph.c +++ b/libavfilter/avfiltergraph.c @@ -333,7 +333,8 @@ static int query_formats(AVFilterGraph *graph, AVClass *log_ctx) ret = ff_default_query_formats(f); if (ret < 0 && ret != AVERROR(EAGAIN)) return ret; - count_queried++; + /* note: EAGAIN could indicate a partial success, not counted yet */ + count_queried += ret >= 0; } /* go through and merge as many format lists as possible */ |