gstavdemux: adjust seeking offset according to start_time
authorMatej Knopp <matej.knopp@gmail.com>
Sat, 12 Jul 2014 13:26:36 +0000 (15:26 +0200)
committerEdward Hervey <bilboed@bilboed.com>
Sun, 6 May 2018 08:55:45 +0000 (10:55 +0200)
https://bugzilla.gnome.org/show_bug.cgi?id=733094

ext/libav/gstavdemux.c

index 6495703..001e2f1 100644 (file)
@@ -460,7 +460,7 @@ gst_ffmpegdemux_do_seek (GstFFMpegDemux * demux, GstSegment * segment)
   /* get the stream for seeking */
   stream = demux->context->streams[index];
   /* initial seek position */
-  target = segment->position;
+  target = segment->position + demux->start_time;
   /* convert target to ffmpeg time */
   fftarget = gst_ffmpeg_time_gst_to_ff (target, stream->time_base);
 
@@ -503,6 +503,11 @@ gst_ffmpegdemux_do_seek (GstFFMpegDemux * demux, GstSegment * segment)
 
   GST_DEBUG_OBJECT (demux, "seek success, returned %d", seekret);
 
+  if (target > demux->start_time)
+    target -= demux->start_time;
+  else
+    target = 0;
+
   segment->position = target;
   segment->time = target;
   segment->start = target;