From f3e68164e4ce4ec7b0a7ec717fa9bf5cc2302c01 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Sebastian=20Dr=C3=B6ge?= Date: Tue, 31 May 2016 16:38:34 +0300 Subject: [PATCH] qtdemux: Don't override TIME segments from upstream that we just saw The point of d8fb7a9c96b108814beeaa0e63f818d4648c7fe9 was to not have any spurious segments stored for later if we do BYTES->TIME conversion, but overriding any TIME segments from upstream does not make any sense. See https://bugzilla.gnome.org/show_bug.cgi?id=763165 https://bugzilla.gnome.org/show_bug.cgi?id=767071 --- gst/isomp4/qtdemux.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gst/isomp4/qtdemux.c b/gst/isomp4/qtdemux.c index d4f4c99..719efe9 100644 --- a/gst/isomp4/qtdemux.c +++ b/gst/isomp4/qtdemux.c @@ -2087,6 +2087,9 @@ gst_qtdemux_handle_sink_event (GstPad * sinkpad, GstObject * parent, GST_DEBUG_OBJECT (demux, "received newsegment %" GST_SEGMENT_FORMAT, &segment); + /* erase any previously set segment */ + gst_event_replace (&demux->pending_newsegment, NULL); + if (segment.format == GST_FORMAT_TIME) { GST_DEBUG_OBJECT (demux, "new pending_newsegment"); gst_event_replace (&demux->pending_newsegment, event); @@ -2159,8 +2162,6 @@ gst_qtdemux_handle_sink_event (GstPad * sinkpad, GstObject * parent, gst_segment_copy_into (&segment, &demux->segment); GST_DEBUG_OBJECT (demux, "Pushing newseg %" GST_SEGMENT_FORMAT, &segment); - /* erase any previously set segment */ - gst_event_replace (&demux->pending_newsegment, NULL); /* For pull mode, segment activation will be handled in the looping task * For push mode, need to do it here */ -- 2.7.4