Ensure re-encode on performance tests

PiperOrigin-RevId: 453933854
This commit is contained in:
claincly 2022-06-09 15:41:09 +00:00 committed by Marc Baechinger
parent 8b592fc77a
commit 12d775f055
6 changed files with 68 additions and 54 deletions

View File

@ -218,21 +218,34 @@ public final class AndroidTestUtil {
writeTestSummaryToFile(context, testId, testJson);
}
/** A customizable forwarding {@link Codec.EncoderFactory} that forces encoding. */
public static final class ForceEncodeEncoderFactory implements Codec.EncoderFactory {
private final Codec.EncoderFactory encoderFactory;
/** Creates an instance that wraps {@link DefaultEncoderFactory}. */
public ForceEncodeEncoderFactory() {
encoderFactory = Codec.EncoderFactory.DEFAULT;
}
/**
* A {@link Codec.EncoderFactory} that forces encoding, wrapping {@link DefaultEncoderFactory}.
* Creates an instance that wraps {@link DefaultEncoderFactory} that wraps another {@link
* Codec.EncoderFactory}.
*/
public static final Codec.EncoderFactory FORCE_ENCODE_ENCODER_FACTORY =
new Codec.EncoderFactory() {
public ForceEncodeEncoderFactory(Codec.EncoderFactory wrappedEncoderFactory) {
this.encoderFactory = wrappedEncoderFactory;
}
@Override
public Codec createForAudioEncoding(Format format, List<String> allowedMimeTypes)
throws TransformationException {
return Codec.EncoderFactory.DEFAULT.createForAudioEncoding(format, allowedMimeTypes);
return encoderFactory.createForAudioEncoding(format, allowedMimeTypes);
}
@Override
public Codec createForVideoEncoding(Format format, List<String> allowedMimeTypes)
throws TransformationException {
return Codec.EncoderFactory.DEFAULT.createForVideoEncoding(format, allowedMimeTypes);
return encoderFactory.createForVideoEncoding(format, allowedMimeTypes);
}
@Override
@ -244,7 +257,7 @@ public final class AndroidTestUtil {
public boolean videoNeedsEncoding() {
return true;
}
};
}
/**
* Returns a {@link JSONObject} containing device specific details from {@link Build}, including

View File

@ -48,7 +48,7 @@ public final class RepeatedTranscodeTransformationTest {
new Transformer.Builder(context)
.setTransformationRequest(
new TransformationRequest.Builder().setRotationDegrees(45).build())
.setEncoderFactory(AndroidTestUtil.FORCE_ENCODE_ENCODER_FACTORY)
.setEncoderFactory(new AndroidTestUtil.ForceEncodeEncoderFactory())
.build())
.build();
@ -78,7 +78,7 @@ public final class RepeatedTranscodeTransformationTest {
.setRemoveAudio(true)
.setTransformationRequest(
new TransformationRequest.Builder().setRotationDegrees(45).build())
.setEncoderFactory(AndroidTestUtil.FORCE_ENCODE_ENCODER_FACTORY)
.setEncoderFactory(new AndroidTestUtil.ForceEncodeEncoderFactory())
.build())
.build();
@ -107,7 +107,7 @@ public final class RepeatedTranscodeTransformationTest {
new Transformer.Builder(context)
.setRemoveVideo(true)
.setTransformationRequest(new TransformationRequest.Builder().build())
.setEncoderFactory(AndroidTestUtil.FORCE_ENCODE_ENCODER_FACTORY)
.setEncoderFactory(new AndroidTestUtil.ForceEncodeEncoderFactory())
.build())
.build();

View File

@ -52,7 +52,7 @@ public final class TranscodeQualityTest {
new Transformer.Builder(context)
.setTransformationRequest(
new TransformationRequest.Builder().setVideoMimeType(MimeTypes.VIDEO_H264).build())
.setEncoderFactory(AndroidTestUtil.FORCE_ENCODE_ENCODER_FACTORY)
.setEncoderFactory(new AndroidTestUtil.ForceEncodeEncoderFactory())
.setRemoveAudio(true)
.build();
@ -119,7 +119,7 @@ public final class TranscodeQualityTest {
new Transformer.Builder(context)
.setTransformationRequest(
new TransformationRequest.Builder().setVideoMimeType(MimeTypes.VIDEO_H264).build())
.setEncoderFactory(AndroidTestUtil.FORCE_ENCODE_ENCODER_FACTORY)
.setEncoderFactory(new AndroidTestUtil.ForceEncodeEncoderFactory())
.setRemoveAudio(true)
.build();

View File

@ -15,7 +15,6 @@
*/
package androidx.media3.transformer.mh;
import static androidx.media3.transformer.AndroidTestUtil.FORCE_ENCODE_ENCODER_FACTORY;
import static androidx.media3.transformer.AndroidTestUtil.MP4_ASSET_SEF_URI_STRING;
import static androidx.media3.transformer.AndroidTestUtil.MP4_ASSET_URI_STRING;
import static androidx.media3.transformer.AndroidTestUtil.MP4_ASSET_WITH_INCREASING_TIMESTAMPS_URI_STRING;
@ -30,6 +29,7 @@ import android.net.Uri;
import androidx.media3.common.MediaItem;
import androidx.media3.common.util.Util;
import androidx.media3.transformer.AndroidTestUtil;
import androidx.media3.transformer.AndroidTestUtil.ForceEncodeEncoderFactory;
import androidx.media3.transformer.DefaultEncoderFactory;
import androidx.media3.transformer.EncoderSelector;
import androidx.media3.transformer.TransformationRequest;
@ -52,9 +52,7 @@ public class TransformationTest {
String testId = TAG + "_transform";
Context context = ApplicationProvider.getApplicationContext();
Transformer transformer =
new Transformer.Builder(context)
.setEncoderFactory(AndroidTestUtil.FORCE_ENCODE_ENCODER_FACTORY)
.build();
new Transformer.Builder(context).setEncoderFactory(new ForceEncodeEncoderFactory()).build();
new TransformerAndroidTestRunner.Builder(context, transformer)
.setMaybeCalculateSsim(true)
.build()
@ -80,10 +78,11 @@ public class TransformationTest {
new Transformer.Builder(context)
.setRemoveAudio(true)
.setEncoderFactory(
new DefaultEncoderFactory(
new ForceEncodeEncoderFactory(
/* wrappedEncoderFactory= */ new DefaultEncoderFactory(
EncoderSelector.DEFAULT,
new VideoEncoderSettings.Builder().setBitrate(5_000_000).build(),
/* enableFallback= */ true))
/* enableFallback= */ true)))
.build();
new TransformerAndroidTestRunner.Builder(context, transformer)
.setMaybeCalculateSsim(true)
@ -105,7 +104,7 @@ public class TransformationTest {
}
Transformer transformer =
new Transformer.Builder(context).setEncoderFactory(FORCE_ENCODE_ENCODER_FACTORY).build();
new Transformer.Builder(context).setEncoderFactory(new ForceEncodeEncoderFactory()).build();
new TransformerAndroidTestRunner.Builder(context, transformer)
.setMaybeCalculateSsim(true)
.setTimeoutSeconds(180)
@ -126,7 +125,7 @@ public class TransformationTest {
return;
}
Transformer transformer =
new Transformer.Builder(context).setEncoderFactory(FORCE_ENCODE_ENCODER_FACTORY).build();
new Transformer.Builder(context).setEncoderFactory(new ForceEncodeEncoderFactory()).build();
new TransformerAndroidTestRunner.Builder(context, transformer)
.setMaybeCalculateSsim(true)
.setTimeoutSeconds(180)
@ -140,7 +139,7 @@ public class TransformationTest {
Context context = ApplicationProvider.getApplicationContext();
Transformer transformer =
new Transformer.Builder(context)
.setEncoderFactory(FORCE_ENCODE_ENCODER_FACTORY)
.setEncoderFactory(new ForceEncodeEncoderFactory())
.setRemoveAudio(true)
.build();
new TransformerAndroidTestRunner.Builder(context, transformer)
@ -155,7 +154,7 @@ public class TransformationTest {
Context context = ApplicationProvider.getApplicationContext();
Transformer transformer =
new Transformer.Builder(context)
.setEncoderFactory(FORCE_ENCODE_ENCODER_FACTORY)
.setEncoderFactory(new ForceEncodeEncoderFactory())
.setRemoveVideo(true)
.build();
new TransformerAndroidTestRunner.Builder(context, transformer)

View File

@ -116,13 +116,14 @@ public class BitrateAnalysisTest {
new Transformer.Builder(context)
.setRemoveAudio(true)
.setEncoderFactory(
new DefaultEncoderFactory(
new AndroidTestUtil.ForceEncodeEncoderFactory(
/* wrappedEncoderFactory= */ new DefaultEncoderFactory(
EncoderSelector.DEFAULT,
new VideoEncoderSettings.Builder()
.setBitrate(bitrate)
.setBitrateMode(bitrateMode)
.build(),
/* enableFallback= */ false))
/* enableFallback= */ false)))
.build();
new TransformerAndroidTestRunner.Builder(context, transformer)

View File

@ -126,12 +126,13 @@ public class EncoderPerformanceAnalysisTest {
new Transformer.Builder(context)
.setRemoveAudio(true)
.setEncoderFactory(
new DefaultEncoderFactory(
new AndroidTestUtil.ForceEncodeEncoderFactory(
/* wrappedEncoderFactory= */ new DefaultEncoderFactory(
EncoderSelector.DEFAULT,
new VideoEncoderSettings.Builder()
.setEncoderPerformanceParameters(operatingRate, priority)
.build(),
/* enableFallback= */ false))
/* enableFallback= */ false)))
.build();
new TransformerAndroidTestRunner.Builder(context, transformer)