videosink: Don't return unknown end-time from get_times()

... in case of reverse playback. Otherwise basesink will not
wait for clock

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3121>
This commit is contained in:
Seungha Yang 2022-10-06 00:00:59 +09:00 committed by Sebastian Dröge
parent 235be306fd
commit c9f12b5086

View file

@ -273,6 +273,12 @@ gst_video_sink_get_times (GstBaseSink * bsink, GstBuffer * buffer,
*end = timestamp + *end = timestamp +
gst_util_uint64_scale_int (GST_SECOND, vsink->priv->info.fps_d, gst_util_uint64_scale_int (GST_SECOND, vsink->priv->info.fps_d,
vsink->priv->info.fps_n); vsink->priv->info.fps_n);
} else if (bsink->segment.rate < 0) {
/* The end time will be used for clock waiting time position
* in case of revese playback, and unknown end time will result in
* never waiting for clock (as if sync=false).
* Returning timestamp here would be the best effort we can do */
*end = timestamp;
} }
} }
} }