diff --git a/libavfilter/avfilter.c b/libavfilter/avfilter.c
index 190d8ab03c75d3857ec01f68bae8caa69b39e27a..1cedb15db457e0dd5e8c00cb934b882b23130655 100644
--- a/libavfilter/avfilter.c
+++ b/libavfilter/avfilter.c
@@ -211,14 +211,6 @@ int avfilter_config_links(AVFilterContext *filter)
                 }
             }
 
-            if ((config_link = link->dstpad->config_props))
-                if ((ret = config_link(link)) < 0) {
-                    av_log(link->dst, AV_LOG_ERROR,
-                           "Failed to configure input pad on %s\n",
-                           link->dst->name);
-                    return ret;
-                }
-
             if (link->src->nb_inputs && link->src->inputs[0]->hw_frames_ctx &&
                 !link->hw_frames_ctx) {
                 AVHWFramesContext *input_ctx = (AVHWFramesContext*)link->src->inputs[0]->hw_frames_ctx->data;
@@ -230,6 +222,14 @@ int avfilter_config_links(AVFilterContext *filter)
                 }
             }
 
+            if ((config_link = link->dstpad->config_props))
+                if ((ret = config_link(link)) < 0) {
+                    av_log(link->dst, AV_LOG_ERROR,
+                           "Failed to configure input pad on %s\n",
+                           link->dst->name);
+                    return ret;
+                }
+
             link->init_state = AVLINK_INIT;
         }
     }