playbin3: Fix deadlock when adding multiple parsebin

https://bugzilla.gnome.org/show_bug.cgi?id=773131
This commit is contained in:
Wonchul Lee 2016-10-17 15:38:37 +09:00 committed by Jan Schmidt
parent 115ccfe679
commit 8b95d17f75

View File

@ -4523,6 +4523,7 @@ urisrc_pad_added (GstElement * urisrc, GstPad * pad, GstSourceGroup * group)
sinkpad = NULL; sinkpad = NULL;
} }
} }
GST_SOURCE_GROUP_UNLOCK (group);
if (sinkpad == NULL) { if (sinkpad == NULL) {
/* Auxiliary stream, request a new pad from decodebin */ /* Auxiliary stream, request a new pad from decodebin */
@ -4541,7 +4542,6 @@ urisrc_pad_added (GstElement * urisrc, GstPad * pad, GstSourceGroup * group)
if (GST_PAD_LINK_FAILED (res)) if (GST_PAD_LINK_FAILED (res))
goto link_failed; goto link_failed;
} }
GST_SOURCE_GROUP_UNLOCK (group);
return; return;
link_failed: link_failed:
@ -4549,7 +4549,6 @@ link_failed:
GST_ERROR_OBJECT (playbin, GST_ERROR_OBJECT (playbin,
"failed to link pad %s:%s to decodebin, reason %s (%d)", "failed to link pad %s:%s to decodebin, reason %s (%d)",
GST_DEBUG_PAD_NAME (pad), gst_pad_link_get_name (res), res); GST_DEBUG_PAD_NAME (pad), gst_pad_link_get_name (res), res);
GST_SOURCE_GROUP_UNLOCK (group);
return; return;
} }
} }