matroskademux: generate correct segment stream time
authorMark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
Mon, 23 Jul 2012 15:37:58 +0000 (17:37 +0200)
committerMark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
Mon, 23 Jul 2012 15:38:43 +0000 (17:38 +0200)
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=680275

gst/matroska/matroska-demux.c

index 749f847..1fc7e33 100644 (file)
@@ -3436,9 +3436,6 @@ gst_matroska_demux_parse_blockgroup_or_simpleblock (GstMatroskaDemux * demux,
       GstSegment *segment = &demux->common.segment;
       guint64 segment_duration = 0;
 
-      GST_DEBUG_OBJECT (demux,
-          "generating segment starting at %" GST_TIME_FORMAT,
-          GST_TIME_ARGS (lace_time));
       if (!GST_CLOCK_TIME_IS_VALID (demux->stream_start_time)) {
         demux->stream_start_time = lace_time;
         GST_DEBUG_OBJECT (demux,
@@ -3456,7 +3453,11 @@ gst_matroska_demux_parse_blockgroup_or_simpleblock (GstMatroskaDemux * demux,
         segment->base += segment_duration / fabs (segment->rate);
         segment->start = MAX (lace_time, demux->stream_start_time);
         segment->stop = GST_CLOCK_TIME_NONE;
+        segment->time = segment->start - demux->stream_start_time;
         segment->position = segment->start - demux->stream_start_time;
+        GST_DEBUG_OBJECT (demux,
+            "generated segment starting at %" GST_TIME_FORMAT ": %"
+            GST_SEGMENT_FORMAT, GST_TIME_ARGS (lace_time), segment);
       }
       /* now convey our segment notion downstream */
       gst_matroska_demux_send_event (demux, gst_event_new_segment (segment));