From 5fe1b3eb28f9960b2980e149b5f721dae466a4d8 Mon Sep 17 00:00:00 2001 From: Thiago Santos Date: Mon, 6 Jan 2014 21:36:17 -0300 Subject: [PATCH] qtdemux: remember reverse playback when verifying the segment end Check if the rate is positive or negative to correctly compare the current position with the segment to make reverse playback work --- gst/isomp4/qtdemux.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/gst/isomp4/qtdemux.c b/gst/isomp4/qtdemux.c index b0c5cd2..5f2e11c 100644 --- a/gst/isomp4/qtdemux.c +++ b/gst/isomp4/qtdemux.c @@ -4223,7 +4223,9 @@ gst_qtdemux_loop_state_movie (GstQTDemux * qtdemux) /* check for segment end */ if (G_UNLIKELY (qtdemux->segment.stop != -1 - && qtdemux->segment.stop <= min_time + && ((qtdemux->segment.rate >= 0 && qtdemux->segment.stop <= min_time) + || (qtdemux->segment.rate < 0 + && qtdemux->segment.start > min_time)) && qtdemux->streams[index]->on_keyframe)) { GST_DEBUG_OBJECT (qtdemux, "we reached the end of our segment."); qtdemux->streams[index]->time_position = -1; -- 2.7.4