Ensure re-encode on performance tests
PiperOrigin-RevId: 453933854
This commit is contained in:
parent
8b592fc77a
commit
12d775f055
@ -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
|
||||
|
@ -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();
|
||||
|
||||
|
@ -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();
|
||||
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
Loading…
x
Reference in New Issue
Block a user