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 c6da3e26ad..62e0c1135b 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 @@ -15,6 +15,7 @@ */ package com.google.android.exoplayer2.audio; +import static com.google.android.exoplayer2.audio.AudioProcessor.EMPTY_BUFFER; import static com.google.android.exoplayer2.util.Assertions.checkState; import androidx.annotation.Nullable; @@ -22,7 +23,6 @@ import com.google.android.exoplayer2.audio.AudioProcessor.AudioFormat; import com.google.common.collect.ImmutableList; import com.google.errorprone.annotations.CanIgnoreReturnValue; import java.nio.ByteBuffer; -import java.nio.ByteOrder; import java.util.ArrayList; import java.util.List; @@ -67,10 +67,6 @@ import java.util.List; */ public final class AudioProcessingPipeline { - /** An empty, direct {@link ByteBuffer}. */ - private static final ByteBuffer EMPTY_BUFFER = - ByteBuffer.allocateDirect(0).order(ByteOrder.nativeOrder()); - /** The {@link AudioProcessor} instances passed to {@link AudioProcessingPipeline}. */ private final ImmutableList audioProcessors; /** @@ -321,13 +317,6 @@ 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(); diff --git a/library/transformer/src/main/java/com/google/android/exoplayer2/transformer/SpeedChangingAudioProcessor.java b/library/transformer/src/main/java/com/google/android/exoplayer2/transformer/SpeedChangingAudioProcessor.java index 62bdc36636..99f569c818 100644 --- a/library/transformer/src/main/java/com/google/android/exoplayer2/transformer/SpeedChangingAudioProcessor.java +++ b/library/transformer/src/main/java/com/google/android/exoplayer2/transformer/SpeedChangingAudioProcessor.java @@ -108,7 +108,9 @@ import java.nio.ByteBuffer; } } else { ByteBuffer buffer = replaceOutputBuffer(/* size= */ inputBuffer.remaining()); - buffer.put(inputBuffer); + if (inputBuffer.hasRemaining()) { + buffer.put(inputBuffer); + } buffer.flip(); } bytesRead += inputBuffer.position() - startPosition;