Move audio buffer/array test utility methods to TestUtil.
PiperOrigin-RevId: 504611069
This commit is contained in:
parent
86b629fff8
commit
a5a59df44c
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -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;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -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;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user