Clarify the mime type used in EncoderUtilTest.

PiperOrigin-RevId: 509750806
This commit is contained in:
samrobinson 2023-02-15 08:34:44 +00:00 committed by Andrew Lewis
parent d91afa063a
commit bcbe3f1f80

View File

@ -16,6 +16,7 @@
package com.google.android.exoplayer2.transformer; package com.google.android.exoplayer2.transformer;
import static com.google.android.exoplayer2.util.MimeTypes.VIDEO_H264;
import static com.google.common.truth.Truth.assertThat; import static com.google.common.truth.Truth.assertThat;
import android.media.MediaCodecInfo; import android.media.MediaCodecInfo;
@ -24,7 +25,6 @@ import android.util.Size;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.test.ext.junit.runners.AndroidJUnit4; import androidx.test.ext.junit.runners.AndroidJUnit4;
import com.google.android.exoplayer2.C; import com.google.android.exoplayer2.C;
import com.google.android.exoplayer2.util.MimeTypes;
import com.google.android.exoplayer2.video.ColorInfo; import com.google.android.exoplayer2.video.ColorInfo;
import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableList;
import org.junit.After; import org.junit.After;
@ -45,12 +45,10 @@ import org.robolectric.shadows.ShadowMediaCodecList;
*/ */
@RunWith(AndroidJUnit4.class) @RunWith(AndroidJUnit4.class)
public class EncoderUtilTest { public class EncoderUtilTest {
private static final String MIME_TYPE = MimeTypes.VIDEO_H264;
@Before @Before
public void setUp() { public void setUp() {
MediaFormat avcFormat = new MediaFormat(); MediaFormat avcFormat = new MediaFormat();
avcFormat.setString(MediaFormat.KEY_MIME, MediaFormat.MIMETYPE_VIDEO_AVC); avcFormat.setString(MediaFormat.KEY_MIME, VIDEO_H264);
MediaCodecInfo.CodecProfileLevel profileLevel = new MediaCodecInfo.CodecProfileLevel(); MediaCodecInfo.CodecProfileLevel profileLevel = new MediaCodecInfo.CodecProfileLevel();
profileLevel.profile = MediaCodecInfo.CodecProfileLevel.AVCProfileHigh; profileLevel.profile = MediaCodecInfo.CodecProfileLevel.AVCProfileHigh;
// Using Level4 gives us 8192 16x16 blocks. If using width 1920 uses 120 blocks, 8192 / 120 = 68 // Using Level4 gives us 8192 16x16 blocks. If using width 1920 uses 120 blocks, 8192 / 120 = 68
@ -81,12 +79,12 @@ public class EncoderUtilTest {
@Test @Test
public void getSupportedResolution_withSupportedResolution_succeeds() { public void getSupportedResolution_withSupportedResolution_succeeds() {
ImmutableList<MediaCodecInfo> supportedEncoders = EncoderUtil.getSupportedEncoders(MIME_TYPE); ImmutableList<MediaCodecInfo> supportedEncoders = EncoderUtil.getSupportedEncoders(VIDEO_H264);
MediaCodecInfo encoderInfo = supportedEncoders.get(0); MediaCodecInfo encoderInfo = supportedEncoders.get(0);
@Nullable @Nullable
Size closestSupportedResolution = Size closestSupportedResolution =
EncoderUtil.getSupportedResolution(encoderInfo, MIME_TYPE, 1920, 1080); EncoderUtil.getSupportedResolution(encoderInfo, VIDEO_H264, 1920, 1080);
assertThat(closestSupportedResolution).isNotNull(); assertThat(closestSupportedResolution).isNotNull();
assertThat(closestSupportedResolution.getWidth()).isEqualTo(1920); assertThat(closestSupportedResolution.getWidth()).isEqualTo(1920);
@ -95,12 +93,12 @@ public class EncoderUtilTest {
@Test @Test
public void getSupportedResolution_withUnalignedSize_findsMostCloselySupportedResolution() { public void getSupportedResolution_withUnalignedSize_findsMostCloselySupportedResolution() {
ImmutableList<MediaCodecInfo> supportedEncoders = EncoderUtil.getSupportedEncoders(MIME_TYPE); ImmutableList<MediaCodecInfo> supportedEncoders = EncoderUtil.getSupportedEncoders(VIDEO_H264);
MediaCodecInfo encoderInfo = supportedEncoders.get(0); MediaCodecInfo encoderInfo = supportedEncoders.get(0);
@Nullable @Nullable
Size closestSupportedResolution = Size closestSupportedResolution =
EncoderUtil.getSupportedResolution(encoderInfo, MIME_TYPE, 1919, 1081); EncoderUtil.getSupportedResolution(encoderInfo, VIDEO_H264, 1919, 1081);
assertThat(closestSupportedResolution).isNotNull(); assertThat(closestSupportedResolution).isNotNull();
assertThat(closestSupportedResolution.getWidth()).isEqualTo(1920); assertThat(closestSupportedResolution.getWidth()).isEqualTo(1920);
@ -110,12 +108,12 @@ public class EncoderUtilTest {
@Test @Test
public void getSupportedResolution_findsThreeQuartersOfTheOriginalSize() { public void getSupportedResolution_findsThreeQuartersOfTheOriginalSize() {
// The supported resolution will try to match the aspect ratio where possible. // The supported resolution will try to match the aspect ratio where possible.
ImmutableList<MediaCodecInfo> supportedEncoders = EncoderUtil.getSupportedEncoders(MIME_TYPE); ImmutableList<MediaCodecInfo> supportedEncoders = EncoderUtil.getSupportedEncoders(VIDEO_H264);
MediaCodecInfo encoderInfo = supportedEncoders.get(0); MediaCodecInfo encoderInfo = supportedEncoders.get(0);
@Nullable @Nullable
Size closestSupportedResolution = Size closestSupportedResolution =
EncoderUtil.getSupportedResolution(encoderInfo, MIME_TYPE, 1920, 1920); EncoderUtil.getSupportedResolution(encoderInfo, VIDEO_H264, 1920, 1920);
assertThat(closestSupportedResolution).isNotNull(); assertThat(closestSupportedResolution).isNotNull();
assertThat(closestSupportedResolution.getWidth()).isEqualTo(1440); assertThat(closestSupportedResolution.getWidth()).isEqualTo(1440);
@ -124,12 +122,12 @@ public class EncoderUtilTest {
@Test @Test
public void getSupportedResolution_findsTwoThirdsOfTheOriginalSize() { public void getSupportedResolution_findsTwoThirdsOfTheOriginalSize() {
ImmutableList<MediaCodecInfo> supportedEncoders = EncoderUtil.getSupportedEncoders(MIME_TYPE); ImmutableList<MediaCodecInfo> supportedEncoders = EncoderUtil.getSupportedEncoders(VIDEO_H264);
MediaCodecInfo encoderInfo = supportedEncoders.get(0); MediaCodecInfo encoderInfo = supportedEncoders.get(0);
@Nullable @Nullable
Size closestSupportedResolution = Size closestSupportedResolution =
EncoderUtil.getSupportedResolution(encoderInfo, MIME_TYPE, 2880, 1620); EncoderUtil.getSupportedResolution(encoderInfo, VIDEO_H264, 2880, 1620);
assertThat(closestSupportedResolution).isNotNull(); assertThat(closestSupportedResolution).isNotNull();
assertThat(closestSupportedResolution.getWidth()).isEqualTo(1920); assertThat(closestSupportedResolution.getWidth()).isEqualTo(1920);
@ -138,12 +136,12 @@ public class EncoderUtilTest {
@Test @Test
public void getSupportedResolution_findsHalfOfTheOriginalSize() { public void getSupportedResolution_findsHalfOfTheOriginalSize() {
ImmutableList<MediaCodecInfo> supportedEncoders = EncoderUtil.getSupportedEncoders(MIME_TYPE); ImmutableList<MediaCodecInfo> supportedEncoders = EncoderUtil.getSupportedEncoders(VIDEO_H264);
MediaCodecInfo encoderInfo = supportedEncoders.get(0); MediaCodecInfo encoderInfo = supportedEncoders.get(0);
@Nullable @Nullable
Size closestSupportedResolution = Size closestSupportedResolution =
EncoderUtil.getSupportedResolution(encoderInfo, MIME_TYPE, 2160, 3840); EncoderUtil.getSupportedResolution(encoderInfo, VIDEO_H264, 2160, 3840);
assertThat(closestSupportedResolution).isNotNull(); assertThat(closestSupportedResolution).isNotNull();
assertThat(closestSupportedResolution.getWidth()).isEqualTo(1080); assertThat(closestSupportedResolution.getWidth()).isEqualTo(1080);
@ -152,12 +150,12 @@ public class EncoderUtilTest {
@Test @Test
public void getSupportedResolution_findsOneQuarterOfTheOriginalSize() { public void getSupportedResolution_findsOneQuarterOfTheOriginalSize() {
ImmutableList<MediaCodecInfo> supportedEncoders = EncoderUtil.getSupportedEncoders(MIME_TYPE); ImmutableList<MediaCodecInfo> supportedEncoders = EncoderUtil.getSupportedEncoders(VIDEO_H264);
MediaCodecInfo encoderInfo = supportedEncoders.get(0); MediaCodecInfo encoderInfo = supportedEncoders.get(0);
@Nullable @Nullable
Size closestSupportedResolution = Size closestSupportedResolution =
EncoderUtil.getSupportedResolution(encoderInfo, MIME_TYPE, 7680, 4320); EncoderUtil.getSupportedResolution(encoderInfo, VIDEO_H264, 7680, 4320);
assertThat(closestSupportedResolution).isNotNull(); assertThat(closestSupportedResolution).isNotNull();
assertThat(closestSupportedResolution.getWidth()).isEqualTo(1920); assertThat(closestSupportedResolution.getWidth()).isEqualTo(1920);
@ -166,14 +164,14 @@ public class EncoderUtilTest {
@Test @Test
public void getSupportedResolution_requestedReallyLarge_matchesAspectRatio() { public void getSupportedResolution_requestedReallyLarge_matchesAspectRatio() {
ImmutableList<MediaCodecInfo> supportedEncoders = EncoderUtil.getSupportedEncoders(MIME_TYPE); ImmutableList<MediaCodecInfo> supportedEncoders = EncoderUtil.getSupportedEncoders(VIDEO_H264);
MediaCodecInfo encoderInfo = supportedEncoders.get(0); MediaCodecInfo encoderInfo = supportedEncoders.get(0);
double aspectRatio = 1.5; double aspectRatio = 1.5;
@Nullable @Nullable
Size closestSupportedResolution = Size closestSupportedResolution =
EncoderUtil.getSupportedResolution( EncoderUtil.getSupportedResolution(
encoderInfo, MIME_TYPE, (int) (aspectRatio * 5000), 5000); encoderInfo, VIDEO_H264, (int) (aspectRatio * 5000), 5000);
assertThat(closestSupportedResolution).isNotNull(); assertThat(closestSupportedResolution).isNotNull();
assertThat( assertThat(
@ -193,7 +191,7 @@ public class EncoderUtilTest {
// support HDR. // support HDR.
assertThat( assertThat(
EncoderUtil.getSupportedEncodersForHdrEditing( EncoderUtil.getSupportedEncodersForHdrEditing(
MIME_TYPE, VIDEO_H264,
new ColorInfo.Builder() new ColorInfo.Builder()
.setColorSpace(C.COLOR_SPACE_BT2020) .setColorSpace(C.COLOR_SPACE_BT2020)
.setColorRange(C.COLOR_RANGE_FULL) .setColorRange(C.COLOR_RANGE_FULL)