From 47e2c4cc10ad6d8059be227a67822afd77a1a178 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= Date: Wed, 6 May 2020 11:52:20 +0300 Subject: [PATCH] discoverer: Check sinkpad existence before retrieving caps Otherwise we would error out without releasing the caps first. Part-of: --- gst-libs/gst/pbutils/gstdiscoverer.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/gst-libs/gst/pbutils/gstdiscoverer.c b/gst-libs/gst/pbutils/gstdiscoverer.c index b27f89a2a9..60e54127bb 100644 --- a/gst-libs/gst/pbutils/gstdiscoverer.c +++ b/gst-libs/gst/pbutils/gstdiscoverer.c @@ -701,6 +701,10 @@ uridecodebin_pad_added_cb (GstElement * uridecodebin, GstPad * pad, g_object_set (ps->sink, "silent", TRUE, NULL); g_object_set (ps->queue, "max-size-buffers", 1, "silent", TRUE, NULL); + sinkpad = gst_element_get_static_pad (ps->queue, "sink"); + if (sinkpad == NULL) + goto error; + caps = gst_pad_get_current_caps (pad); if (!caps) { GST_WARNING ("Couldn't get negotiated caps from %s:%s", @@ -708,10 +712,6 @@ uridecodebin_pad_added_cb (GstElement * uridecodebin, GstPad * pad, caps = gst_pad_query_caps (pad, NULL); } - sinkpad = gst_element_get_static_pad (ps->queue, "sink"); - if (sinkpad == NULL) - goto error; - 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