qtdemux: preferably send open-ended segment rather than repeated segment events
authorMark Nauwelaerts <mnauw@users.sourceforge.net>
Wed, 19 Jul 2017 10:38:03 +0000 (12:38 +0200)
committerMark Nauwelaerts <mnauw@users.sourceforge.net>
Wed, 19 Jul 2017 16:35:58 +0000 (18:35 +0200)
gst/isomp4/qtdemux.c

index 85ed89e..04f4fff 100644 (file)
@@ -3053,7 +3053,11 @@ check_update_duration (GstQTDemux * qtdemux, GstClockTime duration)
             "Updating stream #%d duration to %" GST_TIME_FORMAT, i,
             GST_TIME_ARGS (duration));
         stream->duration = movdur;
-        if (stream->dummy_segment) {
+        /* internal duration tracking state has been updated above, so */
+        /* preserve an open-ended dummy segment rather than repeatedly updating
+         * it and spamming downstream accordingly with segment events */
+        if (stream->dummy_segment &&
+            GST_CLOCK_TIME_IS_VALID (stream->segments[0].duration)) {
           /* Update all dummy values to new duration */
           stream->segments[0].stop_time = duration;
           stream->segments[0].duration = duration;