Commit 092fbd6c by claincly Committed by microkatz

Ensure re-encode on performance tests

PiperOrigin-RevId: 453933854
(cherry picked from commit fa22efb7)
parent a4ed533e
...@@ -218,33 +218,46 @@ public final class AndroidTestUtil { ...@@ -218,33 +218,46 @@ public final class AndroidTestUtil {
writeTestSummaryToFile(context, testId, testJson); writeTestSummaryToFile(context, testId, testJson);
} }
/** /** A customizable forwarding {@link Codec.EncoderFactory} that forces encoding. */
* A {@link Codec.EncoderFactory} that forces encoding, wrapping {@link DefaultEncoderFactory}. public static final class ForceEncodeEncoderFactory implements Codec.EncoderFactory {
*/
public static final Codec.EncoderFactory FORCE_ENCODE_ENCODER_FACTORY = private final Codec.EncoderFactory encoderFactory;
new Codec.EncoderFactory() {
@Override /** Creates an instance that wraps {@link DefaultEncoderFactory}. */
public Codec createForAudioEncoding(Format format, List<String> allowedMimeTypes) public ForceEncodeEncoderFactory() {
throws TransformationException { encoderFactory = Codec.EncoderFactory.DEFAULT;
return Codec.EncoderFactory.DEFAULT.createForAudioEncoding(format, allowedMimeTypes); }
}
/**
@Override * Creates an instance that wraps {@link DefaultEncoderFactory} that wraps another {@link
public Codec createForVideoEncoding(Format format, List<String> allowedMimeTypes) * Codec.EncoderFactory}.
throws TransformationException { */
return Codec.EncoderFactory.DEFAULT.createForVideoEncoding(format, allowedMimeTypes); public ForceEncodeEncoderFactory(Codec.EncoderFactory wrappedEncoderFactory) {
} this.encoderFactory = wrappedEncoderFactory;
}
@Override
public boolean audioNeedsEncoding() { @Override
return true; public Codec createForAudioEncoding(Format format, List<String> allowedMimeTypes)
} throws TransformationException {
return encoderFactory.createForAudioEncoding(format, allowedMimeTypes);
@Override }
public boolean videoNeedsEncoding() {
return true; @Override
} public Codec createForVideoEncoding(Format format, List<String> allowedMimeTypes)
}; throws TransformationException {
return encoderFactory.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 * Returns a {@link JSONObject} containing device specific details from {@link Build}, including
......
...@@ -48,7 +48,7 @@ public final class RepeatedTranscodeTransformationTest { ...@@ -48,7 +48,7 @@ public final class RepeatedTranscodeTransformationTest {
new Transformer.Builder(context) new Transformer.Builder(context)
.setTransformationRequest( .setTransformationRequest(
new TransformationRequest.Builder().setRotationDegrees(45).build()) new TransformationRequest.Builder().setRotationDegrees(45).build())
.setEncoderFactory(AndroidTestUtil.FORCE_ENCODE_ENCODER_FACTORY) .setEncoderFactory(new AndroidTestUtil.ForceEncodeEncoderFactory())
.build()) .build())
.build(); .build();
...@@ -78,7 +78,7 @@ public final class RepeatedTranscodeTransformationTest { ...@@ -78,7 +78,7 @@ public final class RepeatedTranscodeTransformationTest {
.setRemoveAudio(true) .setRemoveAudio(true)
.setTransformationRequest( .setTransformationRequest(
new TransformationRequest.Builder().setRotationDegrees(45).build()) new TransformationRequest.Builder().setRotationDegrees(45).build())
.setEncoderFactory(AndroidTestUtil.FORCE_ENCODE_ENCODER_FACTORY) .setEncoderFactory(new AndroidTestUtil.ForceEncodeEncoderFactory())
.build()) .build())
.build(); .build();
...@@ -107,7 +107,7 @@ public final class RepeatedTranscodeTransformationTest { ...@@ -107,7 +107,7 @@ public final class RepeatedTranscodeTransformationTest {
new Transformer.Builder(context) new Transformer.Builder(context)
.setRemoveVideo(true) .setRemoveVideo(true)
.setTransformationRequest(new TransformationRequest.Builder().build()) .setTransformationRequest(new TransformationRequest.Builder().build())
.setEncoderFactory(AndroidTestUtil.FORCE_ENCODE_ENCODER_FACTORY) .setEncoderFactory(new AndroidTestUtil.ForceEncodeEncoderFactory())
.build()) .build())
.build(); .build();
......
...@@ -52,7 +52,7 @@ public final class TranscodeQualityTest { ...@@ -52,7 +52,7 @@ public final class TranscodeQualityTest {
new Transformer.Builder(context) new Transformer.Builder(context)
.setTransformationRequest( .setTransformationRequest(
new TransformationRequest.Builder().setVideoMimeType(MimeTypes.VIDEO_H264).build()) new TransformationRequest.Builder().setVideoMimeType(MimeTypes.VIDEO_H264).build())
.setEncoderFactory(AndroidTestUtil.FORCE_ENCODE_ENCODER_FACTORY) .setEncoderFactory(new AndroidTestUtil.ForceEncodeEncoderFactory())
.setRemoveAudio(true) .setRemoveAudio(true)
.build(); .build();
...@@ -119,7 +119,7 @@ public final class TranscodeQualityTest { ...@@ -119,7 +119,7 @@ public final class TranscodeQualityTest {
new Transformer.Builder(context) new Transformer.Builder(context)
.setTransformationRequest( .setTransformationRequest(
new TransformationRequest.Builder().setVideoMimeType(MimeTypes.VIDEO_H264).build()) new TransformationRequest.Builder().setVideoMimeType(MimeTypes.VIDEO_H264).build())
.setEncoderFactory(AndroidTestUtil.FORCE_ENCODE_ENCODER_FACTORY) .setEncoderFactory(new AndroidTestUtil.ForceEncodeEncoderFactory())
.setRemoveAudio(true) .setRemoveAudio(true)
.build(); .build();
......
...@@ -15,7 +15,6 @@ ...@@ -15,7 +15,6 @@
*/ */
package com.google.android.exoplayer2.transformer.mh; package com.google.android.exoplayer2.transformer.mh;
import static com.google.android.exoplayer2.transformer.AndroidTestUtil.FORCE_ENCODE_ENCODER_FACTORY;
import static com.google.android.exoplayer2.transformer.AndroidTestUtil.MP4_ASSET_SEF_URI_STRING; import static com.google.android.exoplayer2.transformer.AndroidTestUtil.MP4_ASSET_SEF_URI_STRING;
import static com.google.android.exoplayer2.transformer.AndroidTestUtil.MP4_ASSET_URI_STRING; import static com.google.android.exoplayer2.transformer.AndroidTestUtil.MP4_ASSET_URI_STRING;
import static com.google.android.exoplayer2.transformer.AndroidTestUtil.MP4_ASSET_WITH_INCREASING_TIMESTAMPS_URI_STRING; import static com.google.android.exoplayer2.transformer.AndroidTestUtil.MP4_ASSET_WITH_INCREASING_TIMESTAMPS_URI_STRING;
...@@ -31,6 +30,7 @@ import androidx.test.core.app.ApplicationProvider; ...@@ -31,6 +30,7 @@ import androidx.test.core.app.ApplicationProvider;
import androidx.test.ext.junit.runners.AndroidJUnit4; import androidx.test.ext.junit.runners.AndroidJUnit4;
import com.google.android.exoplayer2.MediaItem; import com.google.android.exoplayer2.MediaItem;
import com.google.android.exoplayer2.transformer.AndroidTestUtil; import com.google.android.exoplayer2.transformer.AndroidTestUtil;
import com.google.android.exoplayer2.transformer.AndroidTestUtil.ForceEncodeEncoderFactory;
import com.google.android.exoplayer2.transformer.DefaultEncoderFactory; import com.google.android.exoplayer2.transformer.DefaultEncoderFactory;
import com.google.android.exoplayer2.transformer.EncoderSelector; import com.google.android.exoplayer2.transformer.EncoderSelector;
import com.google.android.exoplayer2.transformer.TransformationRequest; import com.google.android.exoplayer2.transformer.TransformationRequest;
...@@ -52,9 +52,7 @@ public class TransformationTest { ...@@ -52,9 +52,7 @@ public class TransformationTest {
String testId = TAG + "_transform"; String testId = TAG + "_transform";
Context context = ApplicationProvider.getApplicationContext(); Context context = ApplicationProvider.getApplicationContext();
Transformer transformer = Transformer transformer =
new Transformer.Builder(context) new Transformer.Builder(context).setEncoderFactory(new ForceEncodeEncoderFactory()).build();
.setEncoderFactory(AndroidTestUtil.FORCE_ENCODE_ENCODER_FACTORY)
.build();
new TransformerAndroidTestRunner.Builder(context, transformer) new TransformerAndroidTestRunner.Builder(context, transformer)
.setMaybeCalculateSsim(true) .setMaybeCalculateSsim(true)
.build() .build()
...@@ -80,10 +78,11 @@ public class TransformationTest { ...@@ -80,10 +78,11 @@ public class TransformationTest {
new Transformer.Builder(context) new Transformer.Builder(context)
.setRemoveAudio(true) .setRemoveAudio(true)
.setEncoderFactory( .setEncoderFactory(
new DefaultEncoderFactory( new ForceEncodeEncoderFactory(
EncoderSelector.DEFAULT, /* wrappedEncoderFactory= */ new DefaultEncoderFactory(
new VideoEncoderSettings.Builder().setBitrate(5_000_000).build(), EncoderSelector.DEFAULT,
/* enableFallback= */ true)) new VideoEncoderSettings.Builder().setBitrate(5_000_000).build(),
/* enableFallback= */ true)))
.build(); .build();
new TransformerAndroidTestRunner.Builder(context, transformer) new TransformerAndroidTestRunner.Builder(context, transformer)
.setMaybeCalculateSsim(true) .setMaybeCalculateSsim(true)
...@@ -105,7 +104,7 @@ public class TransformationTest { ...@@ -105,7 +104,7 @@ public class TransformationTest {
} }
Transformer transformer = 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) new TransformerAndroidTestRunner.Builder(context, transformer)
.setMaybeCalculateSsim(true) .setMaybeCalculateSsim(true)
.setTimeoutSeconds(180) .setTimeoutSeconds(180)
...@@ -126,7 +125,7 @@ public class TransformationTest { ...@@ -126,7 +125,7 @@ public class TransformationTest {
return; return;
} }
Transformer transformer = 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) new TransformerAndroidTestRunner.Builder(context, transformer)
.setMaybeCalculateSsim(true) .setMaybeCalculateSsim(true)
.setTimeoutSeconds(180) .setTimeoutSeconds(180)
...@@ -140,7 +139,7 @@ public class TransformationTest { ...@@ -140,7 +139,7 @@ public class TransformationTest {
Context context = ApplicationProvider.getApplicationContext(); Context context = ApplicationProvider.getApplicationContext();
Transformer transformer = Transformer transformer =
new Transformer.Builder(context) new Transformer.Builder(context)
.setEncoderFactory(FORCE_ENCODE_ENCODER_FACTORY) .setEncoderFactory(new ForceEncodeEncoderFactory())
.setRemoveAudio(true) .setRemoveAudio(true)
.build(); .build();
new TransformerAndroidTestRunner.Builder(context, transformer) new TransformerAndroidTestRunner.Builder(context, transformer)
...@@ -155,7 +154,7 @@ public class TransformationTest { ...@@ -155,7 +154,7 @@ public class TransformationTest {
Context context = ApplicationProvider.getApplicationContext(); Context context = ApplicationProvider.getApplicationContext();
Transformer transformer = Transformer transformer =
new Transformer.Builder(context) new Transformer.Builder(context)
.setEncoderFactory(FORCE_ENCODE_ENCODER_FACTORY) .setEncoderFactory(new ForceEncodeEncoderFactory())
.setRemoveVideo(true) .setRemoveVideo(true)
.build(); .build();
new TransformerAndroidTestRunner.Builder(context, transformer) new TransformerAndroidTestRunner.Builder(context, transformer)
......
...@@ -116,13 +116,14 @@ public class BitrateAnalysisTest { ...@@ -116,13 +116,14 @@ public class BitrateAnalysisTest {
new Transformer.Builder(context) new Transformer.Builder(context)
.setRemoveAudio(true) .setRemoveAudio(true)
.setEncoderFactory( .setEncoderFactory(
new DefaultEncoderFactory( new AndroidTestUtil.ForceEncodeEncoderFactory(
EncoderSelector.DEFAULT, /* wrappedEncoderFactory= */ new DefaultEncoderFactory(
new VideoEncoderSettings.Builder() EncoderSelector.DEFAULT,
.setBitrate(bitrate) new VideoEncoderSettings.Builder()
.setBitrateMode(bitrateMode) .setBitrate(bitrate)
.build(), .setBitrateMode(bitrateMode)
/* enableFallback= */ false)) .build(),
/* enableFallback= */ false)))
.build(); .build();
new TransformerAndroidTestRunner.Builder(context, transformer) new TransformerAndroidTestRunner.Builder(context, transformer)
......
...@@ -126,12 +126,13 @@ public class EncoderPerformanceAnalysisTest { ...@@ -126,12 +126,13 @@ public class EncoderPerformanceAnalysisTest {
new Transformer.Builder(context) new Transformer.Builder(context)
.setRemoveAudio(true) .setRemoveAudio(true)
.setEncoderFactory( .setEncoderFactory(
new DefaultEncoderFactory( new AndroidTestUtil.ForceEncodeEncoderFactory(
EncoderSelector.DEFAULT, /* wrappedEncoderFactory= */ new DefaultEncoderFactory(
new VideoEncoderSettings.Builder() EncoderSelector.DEFAULT,
.setEncoderPerformanceParameters(operatingRate, priority) new VideoEncoderSettings.Builder()
.build(), .setEncoderPerformanceParameters(operatingRate, priority)
/* enableFallback= */ false)) .build(),
/* enableFallback= */ false)))
.build(); .build();
new TransformerAndroidTestRunner.Builder(context, transformer) new TransformerAndroidTestRunner.Builder(context, transformer)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment