summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEdward Hervey <edward@centricular.com>2023-01-13 16:37:03 +0100
committerEdward Hervey <bilboed@bilboed.com>2023-01-13 16:41:53 +0100
commit1546ab0d0f6740708a868b59c301e543e16dcce5 (patch)
treedd3280d0d31daf7e2845a90f43ecfd79e6d095d4
parentf444e62672a626fcbf740833d09628d7b1aac482 (diff)
downloadgstreamer-1546ab0d0f6740708a868b59c301e543e16dcce5.tar.gz
urisourcebin: Unset locked state
Some elements still had it in failure cases Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3720>
-rw-r--r--subprojects/gst-plugins-base/gst/playback/gsturisourcebin.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/subprojects/gst-plugins-base/gst/playback/gsturisourcebin.c b/subprojects/gst-plugins-base/gst/playback/gsturisourcebin.c
index d3c2db3972..b8366ecc64 100644
--- a/subprojects/gst-plugins-base/gst/playback/gsturisourcebin.c
+++ b/subprojects/gst-plugins-base/gst/playback/gsturisourcebin.c
@@ -1934,6 +1934,10 @@ setup_parsebin_for_slot (ChildSrcPadInfo * info, GstPad * originating_pad)
could_not_link:
{
+ if (info->pre_parse_queue)
+ gst_element_set_locked_state (info->pre_parse_queue, FALSE);
+ if (info->demuxer)
+ gst_element_set_locked_state (info->demuxer, FALSE);
GST_URI_SOURCE_BIN_UNLOCK (urisrc);
GST_STATE_UNLOCK (urisrc);
GST_ELEMENT_ERROR (urisrc, CORE, NEGOTIATION,
@@ -2143,6 +2147,7 @@ no_typefind:
could_not_link:
{
gst_object_unref (sinkpad);
+ gst_element_set_locked_state (info->typefind, FALSE);
GST_ELEMENT_ERROR (urisrc, CORE, NEGOTIATION,
(NULL), ("Can't link source to typefind element"));
return FALSE;