summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Dröge <sebastian@centricular.com>2016-09-14 18:07:55 +0200
committerSebastian Dröge <sebastian@centricular.com>2016-09-30 13:43:19 +0300
commit518f03c39b4fcdfc9e0525092208b7e561be8634 (patch)
tree863edeb70bcbfebb4efcd53b029bd4197e008d25
parentf5700c4c55997a001cf30ac74e6f8f3d6ec568a1 (diff)
downloadgstreamer-plugins-bad-518f03c39b4fcdfc9e0525092208b7e561be8634.tar.gz
player: Don't change state to PLAYING immediately if a seek is pending
We first have to finish the seek (in PAUSED) and move to PLAYING once the seek is actually finished (unless a new one is pending then).
-rw-r--r--gst-libs/gst/player/gstplayer.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/gst-libs/gst/player/gstplayer.c b/gst-libs/gst/player/gstplayer.c
index 871ba4312..0ff5b7816 100644
--- a/gst-libs/gst/player/gstplayer.c
+++ b/gst-libs/gst/player/gstplayer.c
@@ -2547,7 +2547,8 @@ gst_player_play_internal (gpointer user_data)
change_state (self, GST_PLAYER_STATE_BUFFERING);
if (self->current_state >= GST_STATE_PAUSED && !self->is_eos
- && self->buffering >= 100) {
+ && self->buffering >= 100 && !(self->seek_position != GST_CLOCK_TIME_NONE
+ || self->seek_pending)) {
state_ret = gst_element_set_state (self->playbin, GST_STATE_PLAYING);
} else {
state_ret = gst_element_set_state (self->playbin, GST_STATE_PAUSED);