summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatej Knopp <matej.knopp@gmail.com>2014-07-12 15:26:36 +0200
committerSebastian Dröge <sebastian@centricular.com>2018-05-14 17:01:45 +0300
commit729a3443e78078a9d8b22f6b5c050262f67cc317 (patch)
tree4c5261235b30f7e63934a4c1fafd5959ee8928dc
parent9299cff444ff8bf1bfc3a1f4ccb1329f9dd40db4 (diff)
downloadgst-libav-729a3443e78078a9d8b22f6b5c050262f67cc317.tar.gz
gstavdemux: adjust seeking offset according to start_time
https://bugzilla.gnome.org/show_bug.cgi?id=733094
-rw-r--r--ext/libav/gstavdemux.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/ext/libav/gstavdemux.c b/ext/libav/gstavdemux.c
index 6495703..001e2f1 100644
--- a/ext/libav/gstavdemux.c
+++ b/ext/libav/gstavdemux.c
@@ -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;