diff --git a/gst/matroska/matroska-demux.c b/gst/matroska/matroska-demux.c index c30e0d0283..6e49baa429 100644 --- a/gst/matroska/matroska-demux.c +++ b/gst/matroska/matroska-demux.c @@ -3512,10 +3512,12 @@ gst_matroska_demux_parse_blockgroup_or_simpleblock (GstMatroskaDemux * demux, gst_segment_set_duration (&demux->common.segment, GST_FORMAT_TIME, last_stop_end - demux->stream_start_time); GST_OBJECT_UNLOCK (demux); - gst_element_post_message (GST_ELEMENT_CAST (demux), - gst_message_new_duration (GST_OBJECT_CAST (demux), - GST_FORMAT_TIME, GST_CLOCK_TIME_NONE)); - demux->invalid_duration = TRUE; + if (!demux->invalid_duration) { + gst_element_post_message (GST_ELEMENT_CAST (demux), + gst_message_new_duration (GST_OBJECT_CAST (demux), + GST_FORMAT_TIME, GST_CLOCK_TIME_NONE)); + demux->invalid_duration = TRUE; + } } else { GST_OBJECT_UNLOCK (demux); }