summaryrefslogtreecommitdiffstats
path: root/player/playloop.c
diff options
context:
space:
mode:
Diffstat (limited to 'player/playloop.c')
-rw-r--r--player/playloop.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/player/playloop.c b/player/playloop.c
index 2e4cfc43ab..4cf8407812 100644
--- a/player/playloop.c
+++ b/player/playloop.c
@@ -188,13 +188,13 @@ static int mp_seek(MPContext *mpctx, struct seek_params seek,
bool need_reset = false;
demuxer_amount = timeline_set_from_time(mpctx, seek.amount,
&need_reset);
- if (demuxer_amount == -1) {
+ if (demuxer_amount == MP_NOPTS_VALUE) {
assert(!need_reset);
mpctx->stop_play = AT_END_OF_FILE;
- if (mpctx->d_audio && !timeline_fallthrough) {
- // Seek outside of the file -> clear audio from current position
- clear_audio_decode_buffers(mpctx);
+ // When seeking outside of the file, but not when ending last segment.
+ if (!timeline_fallthrough) {
clear_audio_output_buffers(mpctx);
+ reset_playback_state(mpctx);
}
return -1;
}