qtdemux: only adjust segment time when adjusting segment start
authorMathieu Duponchelle <mathieu@centricular.com>
Mon, 1 Jul 2019 20:38:41 +0000 (22:38 +0200)
committerMathieu Duponchelle <mathieu@centricular.com>
Tue, 2 Jul 2019 11:39:55 +0000 (13:39 +0200)
We ended up setting segment.time to segment.position when doing
reverse playback, which is obviously wrong.

gst/isomp4/qtdemux.c

index 64f7f29..8ef58ef 100644 (file)
@@ -1613,9 +1613,10 @@ gst_qtdemux_perform_seek (GstQTDemux * qtdemux, GstSegment * segment,
       gst_segment_init (&stream->segment, GST_FORMAT_TIME);
   }
   segment->position = desired_offset;
-  segment->time = desired_offset;
   if (segment->rate >= 0) {
     segment->start = desired_offset;
+    /* We need to update time as we update start in that direction */
+    segment->time = desired_offset;
 
     /* we stop at the end */
     if (segment->stop == -1)