diff --git a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/TransformerEndToEndTest.java b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/TransformerEndToEndTest.java index d21cb4b960..9ca40982f0 100644 --- a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/TransformerEndToEndTest.java +++ b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/TransformerEndToEndTest.java @@ -28,6 +28,7 @@ import static androidx.media3.transformer.AndroidTestUtil.PNG_ASSET_URI_STRING; import static androidx.media3.transformer.AndroidTestUtil.createOpenGlObjects; import static androidx.media3.transformer.AndroidTestUtil.generateTextureFromBitmap; import static androidx.media3.transformer.AndroidTestUtil.recordTestSkipped; +import static androidx.media3.transformer.ExportResult.OPTIMIZATION_SUCCEEDED; import static com.google.common.truth.Truth.assertThat; import static org.junit.Assert.assertThrows; import static org.junit.Assume.assumeTrue; @@ -473,8 +474,7 @@ public class TransformerEndToEndTest { .build() .run(testId, editedMediaItem); - assertThat(result.exportResult.optimizationResult) - .isEqualTo(ExportResult.OPTIMIZATION_SUCCEEDED); + assertThat(result.exportResult.optimizationResult).isEqualTo(OPTIMIZATION_SUCCEEDED); assertThat(result.exportResult.durationMs).isAtMost(2000); } diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/ExportResult.java b/libraries/transformer/src/main/java/androidx/media3/transformer/ExportResult.java index 9b5c30b12f..c111826310 100644 --- a/libraries/transformer/src/main/java/androidx/media3/transformer/ExportResult.java +++ b/libraries/transformer/src/main/java/androidx/media3/transformer/ExportResult.java @@ -290,7 +290,7 @@ public final class ExportResult { /** * Specifies the result of an optimized operation, such as {@link * Transformer.Builder#experimentalSetTrimOptimizationEnabled}. One of {@link #OPTIMIZATION_NONE}, - * {@link #OPTIMIZATION_SUCCEEDED}, {@link #OPTIMIZATION_FAILED_NO_VIDEO_TRACK_TO_TRIM} or {@link + * {@link #OPTIMIZATION_SUCCEEDED}, {@link #OPTIMIZATION_ABANDONED}, or {@link * #OPTIMIZATION_FAILED_EXTRACTION_FAILED}. */ @Documented @@ -299,8 +299,8 @@ public final class ExportResult { @IntDef({ OPTIMIZATION_NONE, OPTIMIZATION_SUCCEEDED, - OPTIMIZATION_FAILED_NO_VIDEO_TRACK_TO_TRIM, - OPTIMIZATION_FAILED_EXTRACTION_FAILED + OPTIMIZATION_ABANDONED, + OPTIMIZATION_FAILED_EXTRACTION_FAILED, }) @interface OptimizationResult {} @@ -310,8 +310,11 @@ public final class ExportResult { /** The optimization was successfully applied. */ public static final int OPTIMIZATION_SUCCEEDED = 1; - /** The trim optimization failed because there was no video track. Normal export proceeded. */ - public static final int OPTIMIZATION_FAILED_NO_VIDEO_TRACK_TO_TRIM = 2; + /** + * The requested optimization would not improve performance so it was abandoned. Normal export + * proceeded. + */ + public static final int OPTIMIZATION_ABANDONED = 2; /** * The optimization failed because mp4 metadata extraction failed (possibly because the file diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/Transformer.java b/libraries/transformer/src/main/java/androidx/media3/transformer/Transformer.java index 6ba2e6527d..5e2d265440 100644 --- a/libraries/transformer/src/main/java/androidx/media3/transformer/Transformer.java +++ b/libraries/transformer/src/main/java/androidx/media3/transformer/Transformer.java @@ -20,8 +20,8 @@ import static androidx.media3.common.util.Assertions.checkArgument; import static androidx.media3.common.util.Assertions.checkNotNull; import static androidx.media3.common.util.Assertions.checkState; import static androidx.media3.transformer.Composition.HDR_MODE_EXPERIMENTAL_FORCE_INTERPRET_HDR_AS_SDR; +import static androidx.media3.transformer.ExportResult.OPTIMIZATION_ABANDONED; import static androidx.media3.transformer.ExportResult.OPTIMIZATION_FAILED_EXTRACTION_FAILED; -import static androidx.media3.transformer.ExportResult.OPTIMIZATION_FAILED_NO_VIDEO_TRACK_TO_TRIM; import static androidx.media3.transformer.TransmuxTranscodeHelper.buildNewCompositionWithClipTimes; import static java.lang.annotation.ElementType.TYPE_USE; @@ -1238,7 +1238,7 @@ public final class Transformer { if (mp4MetadataInfo.firstSyncSampleTimestampUsAfterTimeUs == C.TIME_UNSET || (trimEndTimeUs != C.TIME_END_OF_SOURCE && trimEndTimeUs < mp4MetadataInfo.firstSyncSampleTimestampUsAfterTimeUs)) { - exportResultBuilder.setOptimizationResult(OPTIMIZATION_FAILED_NO_VIDEO_TRACK_TO_TRIM); + exportResultBuilder.setOptimizationResult(OPTIMIZATION_ABANDONED); processFullInput(); return; } @@ -1253,6 +1253,7 @@ public final class Transformer { firstMediaItem.clippingConfiguration.endPositionUs, mp4MetadataInfo.durationUs, /* startsAtKeyFrame= */ true); + exportResultBuilder.setOptimizationResult(OPTIMIZATION_ABANDONED); processFullInput(); return; } 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 57db7ca0cb..319179a997 100644 --- a/libraries/transformer/src/test/java/androidx/media3/transformer/MediaItemExportTest.java +++ b/libraries/transformer/src/test/java/androidx/media3/transformer/MediaItemExportTest.java @@ -19,6 +19,8 @@ package androidx.media3.transformer; import static androidx.media3.test.utils.robolectric.RobolectricUtil.runLooperUntil; import static androidx.media3.transformer.AssetLoader.SUPPORTED_OUTPUT_TYPE_DECODED; import static androidx.media3.transformer.AssetLoader.SUPPORTED_OUTPUT_TYPE_ENCODED; +import static androidx.media3.transformer.ExportResult.OPTIMIZATION_ABANDONED; +import static androidx.media3.transformer.ExportResult.OPTIMIZATION_FAILED_EXTRACTION_FAILED; import static androidx.media3.transformer.TestUtil.ASSET_URI_PREFIX; import static androidx.media3.transformer.TestUtil.FILE_AUDIO_AMR_NB; import static androidx.media3.transformer.TestUtil.FILE_AUDIO_AMR_WB; @@ -167,7 +169,7 @@ public final class MediaItemExportTest { transformer.start(mediaItem, outputDir.newFile().getPath()); ExportResult exportResult = TransformerTestRunner.runLooper(transformer); - assertThat(exportResult.optimizationResult).isEqualTo(ExportResult.OPTIMIZATION_NONE); + assertThat(exportResult.optimizationResult).isEqualTo(OPTIMIZATION_ABANDONED); // Asserts against file generated when experimentalSetTrimOptimizationEnabled is set to false. DumpFileAsserts.assertOutput( context, @@ -195,7 +197,7 @@ public final class MediaItemExportTest { transformer.start(mediaItem, outputDir.newFile().getPath()); ExportResult exportResult = TransformerTestRunner.runLooper(transformer); - assertThat(exportResult.optimizationResult).isEqualTo(ExportResult.OPTIMIZATION_NONE); + assertThat(exportResult.optimizationResult).isEqualTo(OPTIMIZATION_ABANDONED); DumpFileAsserts.assertOutput( context, muxerFactory.getCreatedMuxer(), @@ -223,8 +225,7 @@ public final class MediaItemExportTest { transformer.start(mediaItem, outputDir.newFile().getPath()); ExportResult exportResult = TransformerTestRunner.runLooper(transformer); - assertThat(exportResult.optimizationResult).isNotEqualTo(ExportResult.OPTIMIZATION_SUCCEEDED); - assertThat(exportResult.optimizationResult).isNotEqualTo(ExportResult.OPTIMIZATION_NONE); + assertThat(exportResult.optimizationResult).isEqualTo(OPTIMIZATION_FAILED_EXTRACTION_FAILED); DumpFileAsserts.assertOutput( context, muxerFactory.getCreatedMuxer(),