gst/rtsp/gstrtspsrc.c: Unblock pads after adding the pads to the element so that...
authorWim Taymans <wim.taymans@gmail.com>
Wed, 24 Jan 2007 12:26:41 +0000 (12:26 +0000)
committerWim Taymans <wim.taymans@gmail.com>
Wed, 24 Jan 2007 12:26:41 +0000 (12:26 +0000)
Original commit message from CVS:
* gst/rtsp/gstrtspsrc.c: (pad_unblocked), (pad_blocked):
Unblock pads after adding the pads to the element so that autopluggers
get a change to link something. Possibly fixes #395688.

ChangeLog
gst/rtsp/gstrtspsrc.c

index 4397b03..c04ba48 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,11 @@
 2007-01-24  Wim Taymans  <wim@fluendo.com>
 
+       * gst/rtsp/gstrtspsrc.c: (pad_unblocked), (pad_blocked):
+       Unblock pads after adding the pads to the element so that autopluggers
+       get a change to link something. Possibly fixes #395688.
+
+2007-01-24  Wim Taymans  <wim@fluendo.com>
+
        * gst/rtp/gstrtpamrdepay.c:
        * gst/rtp/gstrtpgsmdepay.c:
        * gst/rtp/gstrtph263pdepay.c:
index 96fd79e..b56265c 100644 (file)
@@ -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;
   }
 }