diff --git a/gst/playback/gstdecodebin2.c b/gst/playback/gstdecodebin2.c index e77078055a..e697504725 100644 --- a/gst/playback/gstdecodebin2.c +++ b/gst/playback/gstdecodebin2.c @@ -3919,6 +3919,11 @@ source_pad_blocked_cb (GstPad * pad, GstPadProbeInfo * info, gpointer user_data) } EXPOSE_UNLOCK (dbin); + /* If we unblocked due to a caps event, let it go through */ + if ((GST_PAD_PROBE_INFO_TYPE (info) & GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM) && + (GST_EVENT_TYPE (GST_PAD_PROBE_INFO_EVENT (info)) == GST_EVENT_CAPS)) + return GST_PAD_PROBE_PASS; + return GST_PAD_PROBE_OK; }