diff --git a/libraries/test_utils/src/main/java/androidx/media3/test/utils/TestUtil.java b/libraries/test_utils/src/main/java/androidx/media3/test/utils/TestUtil.java index c6f74ba08c..ccaab76e4c 100644 --- a/libraries/test_utils/src/main/java/androidx/media3/test/utils/TestUtil.java +++ b/libraries/test_utils/src/main/java/androidx/media3/test/utils/TestUtil.java @@ -52,6 +52,8 @@ import java.io.InputStream; import java.lang.reflect.Method; import java.lang.reflect.Modifier; import java.nio.ByteBuffer; +import java.nio.ByteOrder; +import java.nio.FloatBuffer; import java.util.ArrayDeque; import java.util.ArrayList; import java.util.Collections; @@ -123,12 +125,35 @@ public class TestUtil { * @return The equivalent byte array. */ public static byte[] createByteArray(int... bytes) { - byte[] byteArray = new byte[bytes.length]; - for (int i = 0; i < byteArray.length; i++) { + byte[] array = new byte[bytes.length]; + for (int i = 0; i < array.length; i++) { Assertions.checkState(0x00 <= bytes[i] && bytes[i] <= 0xFF); - byteArray[i] = (byte) bytes[i]; + array[i] = (byte) bytes[i]; } - return byteArray; + return array; + } + + /** Gets the underlying data of the {@link ByteBuffer} as a {@code float[]}. */ + public static float[] createFloatArray(ByteBuffer byteBuffer) { + FloatBuffer buffer = byteBuffer.asFloatBuffer(); + float[] content = new float[buffer.remaining()]; + buffer.get(content); + return content; + } + + /** Creates a {@link ByteBuffer} containing the {@code data}. */ + public static ByteBuffer createByteBuffer(float[] data) { + ByteBuffer buffer = + ByteBuffer.allocateDirect(data.length * C.BYTES_PER_FLOAT).order(ByteOrder.nativeOrder()); + buffer.asFloatBuffer().put(data); + return buffer; + } + + /** Creates a {@link ByteBuffer} containing the {@code data}. */ + public static ByteBuffer createByteBuffer(short[] data) { + ByteBuffer buffer = ByteBuffer.allocateDirect(data.length * 2).order(ByteOrder.nativeOrder()); + buffer.asShortBuffer().put(data); + return buffer; } /** diff --git a/libraries/transformer/src/test/java/androidx/media3/transformer/AudioMixerImplTest.java b/libraries/transformer/src/test/java/androidx/media3/transformer/AudioMixerImplTest.java index ca1fdf66c5..96eed2cd20 100644 --- a/libraries/transformer/src/test/java/androidx/media3/transformer/AudioMixerImplTest.java +++ b/libraries/transformer/src/test/java/androidx/media3/transformer/AudioMixerImplTest.java @@ -15,14 +15,14 @@ */ package androidx.media3.transformer; +import static androidx.media3.test.utils.TestUtil.createByteBuffer; +import static androidx.media3.test.utils.TestUtil.createFloatArray; import static com.google.common.truth.Truth.assertThat; import androidx.media3.common.C; import androidx.media3.common.audio.AudioProcessor.AudioFormat; import androidx.test.ext.junit.runners.AndroidJUnit4; import java.nio.ByteBuffer; -import java.nio.ByteOrder; -import java.nio.FloatBuffer; import org.junit.Test; import org.junit.runner.RunWith; @@ -318,25 +318,4 @@ public final class AudioMixerImplTest { assertThat(mixer.getOutput().remaining()).isEqualTo(0); } - - private static ByteBuffer createByteBuffer(float[] content) { - ByteBuffer buffer = - ByteBuffer.allocateDirect(content.length * 4).order(ByteOrder.nativeOrder()); - buffer.asFloatBuffer().put(content); - return buffer; - } - - private static ByteBuffer createByteBuffer(short[] content) { - ByteBuffer byteBuffer = - ByteBuffer.allocateDirect(content.length * 2).order(ByteOrder.nativeOrder()); - byteBuffer.asShortBuffer().put(content); - return byteBuffer; - } - - private static float[] createFloatArray(ByteBuffer byteBuffer) { - FloatBuffer buffer = byteBuffer.asFloatBuffer(); - float[] content = new float[buffer.remaining()]; - buffer.get(content); - return content; - } } diff --git a/libraries/transformer/src/test/java/androidx/media3/transformer/FloatAudioMixingAlgorithmTest.java b/libraries/transformer/src/test/java/androidx/media3/transformer/FloatAudioMixingAlgorithmTest.java index 095d5e7333..d5455f9226 100644 --- a/libraries/transformer/src/test/java/androidx/media3/transformer/FloatAudioMixingAlgorithmTest.java +++ b/libraries/transformer/src/test/java/androidx/media3/transformer/FloatAudioMixingAlgorithmTest.java @@ -15,14 +15,14 @@ */ package androidx.media3.transformer; +import static androidx.media3.test.utils.TestUtil.createByteBuffer; +import static androidx.media3.test.utils.TestUtil.createFloatArray; import static com.google.common.truth.Truth.assertThat; import androidx.media3.common.C; import androidx.media3.common.audio.AudioProcessor.AudioFormat; import androidx.test.ext.junit.runners.AndroidJUnit4; import java.nio.ByteBuffer; -import java.nio.ByteOrder; -import java.nio.FloatBuffer; import org.junit.Test; import org.junit.runner.RunWith; @@ -201,25 +201,4 @@ public final class FloatAudioMixingAlgorithmTest { /* sampleRate= */ 44100, /* channelCount= */ 2, C.ENCODING_PCM_32BIT))) .isFalse(); } - - private static ByteBuffer createByteBuffer(float[] content) { - ByteBuffer byteBuffer = - ByteBuffer.allocateDirect(content.length * 4).order(ByteOrder.nativeOrder()); - byteBuffer.asFloatBuffer().put(content); - return byteBuffer; - } - - private static ByteBuffer createByteBuffer(short[] content) { - ByteBuffer byteBuffer = - ByteBuffer.allocateDirect(content.length * 2).order(ByteOrder.nativeOrder()); - byteBuffer.asShortBuffer().put(content); - return byteBuffer; - } - - private static float[] createFloatArray(ByteBuffer byteBuffer) { - FloatBuffer buffer = byteBuffer.asFloatBuffer(); - float[] content = new float[buffer.remaining()]; - buffer.get(content); - return content; - } }