From aba8065adb63f1b00bcef7762534d1c41cb870bb Mon Sep 17 00:00:00 2001
From: Nicolas George <nicolas.george@normalesup.org>
Date: Sun, 3 Jun 2012 21:53:22 +0200
Subject: [PATCH] avfiltergraph: call query_formats on inputs first.

This is a temporary workaround for amerge,
until format renegociation is implemented.

Should fix trac ticket #1400.
---
 libavfilter/avfiltergraph.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/libavfilter/avfiltergraph.c b/libavfilter/avfiltergraph.c
index 997ae451f96..1ab98798ecc 100644
--- a/libavfilter/avfiltergraph.c
+++ b/libavfilter/avfiltergraph.c
@@ -235,8 +235,14 @@ static int query_formats(AVFilterGraph *graph, AVClass *log_ctx)
     AVFilterFormats *samplerates;
     int scaler_count = 0, resampler_count = 0;
 
+    for (j = 0; j < 2; j++) {
     /* ask all the sub-filters for their supported media formats */
     for (i = 0; i < graph->filter_count; i++) {
+        /* Call query_formats on sources first.
+           This is a temporary workaround for amerge,
+           until format renegociation is implemented. */
+        if (!graph->filters[i]->input_count == j)
+            continue;
         if (graph->filters[i]->filter->query_formats)
             ret = graph->filters[i]->filter->query_formats(graph->filters[i]);
         else
@@ -244,6 +250,7 @@ static int query_formats(AVFilterGraph *graph, AVClass *log_ctx)
         if (ret < 0)
             return ret;
     }
+    }
 
     /* go through and merge as many format lists as possible */
     for (i = 0; i < graph->filter_count; i++) {
-- 
GitLab