From 83913e1d31e76e09ece69b1333028e5d06c4969a Mon Sep 17 00:00:00 2001 From: jp9000 Date: Tue, 21 Jul 2020 16:40:33 -0700 Subject: [PATCH] deps/media-playback: Don't EOF while paused and seeking Fixes a bug where playback would completely stop when manually seeking to the end of the file. Playback should not officially stop until playback has unpaused. --- deps/media-playback/media-playback/media.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/deps/media-playback/media-playback/media.c b/deps/media-playback/media-playback/media.c index 032668c36..5de6b6da2 100644 --- a/deps/media-playback/media-playback/media.c +++ b/deps/media-playback/media-playback/media.c @@ -227,13 +227,20 @@ static bool mp_media_init_scaling(mp_media_t *m) static bool mp_media_prepare_frames(mp_media_t *m) { + bool actively_seeking = m->seek_next_ts && m->pause; + while (!mp_media_ready_to_start(m)) { if (!m->eof) { int ret = mp_media_next_packet(m); - if (ret == AVERROR_EOF || ret == AVERROR_EXIT) - m->eof = true; - else if (ret < 0) + if (ret == AVERROR_EOF || ret == AVERROR_EXIT) { + if (!actively_seeking) { + m->eof = true; + } else { + break; + } + } else if (ret < 0) { return false; + } } if (m->has_video && !mp_decode_frame(&m->v))