diff --git a/libavfilter/avfiltergraph.c b/libavfilter/avfiltergraph.c index 997ae451f9..1ab98798ec 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++) {