Ensure re-encode on performance tests
PiperOrigin-RevId: 453933854
This commit is contained in:
parent
8b592fc77a
commit
12d775f055
@ -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 =
|
|
||||||
new Codec.EncoderFactory() {
|
|
||||||
@Override
|
|
||||||
public Codec createForAudioEncoding(Format format, List<String> allowedMimeTypes)
|
|
||||||
throws TransformationException {
|
|
||||||
return Codec.EncoderFactory.DEFAULT.createForAudioEncoding(format, allowedMimeTypes);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
private final Codec.EncoderFactory encoderFactory;
|
||||||
public Codec createForVideoEncoding(Format format, List<String> allowedMimeTypes)
|
|
||||||
throws TransformationException {
|
|
||||||
return Codec.EncoderFactory.DEFAULT.createForVideoEncoding(format, allowedMimeTypes);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
/** Creates an instance that wraps {@link DefaultEncoderFactory}. */
|
||||||
public boolean audioNeedsEncoding() {
|
public ForceEncodeEncoderFactory() {
|
||||||
return true;
|
encoderFactory = Codec.EncoderFactory.DEFAULT;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
/**
|
||||||
public boolean videoNeedsEncoding() {
|
* Creates an instance that wraps {@link DefaultEncoderFactory} that wraps another {@link
|
||||||
return true;
|
* Codec.EncoderFactory}.
|
||||||
}
|
*/
|
||||||
};
|
public ForceEncodeEncoderFactory(Codec.EncoderFactory wrappedEncoderFactory) {
|
||||||
|
this.encoderFactory = wrappedEncoderFactory;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Codec createForAudioEncoding(Format format, List<String> allowedMimeTypes)
|
||||||
|
throws TransformationException {
|
||||||
|
return encoderFactory.createForAudioEncoding(format, allowedMimeTypes);
|
||||||
|
}
|
||||||
|
|
||||||
|
@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 {
|
|||||||
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 {
|
|||||||
.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 {
|
|||||||
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 {
|
|||||||
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 {
|
|||||||
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 @@
|
|||||||
*/
|
*/
|
||||||
package androidx.media3.transformer.mh;
|
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_SEF_URI_STRING;
|
||||||
import static androidx.media3.transformer.AndroidTestUtil.MP4_ASSET_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;
|
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.MediaItem;
|
||||||
import androidx.media3.common.util.Util;
|
import androidx.media3.common.util.Util;
|
||||||
import androidx.media3.transformer.AndroidTestUtil;
|
import androidx.media3.transformer.AndroidTestUtil;
|
||||||
|
import androidx.media3.transformer.AndroidTestUtil.ForceEncodeEncoderFactory;
|
||||||
import androidx.media3.transformer.DefaultEncoderFactory;
|
import androidx.media3.transformer.DefaultEncoderFactory;
|
||||||
import androidx.media3.transformer.EncoderSelector;
|
import androidx.media3.transformer.EncoderSelector;
|
||||||
import androidx.media3.transformer.TransformationRequest;
|
import androidx.media3.transformer.TransformationRequest;
|
||||||
@ -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 {
|
|||||||
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 {
|
|||||||
}
|
}
|
||||||
|
|
||||||
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 {
|
|||||||
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 {
|
|||||||
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 {
|
|||||||
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 {
|
|||||||
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 {
|
|||||||
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)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user