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