matroskaparse: Make sure to send a segment event before dataflow
authorSebastian Dröge <sebastian.droege@collabora.co.uk>
Tue, 14 May 2013 11:52:18 +0000 (13:52 +0200)
committerSebastian Dröge <sebastian.droege@collabora.co.uk>
Tue, 14 May 2013 11:52:18 +0000 (13:52 +0200)
gst/matroska/matroska-parse.c

index bae8380..83b0d63 100644 (file)
@@ -342,7 +342,7 @@ gst_matroska_parse_reset (GstElement * element)
   parse->next_cluster_offset = 0;
   parse->index_offset = 0;
   parse->seekable = FALSE;
-  parse->need_newsegment = FALSE;
+  parse->need_newsegment = TRUE;
   parse->building_index = FALSE;
   if (parse->seek_event) {
     gst_event_unref (parse->seek_event);
@@ -2546,6 +2546,12 @@ gst_matroska_parse_output (GstMatroskaParse * parse, GstBuffer * buffer,
     //gst_caps_replace (parse->caps, caps);
     gst_pad_set_caps (parse->srcpad, caps);
 
+    if (parse->need_newsegment) {
+      gst_pad_push_event (parse->srcpad,
+          gst_event_new_segment (&parse->common.segment));
+      parse->need_newsegment = FALSE;
+    }
+
     buf = gst_buffer_copy (parse->streamheader);
     gst_caps_unref (caps);