diff --git a/gst-libs/gst/pbutils/gstdiscoverer.c b/gst-libs/gst/pbutils/gstdiscoverer.c index 7dfd7eeefb..b27f89a2a9 100644 --- a/gst-libs/gst/pbutils/gstdiscoverer.c +++ b/gst-libs/gst/pbutils/gstdiscoverer.c @@ -712,7 +712,8 @@ uridecodebin_pad_added_cb (GstElement * uridecodebin, GstPad * pad, if (sinkpad == NULL) goto error; - if (is_subtitle_caps (caps)) { + if (caps && !gst_caps_is_empty (caps) && !gst_caps_is_any (caps) + && is_subtitle_caps (caps)) { /* Subtitle streams are sparse and may not provide any information - don't * wait for data to preroll */ ps->probe_id = @@ -722,7 +723,8 @@ uridecodebin_pad_added_cb (GstElement * uridecodebin, GstPad * pad, dc->priv->pending_subtitle_pads++; } - gst_caps_unref (caps); + if (caps) + gst_caps_unref (caps); gst_bin_add_many (dc->priv->pipeline, ps->queue, ps->sink, NULL);