summaryrefslogtreecommitdiffstats
path: root/gst
diff options
context:
space:
mode:
Diffstat (limited to 'gst')
-rw-r--r--gst/rtsp/gstrtspsrc.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/gst/rtsp/gstrtspsrc.c b/gst/rtsp/gstrtspsrc.c
index 96fd79ee..b56265cc 100644
--- a/gst/rtsp/gstrtspsrc.c
+++ b/gst/rtsp/gstrtspsrc.c
@@ -841,6 +841,7 @@ cleanup:
static void
pad_unblocked (GstPad * pad, gboolean blocked, GstRTSPSrc * src)
{
+ GST_DEBUG_OBJECT (src, "pad %s:%s unblocked", GST_DEBUG_PAD_NAME (pad));
}
static void
@@ -849,9 +850,6 @@ pad_blocked (GstPad * pad, gboolean blocked, GstRTSPSrc * src)
GST_DEBUG_OBJECT (src, "pad %s:%s blocked, activating streams",
GST_DEBUG_PAD_NAME (pad));
- gst_pad_set_blocked_async (pad, FALSE, (GstPadBlockCallback) pad_unblocked,
- src);
-
/* activate the streams */
GST_OBJECT_LOCK (src);
if (!src->need_activate)
@@ -862,12 +860,17 @@ pad_blocked (GstPad * pad, gboolean blocked, GstRTSPSrc * src)
gst_rtspsrc_activate_streams (src);
+unblock:
+ /* now unblock and let it stream */
+ gst_pad_set_blocked_async (pad, FALSE, (GstPadBlockCallback) pad_unblocked,
+ src);
+
return;
was_ok:
{
GST_OBJECT_UNLOCK (src);
- return;
+ goto unblock;
}
}