diff --git a/gst/playback/gstdecodebin2.c b/gst/playback/gstdecodebin2.c index d266d7190b..e3501abc57 100644 --- a/gst/playback/gstdecodebin2.c +++ b/gst/playback/gstdecodebin2.c @@ -3512,6 +3512,14 @@ gst_decode_chain_get_topology (GstDecodeChain * chain) /* Caps that resulted in this chain */ caps = gst_pad_get_current_caps (chain->pad); + + if (!caps) { + /* Try querying the peer sink pad caps. + * This will most likely be the case with typefind:src + */ + caps = gst_pad_peer_query_caps (chain->pad, NULL); + } + if (!caps) { caps = get_pad_caps (chain->pad); if (G_UNLIKELY (!gst_caps_is_fixed (caps))) {