Remove redundant boilerplate in AudioGraphTest & AudioGraphInputTest.

* getPcmFormat Util method already sets the mime type as AUDIO_RAW.
* static final AudioFormat consts improve test case readability.

PiperOrigin-RevId: 602740007
This commit is contained in:
samrobinson 2024-01-30 08:50:18 -08:00 committed by Copybara-Service
parent 03d35e3f43
commit 7c8a31e2b1
2 changed files with 35 additions and 73 deletions

View File

@ -20,9 +20,7 @@ import static androidx.media3.common.util.Util.getPcmFormat;
import static com.google.common.truth.Truth.assertThat;
import androidx.media3.common.C;
import androidx.media3.common.Format;
import androidx.media3.common.MediaItem;
import androidx.media3.common.MimeTypes;
import androidx.media3.common.audio.AudioProcessor.AudioFormat;
import androidx.test.ext.junit.runners.AndroidJUnit4;
import org.junit.Test;
@ -34,32 +32,28 @@ public class AudioGraphInputTest {
private static final EditedMediaItem FAKE_ITEM =
new EditedMediaItem.Builder(MediaItem.EMPTY).build();
private static final AudioFormat MONO_48000 =
new AudioFormat(/* sampleRate= */ 48_000, /* channelCount= */ 1, C.ENCODING_PCM_16BIT);
private static final AudioFormat STEREO_44100 =
new AudioFormat(/* sampleRate= */ 44_100, /* channelCount= */ 2, C.ENCODING_PCM_16BIT);
@Test
public void getOutputAudioFormat_withUnsetRequestedFormat_matchesInputFormat() throws Exception {
AudioFormat requestedAudioFormat = AudioFormat.NOT_SET;
AudioFormat inputAudioFormat =
new AudioFormat(/* sampleRate= */ 48_000, /* channelCount= */ 1, C.ENCODING_PCM_16BIT);
Format inputFormat =
getPcmFormat(inputAudioFormat).buildUpon().setSampleMimeType(MimeTypes.AUDIO_RAW).build();
AudioGraphInput audioGraphInput =
new AudioGraphInput(requestedAudioFormat, FAKE_ITEM, inputFormat);
new AudioGraphInput(
/* requestedOutputAudioFormat= */ AudioFormat.NOT_SET,
FAKE_ITEM,
getPcmFormat(MONO_48000));
assertThat(audioGraphInput.getOutputAudioFormat()).isEqualTo(inputAudioFormat);
assertThat(audioGraphInput.getOutputAudioFormat()).isEqualTo(MONO_48000);
}
@Test
public void getOutputAudioFormat_withRequestedFormat_matchesRequestedFormat() throws Exception {
AudioFormat requestedAudioFormat =
new AudioFormat(/* sampleRate= */ 44_100, /* channelCount= */ 2, C.ENCODING_PCM_16BIT);
AudioFormat inputAudioFormat =
new AudioFormat(/* sampleRate= */ 48_000, /* channelCount= */ 1, C.ENCODING_PCM_16BIT);
Format inputFormat =
getPcmFormat(inputAudioFormat).buildUpon().setSampleMimeType(MimeTypes.AUDIO_RAW).build();
AudioGraphInput audioGraphInput =
new AudioGraphInput(requestedAudioFormat, FAKE_ITEM, inputFormat);
new AudioGraphInput(
/* requestedOutputAudioFormat= */ STEREO_44100, FAKE_ITEM, getPcmFormat(MONO_48000));
assertThat(audioGraphInput.getOutputAudioFormat()).isEqualTo(requestedAudioFormat);
assertThat(audioGraphInput.getOutputAudioFormat()).isEqualTo(STEREO_44100);
}
}

View File

