diff --git a/library/transformer/src/androidTest/java/com/google/android/exoplayer2/transformer/TransformerAndroidTestRunner.java b/library/transformer/src/androidTest/java/com/google/android/exoplayer2/transformer/TransformerAndroidTestRunner.java index a9138331e6..5050c2dfb0 100644 --- a/library/transformer/src/androidTest/java/com/google/android/exoplayer2/transformer/TransformerAndroidTestRunner.java +++ b/library/transformer/src/androidTest/java/com/google/android/exoplayer2/transformer/TransformerAndroidTestRunner.java @@ -211,6 +211,20 @@ public class TransformerAndroidTestRunner { } } + /** + * Transforms the {@link MediaItem}, saving a summary of the transformation to the application + * cache. + * + * @param testId A unique identifier for the transformer test run. + * @param mediaItem The {@link MediaItem} to transform. + * @return The {@link TransformationTestResult}. + * @throws Exception The cause of the transformation not completing. + */ + public TransformationTestResult run(String testId, MediaItem mediaItem) throws Exception { + EditedMediaItem editedMediaItem = new EditedMediaItem.Builder(mediaItem).build(); + return run(testId, editedMediaItem); + } + /** * Transforms the {@link EditedMediaItem}. * diff --git a/library/transformer/src/androidTest/java/com/google/android/exoplayer2/transformer/TransformerEndToEndTest.java b/library/transformer/src/androidTest/java/com/google/android/exoplayer2/transformer/TransformerEndToEndTest.java index 9a6a637873..3a1bdf78c9 100644 --- a/library/transformer/src/androidTest/java/com/google/android/exoplayer2/transformer/TransformerEndToEndTest.java +++ b/library/transformer/src/androidTest/java/com/google/android/exoplayer2/transformer/TransformerEndToEndTest.java @@ -101,12 +101,11 @@ public class TransformerEndToEndTest { .setEndPositionMs(clippingEndMs) .build()) .build(); - EditedMediaItem editedMediaItem = new EditedMediaItem.Builder(mediaItem).build(); TransformationTestResult result = new TransformerAndroidTestRunner.Builder(context, transformer) .build() - .run(/* testId= */ "clippedMedia_completesWithClippedDuration", editedMediaItem); + .run(/* testId= */ "clippedMedia_completesWithClippedDuration", mediaItem); assertThat(result.transformationResult.durationMs).isAtMost(clippingEndMs - clippingStartMs); } diff --git a/library/transformer/src/androidTest/java/com/google/android/exoplayer2/transformer/mh/ForceInterpretHdrVideoAsSdrTest.java b/library/transformer/src/androidTest/java/com/google/android/exoplayer2/transformer/mh/ForceInterpretHdrVideoAsSdrTest.java index 9de9bdaf6a..6b7c90daf4 100644 --- a/library/transformer/src/androidTest/java/com/google/android/exoplayer2/transformer/mh/ForceInterpretHdrVideoAsSdrTest.java +++ b/library/transformer/src/androidTest/java/com/google/android/exoplayer2/transformer/mh/ForceInterpretHdrVideoAsSdrTest.java @@ -28,7 +28,6 @@ import androidx.test.ext.junit.runners.AndroidJUnit4; import com.google.android.exoplayer2.C; import com.google.android.exoplayer2.MediaItem; import com.google.android.exoplayer2.transformer.AndroidTestUtil; -import com.google.android.exoplayer2.transformer.EditedMediaItem; import com.google.android.exoplayer2.transformer.TransformationException; import com.google.android.exoplayer2.transformer.TransformationRequest; import com.google.android.exoplayer2.transformer.TransformationTestResult; @@ -68,14 +67,12 @@ public class ForceInterpretHdrVideoAsSdrTest { TransformationRequest.HDR_MODE_EXPERIMENTAL_FORCE_INTERPRET_HDR_AS_SDR) .build()) .build(); - EditedMediaItem editedMediaItem = - new EditedMediaItem.Builder(MediaItem.fromUri(Uri.parse(MP4_ASSET_1080P_4_SECOND_HDR10))) - .build(); + MediaItem mediaItem = MediaItem.fromUri(Uri.parse(MP4_ASSET_1080P_4_SECOND_HDR10)); try { TransformationTestResult transformationTestResult = new TransformerAndroidTestRunner.Builder(context, transformer) .build() - .run(testId, editedMediaItem); + .run(testId, mediaItem); assertFileHasColorTransfer(transformationTestResult.filePath, C.COLOR_TRANSFER_SDR); Log.i(TAG, "Transformed."); } catch (TransformationException exception) { @@ -107,14 +104,12 @@ public class ForceInterpretHdrVideoAsSdrTest { TransformationRequest.HDR_MODE_EXPERIMENTAL_FORCE_INTERPRET_HDR_AS_SDR) .build()) .build(); - EditedMediaItem editedMediaItem = - new EditedMediaItem.Builder(MediaItem.fromUri(Uri.parse(MP4_ASSET_1080P_5_SECOND_HLG10))) - .build(); + MediaItem mediaItem = MediaItem.fromUri(Uri.parse(MP4_ASSET_1080P_5_SECOND_HLG10)); try { TransformationTestResult transformationTestResult = new TransformerAndroidTestRunner.Builder(context, transformer) .build() - .run(testId, editedMediaItem); + .run(testId, mediaItem); assertFileHasColorTransfer(transformationTestResult.filePath, C.COLOR_TRANSFER_SDR); Log.i(TAG, "Transformed."); } catch (TransformationException exception) { diff --git a/library/transformer/src/androidTest/java/com/google/android/exoplayer2/transformer/mh/HdrEditingTest.java b/library/transformer/src/androidTest/java/com/google/android/exoplayer2/transformer/mh/HdrEditingTest.java index 1c3506646e..d9c164d912 100644 --- a/library/transformer/src/androidTest/java/com/google/android/exoplayer2/transformer/mh/HdrEditingTest.java +++ b/library/transformer/src/androidTest/java/com/google/android/exoplayer2/transformer/mh/HdrEditingTest.java @@ -74,15 +74,13 @@ public class HdrEditingTest { Context context = ApplicationProvider.getApplicationContext(); Transformer transformer = new Transformer.Builder(context).build(); - EditedMediaItem editedMediaItem = - new EditedMediaItem.Builder(MediaItem.fromUri(Uri.parse(MP4_ASSET_1080P_4_SECOND_HDR10))) - .build(); + MediaItem mediaItem = MediaItem.fromUri(Uri.parse(MP4_ASSET_1080P_4_SECOND_HDR10)); try { TransformationTestResult transformationTestResult = new TransformerAndroidTestRunner.Builder(context, transformer) .build() - .run(testId, editedMediaItem); + .run(testId, mediaItem); Log.i(TAG, "Transformed."); assertFileHasColorTransfer(transformationTestResult.filePath, C.COLOR_TRANSFER_ST2084); } catch (TransformationException exception) { @@ -99,15 +97,13 @@ public class HdrEditingTest { Context context = ApplicationProvider.getApplicationContext(); Transformer transformer = new Transformer.Builder(context).build(); - EditedMediaItem editedMediaItem = - new EditedMediaItem.Builder(MediaItem.fromUri(Uri.parse(MP4_ASSET_1080P_5_SECOND_HLG10))) - .build(); + MediaItem mediaItem = MediaItem.fromUri(Uri.parse(MP4_ASSET_1080P_5_SECOND_HLG10)); try { TransformationTestResult transformationTestResult = new TransformerAndroidTestRunner.Builder(context, transformer) .build() - .run(testId, editedMediaItem); + .run(testId, mediaItem); Log.i(TAG, "Transformed."); assertFileHasColorTransfer(transformationTestResult.filePath, C.COLOR_TRANSFER_HLG); } catch (TransformationException exception) { @@ -295,10 +291,7 @@ public class HdrEditingTest { Transformer transformer = new Transformer.Builder(context).build(); MediaItem mediaItem = MediaItem.fromUri(Uri.parse(MP4_ASSET_1080P_1_SECOND_HDR10_VIDEO_SDR_CONTAINER)); - EditedMediaItem editedMediaItem = new EditedMediaItem.Builder(mediaItem).build(); - new TransformerAndroidTestRunner.Builder(context, transformer) - .build() - .run(testId, editedMediaItem); + new TransformerAndroidTestRunner.Builder(context, transformer).build().run(testId, mediaItem); } private static boolean deviceSupportsHdrEditing(String mimeType, ColorInfo colorInfo) { diff --git a/library/transformer/src/androidTest/java/com/google/android/exoplayer2/transformer/mh/ToneMapHdrToSdrUsingMediaCodecTest.java b/library/transformer/src/androidTest/java/com/google/android/exoplayer2/transformer/mh/ToneMapHdrToSdrUsingMediaCodecTest.java index 5906b07e4a..24207e13c6 100644 --- a/library/transformer/src/androidTest/java/com/google/android/exoplayer2/transformer/mh/ToneMapHdrToSdrUsingMediaCodecTest.java +++ b/library/transformer/src/androidTest/java/com/google/android/exoplayer2/transformer/mh/ToneMapHdrToSdrUsingMediaCodecTest.java @@ -75,15 +75,13 @@ public class ToneMapHdrToSdrUsingMediaCodecTest { } }) .build(); - EditedMediaItem editedMediaItem = - new EditedMediaItem.Builder(MediaItem.fromUri(Uri.parse(MP4_ASSET_1080P_4_SECOND_HDR10))) - .build(); + MediaItem mediaItem = MediaItem.fromUri(Uri.parse(MP4_ASSET_1080P_4_SECOND_HDR10)); try { TransformationTestResult transformationTestResult = new TransformerAndroidTestRunner.Builder(context, transformer) .build() - .run(testId, editedMediaItem); + .run(testId, mediaItem); Log.i(TAG, "Tone mapped."); assertFileHasColorTransfer(transformationTestResult.filePath, C.COLOR_TRANSFER_SDR); } catch (TransformationException exception) { @@ -121,15 +119,13 @@ public class ToneMapHdrToSdrUsingMediaCodecTest { } }) .build(); - EditedMediaItem editedMediaItem = - new EditedMediaItem.Builder(MediaItem.fromUri(Uri.parse(MP4_ASSET_1080P_5_SECOND_HLG10))) - .build(); + MediaItem mediaItem = MediaItem.fromUri(Uri.parse(MP4_ASSET_1080P_5_SECOND_HLG10)); try { TransformationTestResult transformationTestResult = new TransformerAndroidTestRunner.Builder(context, transformer) .build() - .run(testId, editedMediaItem); + .run(testId, mediaItem); Log.i(TAG, "Tone mapped."); assertFileHasColorTransfer(transformationTestResult.filePath, C.COLOR_TRANSFER_SDR); } catch (TransformationException exception) { diff --git a/library/transformer/src/androidTest/java/com/google/android/exoplayer2/transformer/mh/ToneMapHdrToSdrUsingOpenGlTest.java b/library/transformer/src/androidTest/java/com/google/android/exoplayer2/transformer/mh/ToneMapHdrToSdrUsingOpenGlTest.java index 709b42edcb..5cd9ce827c 100644 --- a/library/transformer/src/androidTest/java/com/google/android/exoplayer2/transformer/mh/ToneMapHdrToSdrUsingOpenGlTest.java +++ b/library/transformer/src/androidTest/java/com/google/android/exoplayer2/transformer/mh/ToneMapHdrToSdrUsingOpenGlTest.java @@ -31,7 +31,6 @@ import androidx.test.ext.junit.runners.AndroidJUnit4; import com.google.android.exoplayer2.C; import com.google.android.exoplayer2.MediaItem; import com.google.android.exoplayer2.transformer.AndroidTestUtil; -import com.google.android.exoplayer2.transformer.EditedMediaItem; import com.google.android.exoplayer2.transformer.TransformationException; import com.google.android.exoplayer2.transformer.TransformationRequest; import com.google.android.exoplayer2.transformer.TransformationTestResult; @@ -86,14 +85,12 @@ public class ToneMapHdrToSdrUsingOpenGlTest { .setHdrMode(TransformationRequest.HDR_MODE_TONE_MAP_HDR_TO_SDR_USING_OPEN_GL) .build()) .build(); - EditedMediaItem editedMediaItem = - new EditedMediaItem.Builder(MediaItem.fromUri(Uri.parse(MP4_ASSET_1080P_5_SECOND_HLG10))) - .build(); + MediaItem mediaItem = MediaItem.fromUri(Uri.parse(MP4_ASSET_1080P_5_SECOND_HLG10)); try { TransformationTestResult transformationTestResult = new TransformerAndroidTestRunner.Builder(context, transformer) .build() - .run(testId, editedMediaItem); + .run(testId, mediaItem); Log.i(TAG, "Tone mapped."); assertFileHasColorTransfer(transformationTestResult.filePath, C.COLOR_TRANSFER_SDR); } catch (TransformationException exception) { @@ -139,14 +136,12 @@ public class ToneMapHdrToSdrUsingOpenGlTest { .setHdrMode(TransformationRequest.HDR_MODE_TONE_MAP_HDR_TO_SDR_USING_OPEN_GL) .build()) .build(); - EditedMediaItem editedMediaItem = - new EditedMediaItem.Builder(MediaItem.fromUri(Uri.parse(MP4_ASSET_1080P_4_SECOND_HDR10))) - .build(); + MediaItem mediaItem = MediaItem.fromUri(Uri.parse(MP4_ASSET_1080P_4_SECOND_HDR10)); try { TransformationTestResult transformationTestResult = new TransformerAndroidTestRunner.Builder(context, transformer) .build() - .run(testId, editedMediaItem); + .run(testId, mediaItem); Log.i(TAG, "Tone mapped."); assertFileHasColorTransfer(transformationTestResult.filePath, C.COLOR_TRANSFER_SDR); } catch (TransformationException exception) { diff --git a/library/transformer/src/androidTest/java/com/google/android/exoplayer2/transformer/mh/TransformationTest.java b/library/transformer/src/androidTest/java/com/google/android/exoplayer2/transformer/mh/TransformationTest.java index 4120675092..6e0d18096b 100644 --- a/library/transformer/src/androidTest/java/com/google/android/exoplayer2/transformer/mh/TransformationTest.java +++ b/library/transformer/src/androidTest/java/com/google/android/exoplayer2/transformer/mh/TransformationTest.java @@ -60,11 +60,10 @@ public class TransformationTest { .build(); MediaItem mediaItem = MediaItem.fromUri(Uri.parse(MP4_ASSET_WITH_INCREASING_TIMESTAMPS_URI_STRING)); - EditedMediaItem editedMediaItem = new EditedMediaItem.Builder(mediaItem).build(); new TransformerAndroidTestRunner.Builder(context, transformer) .setRequestCalculateSsim(true) .build() - .run(testId, editedMediaItem); + .run(testId, mediaItem); } @Test @@ -74,11 +73,8 @@ public class TransformationTest { Transformer transformer = new Transformer.Builder(context).build(); MediaItem mediaItem = MediaItem.fromUri(Uri.parse(MP4_ASSET_WITH_INCREASING_TIMESTAMPS_URI_STRING)); - EditedMediaItem editedMediaItem = new EditedMediaItem.Builder(mediaItem).build(); // No need to calculate SSIM because no decode/encoding, so input frames match output frames. - new TransformerAndroidTestRunner.Builder(context, transformer) - .build() - .run(testId, editedMediaItem); + new TransformerAndroidTestRunner.Builder(context, transformer).build().run(testId, mediaItem); } @Test @@ -122,12 +118,11 @@ public class TransformationTest { .setEncoderFactory(new ForceEncodeEncoderFactory(context)) .build(); MediaItem mediaItem = MediaItem.fromUri(Uri.parse(MP4_REMOTE_4K60_PORTRAIT_URI_STRING)); - EditedMediaItem editedMediaItem = new EditedMediaItem.Builder(mediaItem).build(); new TransformerAndroidTestRunner.Builder(context, transformer) .setRequestCalculateSsim(true) .setTimeoutSeconds(180) .build() - .run(testId, editedMediaItem); + .run(testId, mediaItem); } @Test @@ -146,14 +141,12 @@ public class TransformationTest { new Transformer.Builder(context) .setEncoderFactory(new ForceEncodeEncoderFactory(context)) .build(); - EditedMediaItem editedMediaItem = - new EditedMediaItem.Builder(MediaItem.fromUri(Uri.parse(MP4_REMOTE_8K24_URI_STRING))) - .build(); + MediaItem mediaItem = MediaItem.fromUri(Uri.parse(MP4_REMOTE_8K24_URI_STRING)); new TransformerAndroidTestRunner.Builder(context, transformer) .setRequestCalculateSsim(true) .setTimeoutSeconds(180) .build() - .run(testId, editedMediaItem); + .run(testId, mediaItem); } @Test diff --git a/library/transformer/src/main/java/com/google/android/exoplayer2/transformer/Transformer.java b/library/transformer/src/main/java/com/google/android/exoplayer2/transformer/Transformer.java index 9e3a93588b..bf743ee22d 100644 --- a/library/transformer/src/main/java/com/google/android/exoplayer2/transformer/Transformer.java +++ b/library/transformer/src/main/java/com/google/android/exoplayer2/transformer/Transformer.java @@ -662,7 +662,6 @@ public final class Transformer { * it. * @param path The path to the output file. * @throws IllegalArgumentException If the path is invalid. - * @throws IllegalArgumentException If the {@link MediaItem} is not supported. * @throws IllegalStateException If this method is called from the wrong thread. * @throws IllegalStateException If a transformation is already in progress. */ @@ -671,9 +670,30 @@ public final class Transformer { } /** - * @deprecated Use {@link #startTransformation(EditedMediaItem, String)} instead. + * Starts an asynchronous operation to transform the given {@link MediaItem}. + * + *
The transformation state is notified through the {@linkplain Builder#addListener(Listener) + * listener}. + * + *
Concurrent transformations on the same Transformer object are not allowed. + * + *
If no custom {@link Muxer.Factory} is specified, the output is an MP4 file. + * + *
The output can contain at most one video track and one audio track. Other track types are + * ignored. For adaptive bitrate, if no custom {@link AssetLoader.Factory} is specified, the + * highest bitrate video and audio streams are selected. + * + *
If encoding the output's video track is needed, the output frames' dimensions will be
+ * swapped if the height is larger than the width. This is to improve compatibility among
+ * different device encoders.
+ *
+ * @param mediaItem The {@link MediaItem} to transform.
+ * @param path The path to the output file.
+ * @throws IllegalArgumentException If the path is invalid.
+ * @throws IllegalArgumentException If the {@link MediaItem} is not supported.
+ * @throws IllegalStateException If this method is called from the wrong thread.
+ * @throws IllegalStateException If a transformation is already in progress.
*/
- @Deprecated
public void startTransformation(MediaItem mediaItem, String path) {
if (!mediaItem.clippingConfiguration.equals(MediaItem.ClippingConfiguration.UNSET)
&& flattenForSlowMotion) {
diff --git a/library/transformer/src/test/java/com/google/android/exoplayer2/transformer/TransformerEndToEndTest.java b/library/transformer/src/test/java/com/google/android/exoplayer2/transformer/TransformerEndToEndTest.java
index 38a3a75c6a..59c33b065d 100644
--- a/library/transformer/src/test/java/com/google/android/exoplayer2/transformer/TransformerEndToEndTest.java
+++ b/library/transformer/src/test/java/com/google/android/exoplayer2/transformer/TransformerEndToEndTest.java
@@ -129,10 +129,9 @@ public final class TransformerEndToEndTest {
@Test
public void startTransformation_videoOnlyPassthrough_completesSuccessfully() throws Exception {
Transformer transformer = createTransformerBuilder(/* enableFallback= */ false).build();
- EditedMediaItem editedMediaItem =
- new EditedMediaItem.Builder(MediaItem.fromUri(ASSET_URI_PREFIX + FILE_VIDEO_ONLY)).build();
+ MediaItem mediaItem = MediaItem.fromUri(ASSET_URI_PREFIX + FILE_VIDEO_ONLY);
- transformer.startTransformation(editedMediaItem, outputPath);
+ transformer.startTransformation(mediaItem, outputPath);
TransformerTestRunner.runLooper(transformer);
DumpFileAsserts.assertOutput(context, testMuxer, getDumpFileName(FILE_VIDEO_ONLY));
@@ -142,9 +141,8 @@ public final class TransformerEndToEndTest {
public void startTransformation_audioOnlyPassthrough_completesSuccessfully() throws Exception {
Transformer transformer = createTransformerBuilder(/* enableFallback= */ false).build();
MediaItem mediaItem = MediaItem.fromUri(ASSET_URI_PREFIX + FILE_AUDIO_UNSUPPORTED_BY_ENCODER);
- EditedMediaItem editedMediaItem = new EditedMediaItem.Builder(mediaItem).build();
- transformer.startTransformation(editedMediaItem, outputPath);
+ transformer.startTransformation(mediaItem, outputPath);
TransformerTestRunner.runLooper(transformer);
DumpFileAsserts.assertOutput(
@@ -161,9 +159,8 @@ public final class TransformerEndToEndTest {
.build())
.build();
MediaItem mediaItem = MediaItem.fromUri(ASSET_URI_PREFIX + FILE_AUDIO_UNSUPPORTED_BY_ENCODER);
- EditedMediaItem editedMediaItem = new EditedMediaItem.Builder(mediaItem).build();
- transformer.startTransformation(editedMediaItem, outputPath);
+ transformer.startTransformation(mediaItem, outputPath);
TransformerTestRunner.runLooper(transformer);
DumpFileAsserts.assertOutput(
@@ -173,10 +170,9 @@ public final class TransformerEndToEndTest {
@Test
public void startTransformation_audioAndVideo_completesSuccessfully() throws Exception {
Transformer transformer = createTransformerBuilder(/* enableFallback= */ false).build();
- EditedMediaItem editedMediaItem =
- new EditedMediaItem.Builder(MediaItem.fromUri(ASSET_URI_PREFIX + FILE_AUDIO_VIDEO)).build();
+ MediaItem mediaItem = MediaItem.fromUri(ASSET_URI_PREFIX + FILE_AUDIO_VIDEO);
- transformer.startTransformation(editedMediaItem, outputPath);
+ transformer.startTransformation(mediaItem, outputPath);
TransformerTestRunner.runLooper(transformer);
DumpFileAsserts.assertOutput(context, testMuxer, getDumpFileName(FILE_AUDIO_VIDEO));
@@ -196,9 +192,8 @@ public final class TransformerEndToEndTest {
.setStartsAtKeyFrame(true)
.build())
.build();
- EditedMediaItem editedMediaItem = new EditedMediaItem.Builder(mediaItem).build();
- transformer.startTransformation(editedMediaItem, outputPath);
+ transformer.startTransformation(mediaItem, outputPath);
TransformerTestRunner.runLooper(transformer);
DumpFileAsserts.assertOutput(
@@ -214,11 +209,9 @@ public final class TransformerEndToEndTest {
.setTransformationRequest(
new TransformationRequest.Builder().setAudioMimeType(MimeTypes.AUDIO_AAC).build())
.build();
- EditedMediaItem editedMediaItem =
- new EditedMediaItem.Builder(MediaItem.fromUri(ASSET_URI_PREFIX + FILE_WITH_SUBTITLES))
- .build();
+ MediaItem mediaItem = MediaItem.fromUri(ASSET_URI_PREFIX + FILE_WITH_SUBTITLES);
- transformer.startTransformation(editedMediaItem, outputPath);
+ transformer.startTransformation(mediaItem, outputPath);
TransformerTestRunner.runLooper(transformer);
DumpFileAsserts.assertOutput(context, testMuxer, getDumpFileName(FILE_WITH_SUBTITLES));
@@ -228,16 +221,15 @@ public final class TransformerEndToEndTest {
public void startTransformation_successiveTransformations_completesSuccessfully()
throws Exception {
Transformer transformer = createTransformerBuilder(/* enableFallback= */ false).build();
- EditedMediaItem editedMediaItem =
- new EditedMediaItem.Builder(MediaItem.fromUri(ASSET_URI_PREFIX + FILE_AUDIO_VIDEO)).build();
+ MediaItem mediaItem = MediaItem.fromUri(ASSET_URI_PREFIX + FILE_AUDIO_VIDEO);
// Transform first media item.
- transformer.startTransformation(editedMediaItem, outputPath);
+ transformer.startTransformation(mediaItem, outputPath);
TransformerTestRunner.runLooper(transformer);
Files.delete(Paths.get(outputPath));
// Transform second media item.
- transformer.startTransformation(editedMediaItem, outputPath);
+ transformer.startTransformation(mediaItem, outputPath);
TransformerTestRunner.runLooper(transformer);
DumpFileAsserts.assertOutput(context, testMuxer, getDumpFileName(FILE_AUDIO_VIDEO));
@@ -246,14 +238,12 @@ public final class TransformerEndToEndTest {
@Test
public void startTransformation_concurrentTransformations_throwsError() {
Transformer transformer = createTransformerBuilder(/* enableFallback= */ false).build();
- EditedMediaItem editedMediaItem =
- new EditedMediaItem.Builder(MediaItem.fromUri(ASSET_URI_PREFIX + FILE_VIDEO_ONLY)).build();
+ MediaItem mediaItem = MediaItem.fromUri(ASSET_URI_PREFIX + FILE_VIDEO_ONLY);
- transformer.startTransformation(editedMediaItem, outputPath);
+ transformer.startTransformation(mediaItem, outputPath);
assertThrows(
- IllegalStateException.class,
- () -> transformer.startTransformation(editedMediaItem, outputPath));
+ IllegalStateException.class, () -> transformer.startTransformation(mediaItem, outputPath));
}
@Test
@@ -293,9 +283,8 @@ public final class TransformerEndToEndTest {
.experimentalSetGenerateSilentAudio(true)
.build();
MediaItem mediaItem = MediaItem.fromUri(ASSET_URI_PREFIX + FILE_AUDIO_UNSUPPORTED_BY_ENCODER);
- EditedMediaItem editedMediaItem = new EditedMediaItem.Builder(mediaItem).build();
- transformer.startTransformation(editedMediaItem, outputPath);
+ transformer.startTransformation(mediaItem, outputPath);
TransformerTestRunner.runLooper(transformer);
DumpFileAsserts.assertOutput(
@@ -308,10 +297,9 @@ public final class TransformerEndToEndTest {
createTransformerBuilder(/* enableFallback= */ false)
.experimentalSetGenerateSilentAudio(true)
.build();
- EditedMediaItem editedMediaItem =
- new EditedMediaItem.Builder(MediaItem.fromUri(ASSET_URI_PREFIX + FILE_AUDIO_VIDEO)).build();
+ MediaItem mediaItem = MediaItem.fromUri(ASSET_URI_PREFIX + FILE_AUDIO_VIDEO);
- transformer.startTransformation(editedMediaItem, outputPath);
+ transformer.startTransformation(mediaItem, outputPath);
TransformerTestRunner.runLooper(transformer);
DumpFileAsserts.assertOutput(context, testMuxer, getDumpFileName(FILE_AUDIO_VIDEO));
@@ -358,10 +346,9 @@ public final class TransformerEndToEndTest {
createTransformerBuilder(/* enableFallback= */ false)
.experimentalSetGenerateSilentAudio(true)
.build();
- EditedMediaItem editedMediaItem =
- new EditedMediaItem.Builder(MediaItem.fromUri(ASSET_URI_PREFIX + FILE_VIDEO_ONLY)).build();
+ MediaItem mediaItem = MediaItem.fromUri(ASSET_URI_PREFIX + FILE_VIDEO_ONLY);
- transformer.startTransformation(editedMediaItem, outputPath);
+ transformer.startTransformation(mediaItem, outputPath);
TransformerTestRunner.runLooper(transformer);
DumpFileAsserts.assertOutput(
@@ -397,15 +384,14 @@ public final class TransformerEndToEndTest {
.addListener(mockListener2)
.addListener(mockListener3)
.build();
- EditedMediaItem editedMediaItem =
- new EditedMediaItem.Builder(MediaItem.fromUri(ASSET_URI_PREFIX + FILE_AUDIO_VIDEO)).build();
+ MediaItem mediaItem = MediaItem.fromUri(ASSET_URI_PREFIX + FILE_AUDIO_VIDEO);
- transformer.startTransformation(editedMediaItem, outputPath);
+ transformer.startTransformation(mediaItem, outputPath);
TransformerTestRunner.runLooper(transformer);
- verify(mockListener1).onTransformationCompleted(eq(editedMediaItem.mediaItem), any());
- verify(mockListener2).onTransformationCompleted(eq(editedMediaItem.mediaItem), any());
- verify(mockListener3).onTransformationCompleted(eq(editedMediaItem.mediaItem), any());
+ verify(mockListener1).onTransformationCompleted(eq(mediaItem), any());
+ verify(mockListener2).onTransformationCompleted(eq(mediaItem), any());
+ verify(mockListener3).onTransformationCompleted(eq(mediaItem), any());
}
@Test
@@ -422,19 +408,15 @@ public final class TransformerEndToEndTest {
new TransformationRequest.Builder().setAudioMimeType(MimeTypes.AUDIO_AAC).build())
.build();
MediaItem mediaItem = MediaItem.fromUri(ASSET_URI_PREFIX + FILE_AUDIO_UNSUPPORTED_BY_DECODER);
- EditedMediaItem editedMediaItem = new EditedMediaItem.Builder(mediaItem).build();
- transformer.startTransformation(editedMediaItem, outputPath);
+ transformer.startTransformation(mediaItem, outputPath);
TransformationException exception =
assertThrows(
TransformationException.class, () -> TransformerTestRunner.runLooper(transformer));
- verify(mockListener1)
- .onTransformationError(eq(editedMediaItem.mediaItem), any(), eq(exception));
- verify(mockListener2)
- .onTransformationError(eq(editedMediaItem.mediaItem), any(), eq(exception));
- verify(mockListener3)
- .onTransformationError(eq(editedMediaItem.mediaItem), any(), eq(exception));
+ verify(mockListener1).onTransformationError(eq(mediaItem), any(), eq(exception));
+ verify(mockListener2).onTransformationError(eq(mediaItem), any(), eq(exception));
+ verify(mockListener3).onTransformationError(eq(mediaItem), any(), eq(exception));
}
@Test
@@ -453,26 +435,16 @@ public final class TransformerEndToEndTest {
.addListener(mockListener3)
.build();
MediaItem mediaItem = MediaItem.fromUri(ASSET_URI_PREFIX + FILE_AUDIO_UNSUPPORTED_BY_MUXER);
- EditedMediaItem editedMediaItem = new EditedMediaItem.Builder(mediaItem).build();
- transformer.startTransformation(editedMediaItem, outputPath);
+ transformer.startTransformation(mediaItem, outputPath);
TransformerTestRunner.runLooper(transformer);
verify(mockListener1)
- .onFallbackApplied(
- editedMediaItem.mediaItem,
- originalTransformationRequest,
- fallbackTransformationRequest);
+ .onFallbackApplied(mediaItem, originalTransformationRequest, fallbackTransformationRequest);
verify(mockListener2)
- .onFallbackApplied(
- editedMediaItem.mediaItem,
- originalTransformationRequest,
- fallbackTransformationRequest);
+ .onFallbackApplied(mediaItem, originalTransformationRequest, fallbackTransformationRequest);
verify(mockListener3)
- .onFallbackApplied(
- editedMediaItem.mediaItem,
- originalTransformationRequest,
- fallbackTransformationRequest);
+ .onFallbackApplied(mediaItem, originalTransformationRequest, fallbackTransformationRequest);
}
@Test
@@ -488,15 +460,14 @@ public final class TransformerEndToEndTest {
.addListener(mockListener3)
.build();
Transformer transformer2 = transformer1.buildUpon().removeListener(mockListener2).build();
- EditedMediaItem editedMediaItem =
- new EditedMediaItem.Builder(MediaItem.fromUri(ASSET_URI_PREFIX + FILE_AUDIO_VIDEO)).build();
+ MediaItem mediaItem = MediaItem.fromUri(ASSET_URI_PREFIX + FILE_AUDIO_VIDEO);
- transformer2.startTransformation(editedMediaItem, outputPath);
+ transformer2.startTransformation(mediaItem, outputPath);
TransformerTestRunner.runLooper(transformer2);
- verify(mockListener1).onTransformationCompleted(eq(editedMediaItem.mediaItem), any());
- verify(mockListener2, never()).onTransformationCompleted(eq(editedMediaItem.mediaItem), any());
- verify(mockListener3).onTransformationCompleted(eq(editedMediaItem.mediaItem), any());
+ verify(mockListener1).onTransformationCompleted(eq(mediaItem), any());
+ verify(mockListener2, never()).onTransformationCompleted(eq(mediaItem), any());
+ verify(mockListener3).onTransformationCompleted(eq(mediaItem), any());
}
@Test
@@ -516,10 +487,9 @@ public final class TransformerEndToEndTest {
@Test
public void startTransformation_completesWithValidBitrate() throws Exception {
Transformer transformer = createTransformerBuilder(/* enableFallback= */ false).build();
- EditedMediaItem editedMediaItem =
- new EditedMediaItem.Builder(MediaItem.fromUri(ASSET_URI_PREFIX + FILE_AUDIO_VIDEO)).build();
+ MediaItem mediaItem = MediaItem.fromUri(ASSET_URI_PREFIX + FILE_AUDIO_VIDEO);
- transformer.startTransformation(editedMediaItem, outputPath);
+ transformer.startTransformation(mediaItem, outputPath);
TransformationResult result = TransformerTestRunner.runLooper(transformer);
assertThat(result.averageAudioBitrate).isGreaterThan(0);
@@ -537,9 +507,8 @@ public final class TransformerEndToEndTest {
.build())
.build();
MediaItem mediaItem = MediaItem.fromUri(ASSET_URI_PREFIX + FILE_AUDIO_UNSUPPORTED_BY_MUXER);
- EditedMediaItem editedMediaItem = new EditedMediaItem.Builder(mediaItem).build();
- transformer.startTransformation(editedMediaItem, outputPath);
+ transformer.startTransformation(mediaItem, outputPath);
TransformationException exception =
assertThrows(
TransformationException.class, () -> TransformerTestRunner.runLooper(transformer));
@@ -558,9 +527,8 @@ public final class TransformerEndToEndTest {
.build())
.build();
MediaItem mediaItem = MediaItem.fromUri(ASSET_URI_PREFIX + FILE_AUDIO_UNSUPPORTED_BY_DECODER);
- EditedMediaItem editedMediaItem = new EditedMediaItem.Builder(mediaItem).build();
- transformer.startTransformation(editedMediaItem, outputPath);
+ transformer.startTransformation(mediaItem, outputPath);
TransformationException exception =
assertThrows(
TransformationException.class, () -> TransformerTestRunner.runLooper(transformer));
@@ -572,10 +540,9 @@ public final class TransformerEndToEndTest {
@Test
public void startTransformation_withIoError_completesWithError() {
Transformer transformer = createTransformerBuilder(/* enableFallback= */ false).build();
- EditedMediaItem editedMediaItem =
- new EditedMediaItem.Builder(MediaItem.fromUri("asset:///non-existing-path.mp4")).build();
+ MediaItem mediaItem = MediaItem.fromUri("asset:///non-existing-path.mp4");
- transformer.startTransformation(editedMediaItem, outputPath);
+ transformer.startTransformation(mediaItem, outputPath);
TransformationException exception =
assertThrows(
TransformationException.class, () -> TransformerTestRunner.runLooper(transformer));
@@ -595,18 +562,14 @@ public final class TransformerEndToEndTest {
Transformer transformer =
createTransformerBuilder(/* enableFallback= */ false).addListener(mockListener).build();
MediaItem mediaItem = MediaItem.fromUri(ASSET_URI_PREFIX + FILE_AUDIO_UNSUPPORTED_BY_MUXER);
- EditedMediaItem editedMediaItem = new EditedMediaItem.Builder(mediaItem).build();
- transformer.startTransformation(editedMediaItem, outputPath);
+ transformer.startTransformation(mediaItem, outputPath);
TransformerTestRunner.runLooper(transformer);
DumpFileAsserts.assertOutput(
context, testMuxer, getDumpFileName(FILE_AUDIO_UNSUPPORTED_BY_MUXER + ".fallback"));
verify(mockListener)
- .onFallbackApplied(
- editedMediaItem.mediaItem,
- originalTransformationRequest,
- fallbackTransformationRequest);
+ .onFallbackApplied(mediaItem, originalTransformationRequest, fallbackTransformationRequest);
}
@Test
@@ -620,18 +583,14 @@ public final class TransformerEndToEndTest {
Transformer transformer =
createTransformerBuilder(/* enableFallback= */ true).addListener(mockListener).build();
MediaItem mediaItem = MediaItem.fromUri(ASSET_URI_PREFIX + FILE_AUDIO_UNSUPPORTED_BY_MUXER);
- EditedMediaItem editedMediaItem = new EditedMediaItem.Builder(mediaItem).build();
- transformer.startTransformation(editedMediaItem, outputPath);
+ transformer.startTransformation(mediaItem, outputPath);
TransformerTestRunner.runLooper(transformer);
DumpFileAsserts.assertOutput(
context, testMuxer, getDumpFileName(FILE_AUDIO_UNSUPPORTED_BY_MUXER + ".fallback"));
verify(mockListener)
- .onFallbackApplied(
- editedMediaItem.mediaItem,
- originalTransformationRequest,
- fallbackTransformationRequest);
+ .onFallbackApplied(mediaItem, originalTransformationRequest, fallbackTransformationRequest);
}
@Test
@@ -648,10 +607,9 @@ public final class TransformerEndToEndTest {
.setAssetLoaderFactory(assetLoaderFactory)
.setMuxerFactory(muxerFactory)
.build();
- EditedMediaItem editedMediaItem =
- new EditedMediaItem.Builder(MediaItem.fromUri(ASSET_URI_PREFIX + FILE_AUDIO_VIDEO)).build();
+ MediaItem mediaItem = MediaItem.fromUri(ASSET_URI_PREFIX + FILE_AUDIO_VIDEO);
- transformer.startTransformation(editedMediaItem, outputPath);
+ transformer.startTransformation(mediaItem, outputPath);
TransformationException exception =
assertThrows(
TransformationException.class, () -> TransformerTestRunner.runLooper(transformer));
@@ -665,10 +623,9 @@ public final class TransformerEndToEndTest {
Muxer.Factory muxerFactory = new TestMuxerFactory(/* maxDelayBetweenSamplesMs= */ C.TIME_UNSET);
Transformer transformer =
createTransformerBuilder(/* enableFallback= */ false).setMuxerFactory(muxerFactory).build();
- EditedMediaItem editedMediaItem =
- new EditedMediaItem.Builder(MediaItem.fromUri(ASSET_URI_PREFIX + FILE_AUDIO_VIDEO)).build();
+ MediaItem mediaItem = MediaItem.fromUri(ASSET_URI_PREFIX + FILE_AUDIO_VIDEO);
- transformer.startTransformation(editedMediaItem, outputPath);
+ transformer.startTransformation(mediaItem, outputPath);
TransformerTestRunner.runLooper(transformer);
DumpFileAsserts.assertOutput(context, testMuxer, getDumpFileName(FILE_AUDIO_VIDEO));
@@ -677,15 +634,14 @@ public final class TransformerEndToEndTest {
@Test
public void startTransformation_afterCancellation_completesSuccessfully() throws Exception {
Transformer transformer = createTransformerBuilder(/* enableFallback= */ false).build();
- EditedMediaItem editedMediaItem =
- new EditedMediaItem.Builder(MediaItem.fromUri(ASSET_URI_PREFIX + FILE_AUDIO_VIDEO)).build();
+ MediaItem mediaItem = MediaItem.fromUri(ASSET_URI_PREFIX + FILE_AUDIO_VIDEO);
- transformer.startTransformation(editedMediaItem, outputPath);
+ transformer.startTransformation(mediaItem, outputPath);
transformer.cancel();
Files.delete(Paths.get(outputPath));
// This would throw if the previous transformation had not been cancelled.
- transformer.startTransformation(editedMediaItem, outputPath);
+ transformer.startTransformation(mediaItem, outputPath);
TransformationResult transformationResult = TransformerTestRunner.runLooper(transformer);
// TODO(b/264974805): Make transformation output deterministic and check it against dump file.
@@ -699,8 +655,7 @@ public final class TransformerEndToEndTest {
Looper looper = anotherThread.getLooper();
Transformer transformer =
createTransformerBuilder(/* enableFallback= */ false).setLooper(looper).build();
- EditedMediaItem editedMediaItem =
- new EditedMediaItem.Builder(MediaItem.fromUri(ASSET_URI_PREFIX + FILE_AUDIO_VIDEO)).build();
+ MediaItem mediaItem = MediaItem.fromUri(ASSET_URI_PREFIX + FILE_AUDIO_VIDEO);
AtomicReference