Move audio buffer/array test utility methods to TestUtil.

PiperOrigin-RevId: 504611069
This commit is contained in:
samrobinson 2023-01-25 19:10:21 +00:00 committed by christosts
parent 86b629fff8
commit a5a59df44c
3 changed files with 33 additions and 50 deletions

View File

@ -52,6 +52,8 @@ import java.io.InputStream;
import java.lang.reflect.Method; import java.lang.reflect.Method;
import java.lang.reflect.Modifier; import java.lang.reflect.Modifier;
import java.nio.ByteBuffer; import java.nio.ByteBuffer;
import java.nio.ByteOrder;
import java.nio.FloatBuffer;
import java.util.ArrayDeque; import java.util.ArrayDeque;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
@ -123,12 +125,35 @@ public class TestUtil {
* @return The equivalent byte array. * @return The equivalent byte array.
*/ */
public static byte[] createByteArray(int... bytes) { public static byte[] createByteArray(int... bytes) {
byte[] byteArray = new byte[bytes.length]; byte[] array = new byte[bytes.length];
for (int i = 0; i < byteArray.length; i++) { for (int i = 0; i < array.length; i++) {
Assertions.checkState(0x00 <= bytes[i] && bytes[i] <= 0xFF); 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;
} }
/** /**

View File

@ -15,14 +15,14 @@
*/ */
package androidx.media3.transformer; 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 static com.google.common.truth.Truth.assertThat;
import androidx.media3.common.C; import androidx.media3.common.C;
import androidx.media3.common.audio.AudioProcessor.AudioFormat; import androidx.media3.common.audio.AudioProcessor.AudioFormat;
import androidx.test.ext.junit.runners.AndroidJUnit4; import androidx.test.ext.junit.runners.AndroidJUnit4;
import java.nio.ByteBuffer; import java.nio.ByteBuffer;
import java.nio.ByteOrder;
import java.nio.FloatBuffer;
import org.junit.Test; import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
@ -318,25 +318,4 @@ public final class AudioMixerImplTest {
assertThat(mixer.getOutput().remaining()).isEqualTo(0); 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;
}
} }

View File

@ -15,14 +15,14 @@
*/ */
package androidx.media3.transformer; 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 static com.google.common.truth.Truth.assertThat;
import androidx.media3.common.C; import androidx.media3.common.C;
import androidx.media3.common.audio.AudioProcessor.AudioFormat; import androidx.media3.common.audio.AudioProcessor.AudioFormat;
import androidx.test.ext.junit.runners.AndroidJUnit4; import androidx.test.ext.junit.runners.AndroidJUnit4;
import java.nio.ByteBuffer; import java.nio.ByteBuffer;
import java.nio.ByteOrder;
import java.nio.FloatBuffer;
import org.junit.Test; import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
@ -201,25 +201,4 @@ public final class FloatAudioMixingAlgorithmTest {
/* sampleRate= */ 44100, /* channelCount= */ 2, C.ENCODING_PCM_32BIT))) /* sampleRate= */ 44100, /* channelCount= */ 2, C.ENCODING_PCM_32BIT)))
.isFalse(); .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;
}
} }