@ -15,12 +15,10 @@
*/
package androidx.media3.transformer;
import static androidx.media3.common.MimeTypes.AUDIO_RAW;
import static androidx.media3.common.util.Util.getPcmFormat;
import static com.google.common.truth.Truth.assertThat;
import androidx.media3.common.C;
import androidx.media3.common.Format;
import androidx.media3.common.MediaItem;
import androidx.media3.common.audio.AudioProcessor.AudioFormat;
import androidx.test.ext.junit.runners.AndroidJUnit4;
@ -33,20 +31,22 @@ import org.junit.runner.RunWith;
public class AudioGraphTest {
private static final EditedMediaItem FAKE_ITEM =
new EditedMediaItem.Builder(MediaItem.EMPTY).build();
private static final AudioFormat MONO_44100 =
new AudioFormat(/* sampleRate= */ 44_100, /* channelCount= */ 1, C.ENCODING_PCM_16BIT);
private static final AudioFormat MONO_48000 =
new AudioFormat(/* sampleRate= */ 48_000, /* channelCount= */ 1, C.ENCODING_PCM_16BIT);
private static final AudioFormat STEREO_44100 =
new AudioFormat(/* sampleRate= */ 44_100, /* channelCount= */ 2, C.ENCODING_PCM_16BIT);
private static final AudioFormat STEREO_48000 =
new AudioFormat(/* sampleRate= */ 48_000, /* channelCount= */ 2, C.ENCODING_PCM_16BIT);
private static final AudioFormat SURROUND_50000 =
new AudioFormat(/* sampleRate= */ 50_000, /* channelCount= */ 6, C.ENCODING_PCM_16BIT);
@Test
public void silentItem_outputsCorrectAmountOfBytes() throws Exception {
Format format =
new Format.Builder()
.setSampleRate(50_000)
.setChannelCount(6)
.setPcmEncoding(C.ENCODING_PCM_16BIT)
.setSampleMimeType(AUDIO_RAW)
.build();
AudioGraph audioGraph = new AudioGraph(new DefaultAudioMixer.Factory());
GraphInput input = audioGraph.registerInput(FAKE_ITEM, format);
GraphInput input = audioGraph.registerInput(FAKE_ITEM, getPcmFormat(SURROUND_50000));
input.onMediaItemChanged(
FAKE_ITEM, /* durationUs= */ 3_000_000, /* trackFormat= */ null, /* isLast= */ true);
int bytesOutput = drainAudioGraph(audioGraph);
@ -66,72 +66,40 @@ public class AudioGraphTest {
@Test
public void getOutputAudioFormat_afterRegisterInput_matchesInputFormat() throws Exception {
AudioGraph audioGraph = new AudioGraph(new DefaultAudioMixer.Factory());
AudioFormat inputAudioFormat =
new AudioFormat(/* sampleRate= */ 48_000, /* channelCount= */ 1, C.ENCODING_PCM_16BIT);
audioGraph.registerInput(
FAKE_ITEM, getPcmFormat(inputAudioFormat).buildUpon().setSampleMimeType(AUDIO_RAW).build());
audioGraph.registerInput(FAKE_ITEM, getPcmFormat(MONO_48000));
assertThat(audioGraph.getOutputAudioFormat()).isEqualTo(inputAudioFormat);
assertThat(audioGraph.getOutputAudioFormat()).isEqualTo(MONO_48000);
}
@Test
public void getOutputAudioFormat_afterConfigure_matchesConfiguredFormat() throws Exception {
AudioGraph audioGraph = new AudioGraph(new DefaultAudioMixer.Factory());
AudioFormat configuredAudioFormat =
new AudioFormat(/* sampleRate= */ 44_100, /* channelCount= */ 6, C.ENCODING_PCM_16BIT);
audioGraph.configure(configuredAudioFormat);
audioGraph.configure(SURROUND_50000);
assertThat(audioGraph.getOutputAudioFormat()).isEqualTo(configuredAudioFormat);
assertThat(audioGraph.getOutputAudioFormat()).isEqualTo(SURROUND_50000);
}
@Test
public void registerInput_afterConfigure_doesNotChangeOutputFormat() throws Exception {
AudioGraph audioGraph = new AudioGraph(new DefaultAudioMixer.Factory());
AudioFormat configuredAudioFormat =
new AudioFormat(/* sampleRate= */ 44_100, /* channelCount= */ 2, C.ENCODING_PCM_16BIT);
audioGraph.configure(configuredAudioFormat);
audioGraph.registerInput(
FAKE_ITEM,
getPcmFormat(
new AudioFormat(
/* sampleRate= */ 48_000, /* channelCount= */ 2, C.ENCODING_PCM_16BIT))
.buildUpon()
.setSampleMimeType(AUDIO_RAW)
.build());
audioGraph.registerInput(
FAKE_ITEM,
getPcmFormat(
new AudioFormat(
/* sampleRate= */ 44_100, /* channelCount= */ 1, C.ENCODING_PCM_16BIT))
.buildUpon()
.setSampleMimeType(AUDIO_RAW)
.build());
audioGraph.configure(STEREO_44100);
audioGraph.registerInput(FAKE_ITEM, getPcmFormat(STEREO_48000));
audioGraph.registerInput(FAKE_ITEM, getPcmFormat(MONO_44100));
assertThat(audioGraph.getOutputAudioFormat()).isEqualTo(configuredAudioFormat);
assertThat(audioGraph.getOutputAudioFormat()).isEqualTo(STEREO_44100);
}
@Test
public void registerInput_afterRegisterInput_doesNotChangeOutputFormat() throws Exception {
AudioGraph audioGraph = new AudioGraph(new DefaultAudioMixer.Factory());
AudioFormat firstInputAudioFormat =
new AudioFormat(/* sampleRate= */ 48_000, /* channelCount= */ 2, C.ENCODING_PCM_16BIT);
audioGraph.registerInput(
FAKE_ITEM,
getPcmFormat(firstInputAudioFormat).buildUpon().setSampleMimeType(AUDIO_RAW).build());
audioGraph.registerInput(
FAKE_ITEM,
getPcmFormat(
new AudioFormat(
/* sampleRate= */ 44_100, /* channelCount= */ 1, C.ENCODING_PCM_16BIT))
.buildUpon()
.setSampleMimeType(AUDIO_RAW)
.build());
audioGraph.registerInput(FAKE_ITEM, getPcmFormat(STEREO_48000));
audioGraph.registerInput(FAKE_ITEM, getPcmFormat(MONO_44100));
assertThat(audioGraph.getOutputAudioFormat()).isEqualTo(firstInputAudioFormat);
assertThat(audioGraph.getOutputAudioFormat()).isEqualTo(STEREO_48000);
}
/** Drains the graph and returns the number of bytes output. */