diff options
-rw-r--r-- | player/playloop.c | 2 | ||||
-rw-r--r-- | player/sub.c | 7 |
2 files changed, 4 insertions, 5 deletions
diff --git a/player/playloop.c b/player/playloop.c index 8fa590ff68..7b5a2f6d45 100644 --- a/player/playloop.c +++ b/player/playloop.c @@ -229,6 +229,8 @@ void reset_playback_state(struct MPContext *mpctx) // (Often, but not always, this is redundant and also done elsewhere.) if (t->dec) t->dec->play_dir = mpctx->play_dir; + if (t->d_sub) + sub_set_play_dir(t->d_sub, mpctx->play_dir); } mpctx->hrseek_active = false; diff --git a/player/sub.c b/player/sub.c index 12a9696227..599430ac21 100644 --- a/player/sub.c +++ b/player/sub.c @@ -57,11 +57,8 @@ static void reset_subtitles(struct MPContext *mpctx, struct track *track) void reset_subtitle_state(struct MPContext *mpctx) { - for (int n = 0; n < mpctx->num_tracks; n++) { - struct dec_sub *d_sub = mpctx->tracks[n]->d_sub; - if (d_sub) - sub_reset(d_sub); - } + for (int n = 0; n < mpctx->num_tracks; n++) + reset_subtitles(mpctx, mpctx->tracks[n]); term_osd_set_subs(mpctx, NULL); } |