Revert "qtdemux: fix conditions for end of segment in reverse playback"
authorMathieu Duponchelle <mathieu@centricular.com>
Fri, 5 May 2023 17:41:34 +0000 (19:41 +0200)
committerTim-Philipp Müller <tim@centricular.com>
Thu, 11 May 2023 17:44:15 +0000 (18:44 +0100)
This reverts commit 9deb3c27acd4161f810cd782f03bcdaccf2643c7.

The test case that was described in the associated MR
(https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/262)
remains adequately fixed by a related MR that was merged later
(https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/275).

It introduced incorrect logic that broke edit lists as described in
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2549

Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2549
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4605>

subprojects/gst-plugins-good/gst/isomp4/qtdemux.c

index 0e5904d..10bb9e6 100644 (file)
@@ -6547,16 +6547,8 @@ gst_qtdemux_loop_state_movie (GstQTDemux * qtdemux)
     stream = QTDEMUX_NTH_STREAM (qtdemux, i);
     position = stream->time_position;
 
-    if (!GST_CLOCK_TIME_IS_VALID (position))
-      continue;
-
-    if (stream->segment_index != -1) {
-      QtDemuxSegment *segment = &stream->segments[stream->segment_index];
-      position += segment->media_start;
-    }
-
     /* position of -1 is EOS */
-    if (position < min_time) {
+    if (position != GST_CLOCK_TIME_NONE && position < min_time) {
       min_time = position;
       target_stream = stream;
     }