diff --git a/libavfilter/avfiltergraph.c b/libavfilter/avfiltergraph.c
index c01e81294b6e7d1164a0fe75d91f4371ee8554af..dae2c979f01d429df9744337a6dce41150828bb0 100644
--- a/libavfilter/avfiltergraph.c
+++ b/libavfilter/avfiltergraph.c
@@ -257,8 +257,10 @@ static int *graph_out_query_formats(AVFilterLink *link)
 {
     AVFilterLink *link2 = get_intern_output_link(link);
 
-    if(!link2 || !link2->src->output_pads[link2->srcpad].query_formats)
+    if(!link2)
         return avfilter_make_format_list(0);
+    if(!link2->src->output_pads[link2->srcpad].query_formats)
+        return avfilter_default_query_output_formats(link2);
     return link2->src->output_pads[link2->srcpad].query_formats(link2);
 }