diff --git a/libraries/transformer/src/test/java/androidx/media3/transformer/MediaItemExportTest.java b/libraries/transformer/src/test/java/androidx/media3/transformer/MediaItemExportTest.java index 8b50cd9ae5..6a3504240a 100644 --- a/libraries/transformer/src/test/java/androidx/media3/transformer/MediaItemExportTest.java +++ b/libraries/transformer/src/test/java/androidx/media3/transformer/MediaItemExportTest.java @@ -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 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 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 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 = diff --git a/libraries/transformer/src/test/java/androidx/media3/transformer/SequenceExportTest.java b/libraries/transformer/src/test/java/androidx/media3/transformer/SequenceExportTest.java index 76aaa10b6e..a6e78a431b 100644 --- a/libraries/transformer/src/test/java/androidx/media3/transformer/SequenceExportTest.java +++ b/libraries/transformer/src/test/java/androidx/media3/transformer/SequenceExportTest.java @@ -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( diff --git a/libraries/transformer/src/test/java/androidx/media3/transformer/TestUtil.java b/libraries/transformer/src/test/java/androidx/media3/transformer/TestUtil.java index 117511e0ff..fa0534fd53 100644 --- a/libraries/transformer/src/test/java/androidx/media3/transformer/TestUtil.java +++ b/libraries/transformer/src/test/java/androidx/media3/transformer/TestUtil.java @@ -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);