basesink: Don't swap rstart/rstop when stepping

Step handling is implemented based on unmodified start/stop
segment running time, and basesink takes rate into account for
stepping. This commit is partially undoing new behavior introduced by
the commit of 39b9cc554c when stepping.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/848>
This commit is contained in:
Seungha Yang 2021-07-07 20:11:13 +09:00
parent ab6faaeeb4
commit b1b5b2d4cd

View file

@ -2205,7 +2205,11 @@ do_times:
rstop = gst_segment_to_running_time (segment, format, cstop);
/* In reverse playback, play from stop to start */
if (segment->rate < 0.0 && GST_CLOCK_TIME_IS_VALID (rstop)) {
if (segment->rate < 0.0 && GST_CLOCK_TIME_IS_VALID (rstop)
/* FIXME: Current stepping implemenation expects unmodified rstart/rstop
* for reverse playback. Don't swap those values when stepping
* unless stepping code is updated as such */
&& !step->valid) {
GstClockTime tmp = rstart;
rstart = rstop;
rstop = tmp;