diff --git a/library/core/src/main/java/com/google/android/exoplayer2/audio/DefaultAudioSink.java b/library/core/src/main/java/com/google/android/exoplayer2/audio/DefaultAudioSink.java index 27abf486faa..1824303a570 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/audio/DefaultAudioSink.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/audio/DefaultAudioSink.java @@ -437,22 +437,21 @@ && supportsOutput(inputChannelCount, C.ENCODING_PCM_FLOAT) if (processingEnabled) { trimmingAudioProcessor.setTrimFrameCount(trimStartFrames, trimEndFrames); channelMappingAudioProcessor.setChannelMap(outputChannels); - AudioProcessor.AudioFormat inputAudioFormat = + AudioProcessor.AudioFormat outputFormat = new AudioProcessor.AudioFormat(sampleRate, channelCount, encoding); - AudioProcessor.AudioFormat outputAudioFormat = inputAudioFormat; for (AudioProcessor audioProcessor : availableAudioProcessors) { try { - outputAudioFormat = audioProcessor.configure(inputAudioFormat); + AudioProcessor.AudioFormat nextFormat = audioProcessor.configure(outputFormat); + if (audioProcessor.isActive()) { + outputFormat = nextFormat; + } } catch (UnhandledAudioFormatException e) { throw new ConfigurationException(e); } - if (audioProcessor.isActive()) { - inputAudioFormat = outputAudioFormat; - } } - sampleRate = outputAudioFormat.sampleRate; - channelCount = outputAudioFormat.channelCount; - encoding = outputAudioFormat.encoding; + sampleRate = outputFormat.sampleRate; + channelCount = outputFormat.channelCount; + encoding = outputFormat.encoding; } int outputChannelConfig = getChannelConfig(channelCount, isInputPcm);