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 25dfc8dd45..326a844300 100644 --- a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/TransformerEndToEndTest.java +++ b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/TransformerEndToEndTest.java @@ -19,6 +19,7 @@ import static android.media.MediaCodecInfo.CodecProfileLevel.AACObjectHE; import static androidx.media3.common.util.Assertions.checkNotNull; import static androidx.media3.common.util.Assertions.checkState; import static androidx.media3.common.util.MediaFormatUtil.createFormatFromMediaFormat; +import static androidx.media3.common.util.Util.SDK_INT; import static androidx.media3.common.util.Util.isRunningOnEmulator; import static androidx.media3.test.utils.TestUtil.retrieveTrackFormat; import static androidx.media3.transformer.AndroidTestUtil.JPG_ASSET; @@ -2557,6 +2558,24 @@ public class TransformerEndToEndTest { () -> new Composition.Builder(firstSequence, secondSequence).build()); } + @Test + public void transmux_apvFile_transmuxesSuccessfully() throws Exception { + // MediaMuxer supports APV from API 36. + assumeTrue(SDK_INT >= 36); + String apvFile = "asset:///media/mp4/sample_with_apvc.mp4"; + EditedMediaItem editedMediaItem = + new EditedMediaItem.Builder(MediaItem.fromUri(Uri.parse(apvFile))).build(); + + ExportTestResult result = + new TransformerAndroidTestRunner.Builder(context, new Transformer.Builder(context).build()) + .build() + .run(testId, editedMediaItem); + + Format format = retrieveTrackFormat(context, result.filePath, C.TRACK_TYPE_VIDEO); + assertThat(format.sampleMimeType).isEqualTo(MimeTypes.VIDEO_APV); + assertThat(result.exportResult.videoConversionProcess).isEqualTo(CONVERSION_PROCESS_TRANSMUXED); + } + private static boolean shouldSkipDeviceForAacObjectHeProfileEncoding() { return Util.SDK_INT < 29; } diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/FrameworkMuxer.java b/libraries/transformer/src/main/java/androidx/media3/transformer/FrameworkMuxer.java index e28ebdb777..50105054a5 100644 --- a/libraries/transformer/src/main/java/androidx/media3/transformer/FrameworkMuxer.java +++ b/libraries/transformer/src/main/java/androidx/media3/transformer/FrameworkMuxer.java @@ -321,6 +321,9 @@ import java.util.Locale; if (SDK_INT >= 34) { supportedMimeTypes.add(MimeTypes.VIDEO_AV1); } + if (SDK_INT >= 36) { + supportedMimeTypes.add(MimeTypes.VIDEO_APV); + } return supportedMimeTypes.build(); }