summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--player/playloop.c2
-rw-r--r--player/sub.c7
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);
}