diff --git a/libraries/common/src/main/java/androidx/media3/common/audio/AudioProcessingPipeline.java b/libraries/common/src/main/java/androidx/media3/common/audio/AudioProcessingPipeline.java index 38ceb8d7fe..c51cc12dda 100644 --- a/libraries/common/src/main/java/androidx/media3/common/audio/AudioProcessingPipeline.java +++ b/libraries/common/src/main/java/androidx/media3/common/audio/AudioProcessingPipeline.java @@ -323,6 +323,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();