Add new effects helper util for unit tests.
PiperOrigin-RevId: 557515564
This commit is contained in:
parent
9631923440
commit
27bc2e6844
@ -32,6 +32,8 @@ import static androidx.media3.transformer.TestUtil.FILE_WITH_SEF_SLOW_MOTION;
|
||||
import static androidx.media3.transformer.TestUtil.FILE_WITH_SUBTITLES;
|
||||
import static androidx.media3.transformer.TestUtil.addAudioDecoders;
|
||||
import static androidx.media3.transformer.TestUtil.addAudioEncoders;
|
||||
import static androidx.media3.transformer.TestUtil.createAudioEffects;
|
||||
import static androidx.media3.transformer.TestUtil.createPitchChangingAudioProcessor;
|
||||
import static androidx.media3.transformer.TestUtil.createTransformerBuilder;
|
||||
import static androidx.media3.transformer.TestUtil.getDumpFileName;
|
||||
import static androidx.media3.transformer.TestUtil.removeEncodersAndDecoders;
|
||||
@ -60,7 +62,6 @@ import androidx.media3.common.C;
|
||||
import androidx.media3.common.Effect;
|
||||
import androidx.media3.common.MediaItem;
|
||||
import androidx.media3.common.MimeTypes;
|
||||
import androidx.media3.common.audio.AudioProcessor;
|
||||
import androidx.media3.common.audio.SonicAudioProcessor;
|
||||
import androidx.media3.common.util.Util;
|
||||
import androidx.media3.effect.Presentation;
|
||||
@ -361,7 +362,7 @@ public final class MediaItemExportTest {
|
||||
EditedMediaItem editedMediaItem =
|
||||
new EditedMediaItem.Builder(MediaItem.fromUri(ASSET_URI_PREFIX + FILE_AUDIO_VIDEO))
|
||||
.setRemoveAudio(true)
|
||||
.setEffects(new Effects(ImmutableList.of(sonicAudioProcessor), ImmutableList.of()))
|
||||
.setEffects(createAudioEffects(sonicAudioProcessor))
|
||||
.build();
|
||||
EditedMediaItemSequence sequence =
|
||||
new EditedMediaItemSequence(ImmutableList.of(editedMediaItem));
|
||||
@ -427,10 +428,11 @@ public final class MediaItemExportTest {
|
||||
Transformer transformer =
|
||||
createTransformerBuilder(muxerFactory, /* enableFallback= */ false).build();
|
||||
MediaItem mediaItem = MediaItem.fromUri(ASSET_URI_PREFIX + FILE_AUDIO_VIDEO);
|
||||
ImmutableList<AudioProcessor> audioProcessors = ImmutableList.of(sonicAudioProcessor);
|
||||
Effects effects = new Effects(audioProcessors, /* videoEffects= */ ImmutableList.of());
|
||||
|
||||
EditedMediaItem editedMediaItem =
|
||||
new EditedMediaItem.Builder(mediaItem).setEffects(effects).build();
|
||||
new EditedMediaItem.Builder(mediaItem)
|
||||
.setEffects(createAudioEffects(sonicAudioProcessor))
|
||||
.build();
|
||||
|
||||
transformer.start(editedMediaItem, outputPath);
|
||||
TransformerTestRunner.runLooper(transformer);
|
||||
@ -446,10 +448,10 @@ public final class MediaItemExportTest {
|
||||
Transformer transformer =
|
||||
createTransformerBuilder(muxerFactory, /* enableFallback= */ false).build();
|
||||
MediaItem mediaItem = MediaItem.fromUri(ASSET_URI_PREFIX + FILE_AUDIO_VIDEO);
|
||||
ImmutableList<AudioProcessor> audioProcessors = ImmutableList.of(sonicAudioProcessor);
|
||||
Effects effects = new Effects(audioProcessors, /* videoEffects= */ ImmutableList.of());
|
||||
EditedMediaItem editedMediaItem =
|
||||
new EditedMediaItem.Builder(mediaItem).setEffects(effects).build();
|
||||
new EditedMediaItem.Builder(mediaItem)
|
||||
.setEffects(createAudioEffects(sonicAudioProcessor))
|
||||
.build();
|
||||
EditedMediaItemSequence editedMediaItemSequence =
|
||||
new EditedMediaItemSequence(ImmutableList.of(editedMediaItem));
|
||||
Composition composition =
|
||||
@ -971,10 +973,10 @@ public final class MediaItemExportTest {
|
||||
SUPPORTED_OUTPUT_TYPE_ENCODED, /* sampleConsumerRef= */ null))
|
||||
.build();
|
||||
MediaItem mediaItem = MediaItem.fromUri(ASSET_URI_PREFIX + FILE_AUDIO_VIDEO);
|
||||
ImmutableList<AudioProcessor> audioProcessors = ImmutableList.of(new SonicAudioProcessor());
|
||||
Effects effects = new Effects(audioProcessors, /* videoEffects= */ ImmutableList.of());
|
||||
EditedMediaItem editedMediaItem =
|
||||
new EditedMediaItem.Builder(mediaItem).setEffects(effects).build();
|
||||
new EditedMediaItem.Builder(mediaItem)
|
||||
.setEffects(createAudioEffects(createPitchChangingAudioProcessor(/* pitch= */ 2f)))
|
||||
.build();
|
||||
|
||||
transformer.start(editedMediaItem, outputPath);
|
||||
ExportException exportException =
|
||||
|
@ -24,16 +24,15 @@ import static androidx.media3.transformer.TestUtil.FILE_AUDIO_VIDEO;
|
||||
import static androidx.media3.transformer.TestUtil.FILE_AUDIO_VIDEO_INCREASING_TIMESTAMPS_15S;
|
||||
import static androidx.media3.transformer.TestUtil.addAudioDecoders;
|
||||
import static androidx.media3.transformer.TestUtil.addAudioEncoders;
|
||||
import static androidx.media3.transformer.TestUtil.createAudioEffects;
|
||||
import static androidx.media3.transformer.TestUtil.createPitchChangingAudioProcessor;
|
||||
import static androidx.media3.transformer.TestUtil.createTransformerBuilder;
|
||||
import static androidx.media3.transformer.TestUtil.getDumpFileName;
|
||||
import static androidx.media3.transformer.TestUtil.removeEncodersAndDecoders;
|
||||
|
||||
import android.content.Context;
|
||||
import androidx.media3.common.Effect;
|
||||
import androidx.media3.common.MediaItem;
|
||||
import androidx.media3.common.MimeTypes;
|
||||
import androidx.media3.common.audio.SonicAudioProcessor;
|
||||
import androidx.media3.common.util.Util;
|
||||
import androidx.media3.effect.RgbFilter;
|
||||
import androidx.media3.test.utils.DumpFileAsserts;
|
||||
@ -109,12 +108,13 @@ public final class SequenceExportTest {
|
||||
Transformer transformer =
|
||||
createTransformerBuilder(muxerFactory, /* enableFallback= */ false).build();
|
||||
MediaItem mediaItem = MediaItem.fromUri(ASSET_URI_PREFIX + FILE_AUDIO_VIDEO);
|
||||
SonicAudioProcessor sonicAudioProcessor = createPitchChangingAudioProcessor(/* pitch= */ 2f);
|
||||
Effect videoEffect = RgbFilter.createGrayscaleFilter();
|
||||
Effects effects =
|
||||
new Effects(ImmutableList.of(sonicAudioProcessor), ImmutableList.of(videoEffect));
|
||||
EditedMediaItem editedMediaItem =
|
||||
new EditedMediaItem.Builder(mediaItem).setEffects(effects).build();
|
||||
new EditedMediaItem.Builder(mediaItem)
|
||||
.setEffects(
|
||||
new Effects(
|
||||
ImmutableList.of(createPitchChangingAudioProcessor(/* pitch= */ 2f)),
|
||||
ImmutableList.of(RgbFilter.createGrayscaleFilter())))
|
||||
.build();
|
||||
EditedMediaItemSequence editedMediaItemSequence =
|
||||
new EditedMediaItemSequence(ImmutableList.of(editedMediaItem, editedMediaItem));
|
||||
Composition composition =
|
||||
@ -237,18 +237,12 @@ public final class SequenceExportTest {
|
||||
MediaItem mediaItem = MediaItem.fromUri(ASSET_URI_PREFIX + FILE_AUDIO_RAW_VIDEO);
|
||||
EditedMediaItem audioEditedMediaItem =
|
||||
new EditedMediaItem.Builder(mediaItem)
|
||||
.setEffects(
|
||||
new Effects(
|
||||
ImmutableList.of(createPitchChangingAudioProcessor(/* pitch= */ 2f)),
|
||||
/* videoEffects= */ ImmutableList.of()))
|
||||
.setEffects(createAudioEffects(createPitchChangingAudioProcessor(/* pitch= */ 2f)))
|
||||
.build();
|
||||
EditedMediaItem noAudioEditedMediaItem =
|
||||
new EditedMediaItem.Builder(mediaItem)
|
||||
.setRemoveAudio(true)
|
||||
.setEffects(
|
||||
new Effects(
|
||||
ImmutableList.of(createPitchChangingAudioProcessor(/* pitch= */ 2f)),
|
||||
/* videoEffects= */ ImmutableList.of()))
|
||||
.setEffects(createAudioEffects(createPitchChangingAudioProcessor(/* pitch= */ 2f)))
|
||||
.build();
|
||||
EditedMediaItemSequence sequence =
|
||||
new EditedMediaItemSequence(ImmutableList.of(audioEditedMediaItem, noAudioEditedMediaItem));
|
||||
@ -276,17 +270,11 @@ public final class SequenceExportTest {
|
||||
EditedMediaItem noAudioEditedMediaItem =
|
||||
new EditedMediaItem.Builder(mediaItem)
|
||||
.setRemoveAudio(true)
|
||||
.setEffects(
|
||||
new Effects(
|
||||
ImmutableList.of(createPitchChangingAudioProcessor(/* pitch= */ 2f)),
|
||||
/* videoEffects= */ ImmutableList.of()))
|
||||
.setEffects(createAudioEffects(createPitchChangingAudioProcessor(/* pitch= */ 2f)))
|
||||
.build();
|
||||
EditedMediaItem audioEditedMediaItem =
|
||||
new EditedMediaItem.Builder(mediaItem)
|
||||
.setEffects(
|
||||
new Effects(
|
||||
ImmutableList.of(createPitchChangingAudioProcessor(/* pitch= */ 2f)),
|
||||
/* videoEffects= */ ImmutableList.of()))
|
||||
.setEffects(createAudioEffects(createPitchChangingAudioProcessor(/* pitch= */ 2f)))
|
||||
.build();
|
||||
Composition composition =
|
||||
new Composition.Builder(
|
||||
@ -340,18 +328,12 @@ public final class SequenceExportTest {
|
||||
EditedMediaItem silenceWithEffectsItem =
|
||||
new EditedMediaItem.Builder(mediaItem)
|
||||
.setRemoveAudio(true)
|
||||
.setEffects(
|
||||
new Effects(
|
||||
ImmutableList.of(createPitchChangingAudioProcessor(/* pitch= */ 2f)),
|
||||
/* videoEffects= */ ImmutableList.of()))
|
||||
.setEffects(createAudioEffects(createPitchChangingAudioProcessor(/* pitch= */ 2f)))
|
||||
.build();
|
||||
EditedMediaItem silenceItem =
|
||||
new EditedMediaItem.Builder(mediaItem)
|
||||
.setRemoveAudio(true)
|
||||
.setEffects(
|
||||
new Effects(
|
||||
ImmutableList.of(createPitchChangingAudioProcessor(/* pitch= */ 2f)),
|
||||
/* videoEffects= */ ImmutableList.of()))
|
||||
.setEffects(createAudioEffects(createPitchChangingAudioProcessor(/* pitch= */ 2f)))
|
||||
.build();
|
||||
EditedMediaItemSequence sequence =
|
||||
new EditedMediaItemSequence(ImmutableList.of(silenceWithEffectsItem, silenceItem));
|
||||
@ -379,18 +361,12 @@ public final class SequenceExportTest {
|
||||
EditedMediaItem silenceWithEffectsItem =
|
||||
new EditedMediaItem.Builder(mediaItem)
|
||||
.setRemoveAudio(true)
|
||||
.setEffects(
|
||||
new Effects(
|
||||
ImmutableList.of(createPitchChangingAudioProcessor(/* pitch= */ 2f)),
|
||||
/* videoEffects= */ ImmutableList.of()))
|
||||
.setEffects(createAudioEffects(createPitchChangingAudioProcessor(/* pitch= */ 2f)))
|
||||
.build();
|
||||
EditedMediaItem silenceItem =
|
||||
new EditedMediaItem.Builder(mediaItem)
|
||||
.setRemoveAudio(true)
|
||||
.setEffects(
|
||||
new Effects(
|
||||
ImmutableList.of(createPitchChangingAudioProcessor(/* pitch= */ 2f)),
|
||||
/* videoEffects= */ ImmutableList.of()))
|
||||
.setEffects(createAudioEffects(createPitchChangingAudioProcessor(/* pitch= */ 2f)))
|
||||
.build();
|
||||
EditedMediaItemSequence sequence =
|
||||
new EditedMediaItemSequence(ImmutableList.of(silenceItem, silenceWithEffectsItem));
|
||||
@ -418,18 +394,12 @@ public final class SequenceExportTest {
|
||||
EditedMediaItem firstItem =
|
||||
new EditedMediaItem.Builder(mediaItem)
|
||||
.setRemoveAudio(true)
|
||||
.setEffects(
|
||||
new Effects(
|
||||
ImmutableList.of(createPitchChangingAudioProcessor(/* pitch= */ 2f)),
|
||||
/* videoEffects= */ ImmutableList.of()))
|
||||
.setEffects(createAudioEffects(createPitchChangingAudioProcessor(/* pitch= */ 2f)))
|
||||
.build();
|
||||
EditedMediaItem secondItem =
|
||||
new EditedMediaItem.Builder(mediaItem)
|
||||
.setRemoveAudio(true)
|
||||
.setEffects(
|
||||
new Effects(
|
||||
ImmutableList.of(createPitchChangingAudioProcessor(/* pitch= */ 2f)),
|
||||
/* videoEffects= */ ImmutableList.of()))
|
||||
.setEffects(createAudioEffects(createPitchChangingAudioProcessor(/* pitch= */ 2f)))
|
||||
.build();
|
||||
EditedMediaItemSequence sequence =
|
||||
new EditedMediaItemSequence(ImmutableList.of(firstItem, secondItem));
|
||||
@ -472,11 +442,10 @@ public final class SequenceExportTest {
|
||||
Transformer transformer =
|
||||
createTransformerBuilder(muxerFactory, /* enableFallback= */ false).build();
|
||||
MediaItem audioOnlyMediaItem = MediaItem.fromUri(ASSET_URI_PREFIX + FILE_AUDIO_RAW);
|
||||
SonicAudioProcessor sonicAudioProcessor = createPitchChangingAudioProcessor(/* pitch= */ 2f);
|
||||
Effects effects =
|
||||
new Effects(ImmutableList.of(sonicAudioProcessor), /* videoEffects= */ ImmutableList.of());
|
||||
EditedMediaItem editedMediaItem =
|
||||
new EditedMediaItem.Builder(audioOnlyMediaItem).setEffects(effects).build();
|
||||
new EditedMediaItem.Builder(audioOnlyMediaItem)
|
||||
.setEffects(createAudioEffects(createPitchChangingAudioProcessor(/* pitch= */ 2f)))
|
||||
.build();
|
||||
EditedMediaItemSequence editedMediaItemSequence =
|
||||
new EditedMediaItemSequence(ImmutableList.of(editedMediaItem, editedMediaItem));
|
||||
Composition composition =
|
||||
@ -497,23 +466,15 @@ public final class SequenceExportTest {
|
||||
Transformer transformer =
|
||||
createTransformerBuilder(muxerFactory, /* enableFallback= */ false).build();
|
||||
MediaItem audioOnlyMediaItem = MediaItem.fromUri(ASSET_URI_PREFIX + FILE_AUDIO_RAW);
|
||||
Effects highPitchEffects =
|
||||
new Effects(
|
||||
ImmutableList.of(createPitchChangingAudioProcessor(/* pitch= */ 2f)),
|
||||
/* videoEffects= */ ImmutableList.of());
|
||||
EditedMediaItem highPitchMediaItem =
|
||||
new EditedMediaItem.Builder(audioOnlyMediaItem)
|
||||
.setRemoveVideo(true)
|
||||
.setEffects(highPitchEffects)
|
||||
.setEffects(createAudioEffects(createPitchChangingAudioProcessor(/* pitch= */ 2f)))
|
||||
.build();
|
||||
Effects lowPitchEffects =
|
||||
new Effects(
|
||||
ImmutableList.of(createPitchChangingAudioProcessor(/* pitch= */ 0.5f)),
|
||||
/* videoEffects= */ ImmutableList.of());
|
||||
EditedMediaItem lowPitchMediaItem =
|
||||
new EditedMediaItem.Builder(audioOnlyMediaItem)
|
||||
.setRemoveVideo(true)
|
||||
.setEffects(lowPitchEffects)
|
||||
.setEffects(createAudioEffects(createPitchChangingAudioProcessor(/* pitch= */ 0.5f)))
|
||||
.build();
|
||||
EditedMediaItemSequence sequence =
|
||||
new EditedMediaItemSequence(ImmutableList.of(highPitchMediaItem, lowPitchMediaItem));
|
||||
@ -558,19 +519,14 @@ public final class SequenceExportTest {
|
||||
Transformer transformer =
|
||||
createTransformerBuilder(muxerFactory, /* enableFallback= */ false).build();
|
||||
|
||||
Effects highPitch =
|
||||
new Effects(
|
||||
ImmutableList.of(createPitchChangingAudioProcessor(/* pitch= */ 2f)),
|
||||
/* videoEffects= */ ImmutableList.of());
|
||||
|
||||
EditedMediaItem stereo48000Audio =
|
||||
new EditedMediaItem.Builder(
|
||||
MediaItem.fromUri(ASSET_URI_PREFIX + FILE_AUDIO_RAW_STEREO_48000KHZ))
|
||||
.setEffects(highPitch)
|
||||
.setEffects(createAudioEffects(createPitchChangingAudioProcessor(/* pitch= */ 2f)))
|
||||
.build();
|
||||
EditedMediaItem mono44100Audio =
|
||||
new EditedMediaItem.Builder(MediaItem.fromUri(ASSET_URI_PREFIX + FILE_AUDIO_RAW))
|
||||
.setEffects(highPitch)
|
||||
.setEffects(createAudioEffects(createPitchChangingAudioProcessor(/* pitch= */ 2f)))
|
||||
.build();
|
||||
|
||||
EditedMediaItemSequence editedMediaItemSequence =
|
||||
@ -596,17 +552,11 @@ public final class SequenceExportTest {
|
||||
EditedMediaItem stereo48000AudioHighPitch =
|
||||
new EditedMediaItem.Builder(
|
||||
MediaItem.fromUri(ASSET_URI_PREFIX + FILE_AUDIO_RAW_STEREO_48000KHZ))
|
||||
.setEffects(
|
||||
new Effects(
|
||||
ImmutableList.of(createPitchChangingAudioProcessor(/* pitch= */ 2f)),
|
||||
/* videoEffects= */ ImmutableList.of()))
|
||||
.setEffects(createAudioEffects(createPitchChangingAudioProcessor(/* pitch= */ 2f)))
|
||||
.build();
|
||||
EditedMediaItem mono44100AudioLowPitch =
|
||||
new EditedMediaItem.Builder(MediaItem.fromUri(ASSET_URI_PREFIX + FILE_AUDIO_RAW))
|
||||
.setEffects(
|
||||
new Effects(
|
||||
ImmutableList.of(createPitchChangingAudioProcessor(/* pitch= */ 0.5f)),
|
||||
/* videoEffects= */ ImmutableList.of()))
|
||||
.setEffects(createAudioEffects(createPitchChangingAudioProcessor(/* pitch= */ 0.5f)))
|
||||
.build();
|
||||
EditedMediaItemSequence editedMediaItemSequence =
|
||||
new EditedMediaItemSequence(
|
||||
|
@ -22,6 +22,7 @@ import androidx.annotation.Nullable;
|
||||
import androidx.media3.common.C;
|
||||
import androidx.media3.common.Format;
|
||||
import androidx.media3.common.MimeTypes;
|
||||
import androidx.media3.common.audio.AudioProcessor;
|
||||
import androidx.media3.common.audio.SonicAudioProcessor;
|
||||
import androidx.media3.common.util.UnstableApi;
|
||||
import androidx.media3.common.util.Util;
|
||||
@ -144,6 +145,11 @@ public final class TestUtil {
|
||||
new DefaultEncoderFactory.Builder(context).setEnableFallback(enableFallback).build());
|
||||
}
|
||||
|
||||
public static Effects createAudioEffects(AudioProcessor... audioProcessors) {
|
||||
return new Effects(
|
||||
ImmutableList.copyOf(audioProcessors), /* videoEffects= */ ImmutableList.of());
|
||||
}
|
||||
|
||||
public static SonicAudioProcessor createPitchChangingAudioProcessor(float pitch) {
|
||||
SonicAudioProcessor sonicAudioProcessor = new SonicAudioProcessor();
|
||||
sonicAudioProcessor.setPitch(pitch);
|
||||
|
Loading…
x
Reference in New Issue
Block a user