[0.10] gstreamer: basetransform: do not delay sparse stream newsegment updates

Wim Taymans wtay at kemper.freedesktop.org
Mon Mar 26 07:36:05 PDT 2012


Module: gstreamer
Branch: 0.10
Commit: 78565da18b1d5219b81728a3f63974a4071ef46f
URL:    http://cgit.freedesktop.org/gstreamer/gstreamer/commit/?id=78565da18b1d5219b81728a3f63974a4071ef46f

Author: Mark Nauwelaerts <mark.nauwelaerts at collabora.co.uk>
Date:   Mon Dec 19 17:38:18 2011 +0100

basetransform: do not delay sparse stream newsegment updates

---

 libs/gst/base/gstbasetransform.c |   13 +++++++++++++
 1 files changed, 13 insertions(+), 0 deletions(-)

diff --git a/libs/gst/base/gstbasetransform.c b/libs/gst/base/gstbasetransform.c
index 4408ef2..dfaa359 100644
--- a/libs/gst/base/gstbasetransform.c
+++ b/libs/gst/base/gstbasetransform.c
@@ -2220,6 +2220,19 @@ gst_base_transform_sink_event (GstPad * pad, GstEvent * event)
     } else {
       delay = GST_EVENT_IS_SERIALIZED (event) && !caps_set
           && GST_EVENT_TYPE (event) != GST_EVENT_EOS;
+
+      /* do not stall sparse stream update newsegment events */
+      if (delay && (GST_EVENT_TYPE (event) == GST_EVENT_NEWSEGMENT)) {
+        gboolean update;
+
+        gst_event_parse_new_segment_full (event, &update, NULL, NULL, NULL,
+            NULL, NULL, NULL);
+        if (update) {
+          GST_DEBUG_OBJECT (trans, "update segment; triggering delayed events");
+          delay = FALSE;
+          caps_set = TRUE;
+        }
+      }
     }
 
     if (delay) {



More information about the gstreamer-commits mailing list