From 289a0e089e7ede4b9b2a017ffca4e56523b97ede Mon Sep 17 00:00:00 2001 From: kimvde Date: Thu, 17 Nov 2022 12:05:07 +0000 Subject: [PATCH] Make sure the AudioProcessors do not receive AP.EMPTY_BUFFER PiperOrigin-RevId: 489174645 --- .../android/exoplayer2/audio/AudioProcessingPipeline.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/library/common/src/main/java/com/google/android/exoplayer2/audio/AudioProcessingPipeline.java b/library/common/src/main/java/com/google/android/exoplayer2/audio/AudioProcessingPipeline.java index a6647400c2..c6da3e26ad 100644 --- a/library/common/src/main/java/com/google/android/exoplayer2/audio/AudioProcessingPipeline.java +++ b/library/common/src/main/java/com/google/android/exoplayer2/audio/AudioProcessingPipeline.java @@ -321,6 +321,13 @@ public final class AudioProcessingPipeline { index > 0 ? outputBuffers[index - 1] : inputBuffer.hasRemaining() ? inputBuffer : EMPTY_BUFFER; + if (input == AudioProcessor.EMPTY_BUFFER) { + // TODO(internal b/198772621): compare to how it was done in DefaultAudioSink to make sure + // this is not unnecessarily complicated. + // Queueing AudioProcessor.EMPTY_BUFFER to an AudioProcessor might lead to unexpected + // behaviour (see [Internal: b/259393434]). + input = EMPTY_BUFFER; + } long inputBytes = input.remaining(); audioProcessor.queueInput(input); outputBuffers[index] = audioProcessor.getOutput();