From e90c67b3a9f44986193a8e8929578919bf38021c Mon Sep 17 00:00:00 2001 From: Mark Nauwelaerts Date: Fri, 6 Apr 2012 16:03:47 +0200 Subject: [PATCH] matroskademux: cleanly initialize and set needed segment Fixes #673165. --- gst/matroska/matroska-demux.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/gst/matroska/matroska-demux.c b/gst/matroska/matroska-demux.c index 6db85c2e6c..c228889857 100644 --- a/gst/matroska/matroska-demux.c +++ b/gst/matroska/matroska-demux.c @@ -3375,7 +3375,7 @@ gst_matroska_demux_parse_blockgroup_or_simpleblock (GstMatroskaDemux * demux, /* need to refresh segment info ASAP */ if (GST_CLOCK_TIME_IS_VALID (lace_time) && demux->need_newsegment) { - guint64 clace_time; + guint64 clace_time, duration; GST_DEBUG_OBJECT (demux, "generating segment starting at %" GST_TIME_FORMAT, @@ -3387,9 +3387,14 @@ gst_matroska_demux_parse_blockgroup_or_simpleblock (GstMatroskaDemux * demux, GST_TIME_ARGS (lace_time)); } clace_time = MAX (lace_time, demux->stream_start_time); + duration = demux->common.segment.duration; + /* we really want to set, don't care much about previous state */ + gst_segment_init (&demux->common.segment, GST_FORMAT_TIME); gst_segment_set_newsegment (&demux->common.segment, FALSE, demux->common.segment.rate, GST_FORMAT_TIME, clace_time, GST_CLOCK_TIME_NONE, clace_time - demux->stream_start_time); + gst_segment_set_duration (&demux->common.segment, GST_FORMAT_TIME, + duration); /* now convey our segment notion downstream */ gst_matroska_demux_send_event (demux, gst_event_new_new_segment (FALSE, demux->common.segment.rate, demux->common.segment.format, -- 2.34.1