mirror of
https://github.com/samsonjs/media.git
synced 2026-03-28 09:55:48 +00:00
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:
parent
95e0763ef1
commit
0bfe43866a
2 changed files with 1365 additions and 0 deletions
File diff suppressed because it is too large
Load diff
|
|
@ -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 =
|
||||
|
|
|
|||
Loading…
Reference in a new issue