Commit e90c67b3 authored by Mark Nauwelaerts's avatar Mark Nauwelaerts
Browse files

matroskademux: cleanly initialize and set needed segment

Fixes #673165.
parent 62881678
...@@ -3375,7 +3375,7 @@ gst_matroska_demux_parse_blockgroup_or_simpleblock (GstMatroskaDemux * demux, ...@@ -3375,7 +3375,7 @@ gst_matroska_demux_parse_blockgroup_or_simpleblock (GstMatroskaDemux * demux,
/* need to refresh segment info ASAP */ /* need to refresh segment info ASAP */
if (GST_CLOCK_TIME_IS_VALID (lace_time) && demux->need_newsegment) { if (GST_CLOCK_TIME_IS_VALID (lace_time) && demux->need_newsegment) {
guint64 clace_time; guint64 clace_time, duration;
GST_DEBUG_OBJECT (demux, GST_DEBUG_OBJECT (demux,
"generating segment starting at %" GST_TIME_FORMAT, "generating segment starting at %" GST_TIME_FORMAT,
...@@ -3387,9 +3387,14 @@ gst_matroska_demux_parse_blockgroup_or_simpleblock (GstMatroskaDemux * demux, ...@@ -3387,9 +3387,14 @@ gst_matroska_demux_parse_blockgroup_or_simpleblock (GstMatroskaDemux * demux,
GST_TIME_ARGS (lace_time)); GST_TIME_ARGS (lace_time));
} }
clace_time = MAX (lace_time, demux->stream_start_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, gst_segment_set_newsegment (&demux->common.segment, FALSE,
demux->common.segment.rate, GST_FORMAT_TIME, clace_time, demux->common.segment.rate, GST_FORMAT_TIME, clace_time,
GST_CLOCK_TIME_NONE, clace_time - demux->stream_start_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 */ /* now convey our segment notion downstream */
gst_matroska_demux_send_event (demux, gst_event_new_new_segment (FALSE, gst_matroska_demux_send_event (demux, gst_event_new_new_segment (FALSE,
demux->common.segment.rate, demux->common.segment.format, demux->common.segment.rate, demux->common.segment.format,
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment