diff options
Diffstat (limited to 'player/sub.c')
-rw-r--r-- | player/sub.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/player/sub.c b/player/sub.c index 65b8ecc78f..0656dd5b56 100644 --- a/player/sub.c +++ b/player/sub.c @@ -70,6 +70,8 @@ void uninit_sub(struct MPContext *mpctx, struct track *track) sub_select(track->d_sub, false); int order = get_order(mpctx, track); osd_set_sub(mpctx->osd, order, NULL); + sub_destroy(track->d_sub); + track->d_sub = NULL; } } @@ -182,7 +184,9 @@ void reinit_sub(struct MPContext *mpctx, struct track *track) if (!track || !track->stream || track->stream->type != STREAM_SUB) return; - if (!track->d_sub && !init_subdec(mpctx, track)) { + assert(!track->d_sub); + + if (!init_subdec(mpctx, track)) { error_on_track(mpctx, track); return; } |