[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