diff --git a/deps/media-playback/media-playback/decode.c b/deps/media-playback/media-playback/decode.c index 84b01e6f2..9cc3b0762 100644 --- a/deps/media-playback/media-playback/decode.c +++ b/deps/media-playback/media-playback/decode.c @@ -435,4 +435,5 @@ void mp_decode_flush(struct mp_decode *d) d->eof = false; d->frame_pts = 0; d->frame_ready = false; + d->next_pts = 0; } diff --git a/deps/media-playback/media-playback/media.c b/deps/media-playback/media-playback/media.c index f2f2d837f..a82049fcb 100644 --- a/deps/media-playback/media-playback/media.c +++ b/deps/media-playback/media-playback/media.c @@ -501,14 +501,14 @@ static bool mp_media_reset(mp_media_t *m) bool stopping; bool active; - seek_to(m, m->fmt->start_time); - int64_t next_ts = mp_media_get_base_pts(m); int64_t offset = next_ts - m->next_pts_ns; m->eof = false; m->base_ts += next_ts; m->seek_next_ts = false; + + seek_to(m, m->fmt->start_time); pthread_mutex_lock(&m->mutex); stopping = m->stopping;