Add test for clipped media items concatenation

This was broken and has been fixed in <unknown commit>.

PiperOrigin-RevId: 521380415
This commit is contained in:
kimvde 2023-04-03 08:15:26 +01:00 committed by Marc Baechinger
parent 95e0763ef1
commit 0bfe43866a
2 changed files with 1365 additions and 0 deletions

View file

@ -19,6 +19,7 @@ package androidx.media3.transformer;
import static androidx.media3.common.util.Assertions.checkNotNull;
import static androidx.media3.transformer.TestUtil.ASSET_URI_PREFIX;
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.createEncodersAndDecoders;
import static androidx.media3.transformer.TestUtil.createTransformerBuilder;
import static androidx.media3.transformer.TestUtil.getDumpFileName;
@ -121,6 +122,49 @@ public final class SequenceExportTest {
getDumpFileName(FILE_AUDIO_VIDEO + ".concatenated_with_high_pitch_and_no_video"));
}
@Test
public void start_concatenateClippedMediaItems_completesSuccessfully() throws Exception {
Transformer transformer =
createTransformerBuilder(testMuxerHolder, /* enableFallback= */ false).build();
MediaItem.ClippingConfiguration clippingConfiguration1 =
new MediaItem.ClippingConfiguration.Builder()
.setStartPositionMs(0) // Corresponds to key frame.
.setEndPositionMs(500)
.build();
MediaItem mediaItem1 =
new MediaItem.Builder()
.setUri(ASSET_URI_PREFIX + FILE_AUDIO_VIDEO_INCREASING_TIMESTAMPS_15S)
.setClippingConfiguration(clippingConfiguration1)
.build();
EditedMediaItem editedMediaItem1 = new EditedMediaItem.Builder(mediaItem1).build();
MediaItem.ClippingConfiguration clippingConfiguration2 =
new MediaItem.ClippingConfiguration.Builder()
.setStartPositionMs(12_500) // Corresponds to key frame.
.setEndPositionMs(14_000)
.build();
MediaItem mediaItem2 =
new MediaItem.Builder()
.setUri(ASSET_URI_PREFIX + FILE_AUDIO_VIDEO_INCREASING_TIMESTAMPS_15S)
.setClippingConfiguration(clippingConfiguration2)
.build();
EditedMediaItem editedMediaItem2 = new EditedMediaItem.Builder(mediaItem2).build();
EditedMediaItemSequence editedMediaItemSequence =
new EditedMediaItemSequence(ImmutableList.of(editedMediaItem1, editedMediaItem2));
Composition composition =
new Composition.Builder(ImmutableList.of(editedMediaItemSequence))
.setTransmuxAudio(true)
.setTransmuxVideo(true)
.build();
transformer.start(composition, outputPath);
TransformerTestRunner.runLooper(transformer);
DumpFileAsserts.assertOutput(
context,
checkNotNull(testMuxerHolder.testMuxer),
getDumpFileName(FILE_AUDIO_VIDEO_INCREASING_TIMESTAMPS_15S + ".clipped_and_concatenated"));
}
@Test
public void start_concatenateSilenceAndAudio_completesSuccessfully() throws Exception {
Transformer transformer =