diff --git a/gst/matroska/matroska-parse.c b/gst/matroska/matroska-parse.c index bae8380f97..83b0d63845 100644 --- a/gst/matroska/matroska-parse.c +++ b/gst/matroska/matroska-parse.c @@ -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);