From d857b5f5ab24bd9261148d6c00a4add3d0970063 Mon Sep 17 00:00:00 2001 From: wm4 Date: Tue, 7 Apr 2015 13:38:03 +0200 Subject: audio: avoid one more redundant audio filter reinit Only reinit filters if it's actually needed. This is also slightly easier to understand: if you look at the code, it should now be more obvious why a reinit is needed (hopefully). --- player/audio.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/player/audio.c b/player/audio.c index ba692e3955..f4c69803a4 100644 --- a/player/audio.c +++ b/player/audio.c @@ -260,8 +260,6 @@ void reinit_audio_chain(struct MPContext *mpctx) } if (!mpctx->ao) { - afs->initialized = 0; // do it again - mp_chmap_remove_useless_channels(&afs->output.channels, &opts->audio_output_channels); mp_audio_set_channels(&afs->output, &afs->output.channels); @@ -281,6 +279,8 @@ void reinit_audio_chain(struct MPContext *mpctx) mp_audio_buffer_reinit(mpctx->ao_buffer, &fmt); afs->output = fmt; + if (!mp_audio_config_equals(&afs->output, &afs->filter_output)) + afs->initialized = 0; mpctx->ao_decoder_fmt = talloc(NULL, struct mp_audio); *mpctx->ao_decoder_fmt = in_format; -- cgit v1.2.3