From 78d16b6a51095cde231524dd394ac200b7bddde9 Mon Sep 17 00:00:00 2001 From: Nicolas George Date: Mon, 6 May 2013 13:46:23 +0200 Subject: [PATCH 1/1] 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. --- libavfilter/avfiltergraph.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/libavfilter/avfiltergraph.c b/libavfilter/avfiltergraph.c index 582a87023d8..860f1d892b6 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 */ -- 2.39.2