[FFmpeg-cvslog] lavfi: fix filter format negotiation loop.

Nicolas George git at videolan.org
Tue May 7 23:52:56 CEST 2013


ffmpeg | branch: master | Nicolas George <nicolas.george at normalesup.org> | Mon May  6 13:46:23 2013 +0200| [78d16b6a51095cde231524dd394ac200b7bddde9] | committer: Nicolas George

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.

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=78d16b6a51095cde231524dd394ac200b7bddde9
---

 libavfilter/avfiltergraph.c |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/libavfilter/avfiltergraph.c b/libavfilter/avfiltergraph.c
index 582a870..860f1d8 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 */



More information about the ffmpeg-cvslog mailing list