From 6604614dc53e76b4a16a6e19841efc5989002f79 Mon Sep 17 00:00:00 2001 From: Thiago Santos Date: Tue, 3 May 2016 10:41:06 -0300 Subject: [PATCH] qtdemux: properly activate segment with rate != 1.0 Also use the qt rate to identify the position within a qt segment to properly translate playback time to qt media time https://bugzilla.gnome.org/show_bug.cgi?id=765669 --- gst/isomp4/qtdemux.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gst/isomp4/qtdemux.c b/gst/isomp4/qtdemux.c index 3c0d7d77da..b70457864c 100644 --- a/gst/isomp4/qtdemux.c +++ b/gst/isomp4/qtdemux.c @@ -1272,7 +1272,7 @@ gst_qtdemux_adjust_seek (GstQTDemux * qtdemux, gint64 desired_time, /* get segment and time in the segment */ seg = &str->segments[seg_idx]; - seg_time = desired_time - seg->time; + seg_time = (desired_time - seg->time) * seg->rate; while (QTSEGMENT_IS_EMPTY (seg)) { seg_time = 0; @@ -4400,7 +4400,7 @@ gst_qtdemux_stream_segment_get_boundaries (GstQTDemux * qtdemux, segment = &stream->segments[stream->segment_index]; /* get time in this segment */ - seg_time = offset - segment->time; + seg_time = (offset - segment->time) * segment->rate; GST_LOG_OBJECT (stream->pad, "seg_time %" GST_TIME_FORMAT, GST_TIME_ARGS (seg_time));