diff --git a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/AndroidTestUtil.java b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/AndroidTestUtil.java index 17786b98ef..795632a139 100644 --- a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/AndroidTestUtil.java +++ b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/AndroidTestUtil.java @@ -57,6 +57,7 @@ import androidx.media3.effect.GlShaderProgram; import androidx.media3.effect.PassthroughShaderProgram; import androidx.media3.effect.ScaleAndRotateTransformation; import androidx.media3.exoplayer.mediacodec.MediaCodecUtil; +import androidx.media3.muxer.Muxer; import androidx.media3.test.utils.BitmapPixelTestUtil; import androidx.media3.test.utils.VideoDecodingWrapper; import com.google.common.base.Ascii; @@ -1200,6 +1201,12 @@ public final class AndroidTestUtil { throw new AssumptionViolatedException(skipReason); } + /** Returns a {@link Muxer.Factory} depending upon the API level. */ + public static Muxer.Factory getMuxerFactoryBasedOnApi() { + // MediaMuxer supports B-frame from API > 24. + return SDK_INT > 24 ? new DefaultMuxer.Factory() : new InAppMuxer.Factory.Builder().build(); + } + private static boolean canDecode(Format format) { if (MimeTypes.isImage(format.sampleMimeType)) { return Util.isBitmapFactorySupportedMimeType(format.sampleMimeType); diff --git a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/ParameterizedItemExportAndroidTest.java b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/ParameterizedItemExportAndroidTest.java index 72686867cc..fb69f1f1c9 100644 --- a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/ParameterizedItemExportAndroidTest.java +++ b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/ParameterizedItemExportAndroidTest.java @@ -21,6 +21,7 @@ import static androidx.media3.transformer.AndroidTestUtil.JPG_ASSET; import static androidx.media3.transformer.AndroidTestUtil.MP4_ASSET; import static androidx.media3.transformer.AndroidTestUtil.PNG_ASSET; import static androidx.media3.transformer.AndroidTestUtil.assumeFormatsSupported; +import static androidx.media3.transformer.AndroidTestUtil.getMuxerFactoryBasedOnApi; import static com.google.common.truth.Truth.assertThat; import android.content.Context; @@ -120,6 +121,7 @@ public final class ParameterizedItemExportAndroidTest { assumeFormatsSupported(context, testId, itemConfig.format, itemConfig.outputFormat); Transformer transformer = new Transformer.Builder(context) + .setMuxerFactory(getMuxerFactoryBasedOnApi()) .setEncoderFactory( new DefaultEncoderFactory.Builder(context).setEnableFallback(false).build()) .build(); 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 27a34ced98..195f830817 100644 --- a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/TransformerEndToEndTest.java +++ b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/TransformerEndToEndTest.java @@ -33,6 +33,7 @@ import static androidx.media3.transformer.AndroidTestUtil.assumeFormatsSupported import static androidx.media3.transformer.AndroidTestUtil.createFrameCountingEffect; import static androidx.media3.transformer.AndroidTestUtil.createOpenGlObjects; import static androidx.media3.transformer.AndroidTestUtil.generateTextureFromBitmap; +import static androidx.media3.transformer.AndroidTestUtil.getMuxerFactoryBasedOnApi; import static androidx.media3.transformer.AndroidTestUtil.recordTestSkipped; import static androidx.media3.transformer.ExportResult.CONVERSION_PROCESS_NA; import static androidx.media3.transformer.ExportResult.CONVERSION_PROCESS_TRANSCODED; @@ -679,7 +680,10 @@ public class TransformerEndToEndTest { /* outputFormat= */ MP4_ASSET_PHOTOS_TRIM_OPTIMIZATION_VIDEO.videoFormat); Transformer transformer = - new Transformer.Builder(context).experimentalSetTrimOptimizationEnabled(true).build(); + new Transformer.Builder(context) + .experimentalSetTrimOptimizationEnabled(true) + .setMuxerFactory(getMuxerFactoryBasedOnApi()) + .build(); // The previous sample is at 1137 and the next sample (which is a sync sample) is at 1171. long clippingStartMs = 1138;