From 12fc9d1070253490940e733b2f845f58f9073cf1 Mon Sep 17 00:00:00 2001 From: claincly Date: Thu, 31 Mar 2022 14:31:04 +0100 Subject: [PATCH] Move a commonly used encoder factory mode to util. The encoder factory will be used in other tests. PiperOrigin-RevId: 438552381 --- .../media3/transformer/AndroidTestUtil.java | 30 +++++++++++++++++ .../transformer/mh/TransformationTest.java | 32 ++----------------- 2 files changed, 32 insertions(+), 30 deletions(-) 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 5740f31cb7..b96d962a05 100644 --- a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/AndroidTestUtil.java +++ b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/AndroidTestUtil.java @@ -19,9 +19,11 @@ import static androidx.media3.common.util.Assertions.checkState; import android.content.Context; import android.os.Build; +import androidx.media3.common.Format; import androidx.media3.common.util.Log; import java.io.File; import java.io.IOException; +import java.util.List; import org.json.JSONException; import org.json.JSONObject; @@ -48,6 +50,34 @@ public final class AndroidTestUtil { return file; } + /** + * A {@link Codec.EncoderFactory} that forces encoding, wrapping {@link DefaultEncoderFactory}. + */ + public static final Codec.EncoderFactory FORCE_ENCODE_ENCODER_FACTORY = + new Codec.EncoderFactory() { + @Override + public Codec createForAudioEncoding(Format format, List allowedMimeTypes) + throws TransformationException { + return Codec.EncoderFactory.DEFAULT.createForAudioEncoding(format, allowedMimeTypes); + } + + @Override + public Codec createForVideoEncoding(Format format, List allowedMimeTypes) + throws TransformationException { + return Codec.EncoderFactory.DEFAULT.createForVideoEncoding(format, allowedMimeTypes); + } + + @Override + public boolean audioNeedsEncoding() { + return true; + } + + @Override + public boolean videoNeedsEncoding() { + return true; + } + }; + /** * Returns a {@link JSONObject} containing device specific details from {@link Build}, including * manufacturer, model, SDK version and build fingerprint. diff --git a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/mh/TransformationTest.java b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/mh/TransformationTest.java index 67ae26d8f0..f5ca5f962a 100644 --- a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/mh/TransformationTest.java +++ b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/mh/TransformationTest.java @@ -21,20 +21,17 @@ import static androidx.media3.transformer.AndroidTestUtil.MP4_ASSET_WITH_INCREAS import static androidx.media3.transformer.AndroidTestUtil.MP4_REMOTE_4K60_PORTRAIT_URI_STRING; import android.content.Context; -import androidx.media3.common.Format; import androidx.media3.common.util.Log; import androidx.media3.common.util.Util; -import androidx.media3.transformer.Codec; +import androidx.media3.transformer.AndroidTestUtil; import androidx.media3.transformer.DefaultEncoderFactory; import androidx.media3.transformer.EncoderSelector; -import androidx.media3.transformer.TransformationException; import androidx.media3.transformer.TransformationRequest; import androidx.media3.transformer.Transformer; import androidx.media3.transformer.TransformerAndroidTestRunner; import androidx.media3.transformer.VideoEncoderSettings; import androidx.test.core.app.ApplicationProvider; import androidx.test.ext.junit.runners.AndroidJUnit4; -import java.util.List; import org.junit.Test; import org.junit.runner.RunWith; @@ -61,32 +58,7 @@ public class TransformationTest { Context context = ApplicationProvider.getApplicationContext(); Transformer transformer = new Transformer.Builder(context) - .setEncoderFactory( - new Codec.EncoderFactory() { - @Override - public Codec createForAudioEncoding(Format format, List allowedMimeTypes) - throws TransformationException { - return Codec.EncoderFactory.DEFAULT.createForAudioEncoding( - format, allowedMimeTypes); - } - - @Override - public Codec createForVideoEncoding(Format format, List allowedMimeTypes) - throws TransformationException { - return Codec.EncoderFactory.DEFAULT.createForVideoEncoding( - format, allowedMimeTypes); - } - - @Override - public boolean audioNeedsEncoding() { - return true; - } - - @Override - public boolean videoNeedsEncoding() { - return true; - } - }) + .setEncoderFactory(AndroidTestUtil.FORCE_ENCODE_ENCODER_FACTORY) .build(); new TransformerAndroidTestRunner.Builder(context, transformer) .setCalculateSsim(true)