summaryrefslogtreecommitdiffstats
path: root/player/audio.c
diff options
context:
space:
mode:
Diffstat (limited to 'player/audio.c')
-rw-r--r--player/audio.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/player/audio.c b/player/audio.c
index 67ac16a2be..23913b9b11 100644
--- a/player/audio.c
+++ b/player/audio.c
@@ -96,6 +96,8 @@ void reset_audio_state(struct MPContext *mpctx)
{
if (mpctx->d_audio)
audio_reset_decoding(mpctx->d_audio);
+ if (mpctx->ao_buffer)
+ mp_audio_buffer_clear(mpctx->ao_buffer);
mpctx->audio_status = mpctx->d_audio ? STATUS_SYNCING : STATUS_EOF;
}
@@ -120,15 +122,13 @@ void reinit_audio_chain(struct MPContext *mpctx)
mpctx->d_audio->opts = opts;
mpctx->d_audio->header = sh;
mpctx->d_audio->replaygain_data = sh->audio->replaygain_data;
+ mpctx->ao_buffer = mp_audio_buffer_create(NULL);
if (!audio_init_best_codec(mpctx->d_audio, opts->audio_decoders))
goto init_error;
reset_audio_state(mpctx);
}
assert(mpctx->d_audio);
- if (!mpctx->ao_buffer)
- mpctx->ao_buffer = mp_audio_buffer_create(mpctx);
-
struct mp_audio in_format;
mp_audio_buffer_get_format(mpctx->d_audio->decode_buffer, &in_format);