From c881e0a505d392d233e46660271cc50e3656bf57 Mon Sep 17 00:00:00 2001 From: Askar Safin Date: Wed, 4 Sep 2019 12:54:17 +0300 Subject: [PATCH] gst-player: fix bug with changing playback direction Fix gst_event_new_seek call in gst-libs/gst/player/gstplayer.c If rate >= 0.0, then previous code doesn't set end of segment. So, the end of segment will be in place where previous seek put it. This is not neccesary end of media file (in case of reverse playback). So if we play video backward for some time and then switched to forward playing, we will get EOS somewhere in the middle of media file. This commit always sets end of segment, thus fixing this bug --- gst-libs/gst/player/gstplayer.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gst-libs/gst/player/gstplayer.c b/gst-libs/gst/player/gstplayer.c index 59eace93ee..a6c0d91368 100644 --- a/gst-libs/gst/player/gstplayer.c +++ b/gst-libs/gst/player/gstplayer.c @@ -3362,7 +3362,7 @@ gst_player_seek_internal_locked (GstPlayer * self) if (rate >= 0.0) { s_event = gst_event_new_seek (rate, GST_FORMAT_TIME, flags, - GST_SEEK_TYPE_SET, position, GST_SEEK_TYPE_NONE, GST_CLOCK_TIME_NONE); + GST_SEEK_TYPE_SET, position, GST_SEEK_TYPE_SET, GST_CLOCK_TIME_NONE); } else { s_event = gst_event_new_seek (rate, GST_FORMAT_TIME, flags, GST_SEEK_TYPE_SET, G_GINT64_CONSTANT (0), GST_SEEK_TYPE_SET, position);