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;
import static com.google.android.exoplayer2.util.MimeTypes.VIDEO_H264;
import static com.google.common.truth.Truth.assertThat;
import android.media.MediaCodecInfo;
@ -24,7 +25,6 @@ import android.util.Size;
import androidx.annotation.Nullable;
import androidx.test.ext.junit.runners.AndroidJUnit4;
import com.google.android.exoplayer2.C;
import com.google.android.exoplayer2.util.MimeTypes;
import com.google.android.exoplayer2.video.ColorInfo;
import com.google.common.collect.ImmutableList;
import org.junit.After;
@ -45,12 +45,10 @@ import org.robolectric.shadows.ShadowMediaCodecList;
*/
@RunWith(AndroidJUnit4.class)
public class EncoderUtilTest {
private static final String MIME_TYPE = MimeTypes.VIDEO_H264;
@Before
public void setUp() {
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();
profileLevel.profile = MediaCodecInfo.CodecProfileLevel.AVCProfileHigh;
// 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
public void getSupportedResolution_withSupportedResolution_succeeds() {
ImmutableList<MediaCodecInfo> supportedEncoders = EncoderUtil.getSupportedEncoders(MIME_TYPE);
ImmutableList<MediaCodecInfo> supportedEncoders = EncoderUtil.getSupportedEncoders(VIDEO_H264);
MediaCodecInfo encoderInfo = supportedEncoders.get(0);
@Nullable
Size closestSupportedResolution =
EncoderUtil.getSupportedResolution(encoderInfo, MIME_TYPE, 1920, 1080);
EncoderUtil.getSupportedResolution(encoderInfo, VIDEO_H264, 1920, 1080);
assertThat(closestSupportedResolution).isNotNull();
assertThat(closestSupportedResolution.getWidth()).isEqualTo(1920);
@ -95,12 +93,12 @@ public class EncoderUtilTest {
@Test
public void getSupportedResolution_withUnalignedSize_findsMostCloselySupportedResolution() {
ImmutableList<MediaCodecInfo> supportedEncoders = EncoderUtil.getSupportedEncoders(MIME_TYPE);
ImmutableList<MediaCodecInfo> supportedEncoders = EncoderUtil.getSupportedEncoders(VIDEO_H264);
MediaCodecInfo encoderInfo = supportedEncoders.get(0);
@Nullable
Size closestSupportedResolution =
EncoderUtil.getSupportedResolution(encoderInfo, MIME_TYPE, 1919, 1081);
EncoderUtil.getSupportedResolution(encoderInfo, VIDEO_H264, 1919, 1081);
assertThat(closestSupportedResolution).isNotNull();
assertThat(closestSupportedResolution.getWidth()).isEqualTo(1920);
@ -110,12 +108,12 @@ public class EncoderUtilTest {
@Test
public void getSupportedResolution_findsThreeQuartersOfTheOriginalSize() {
// 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);
@Nullable
Size closestSupportedResolution =
EncoderUtil.getSupportedResolution(encoderInfo, MIME_TYPE, 1920, 1920);
EncoderUtil.getSupportedResolution(encoderInfo, VIDEO_H264, 1920, 1920);
assertThat(closestSupportedResolution).isNotNull();
assertThat(closestSupportedResolution.getWidth()).isEqualTo(1440);
@ -124,12 +122,12 @@ public class EncoderUtilTest {
@Test
public void getSupportedResolution_findsTwoThirdsOfTheOriginalSize() {
ImmutableList<MediaCodecInfo> supportedEncoders = EncoderUtil.getSupportedEncoders(MIME_TYPE);
ImmutableList<MediaCodecInfo> supportedEncoders = EncoderUtil.getSupportedEncoders(VIDEO_H264);
MediaCodecInfo encoderInfo = supportedEncoders.get(0);
@Nullable
Size closestSupportedResolution =
EncoderUtil.getSupportedResolution(encoderInfo, MIME_TYPE, 2880, 1620);
EncoderUtil.getSupportedResolution(encoderInfo, VIDEO_H264, 2880, 1620);
assertThat(closestSupportedResolution).isNotNull();
assertThat(closestSupportedResolution.getWidth()).isEqualTo(1920);
@ -138,12 +136,12 @@ public class EncoderUtilTest {
@Test
public void getSupportedResolution_findsHalfOfTheOriginalSize() {
ImmutableList<MediaCodecInfo> supportedEncoders = EncoderUtil.getSupportedEncoders(MIME_TYPE);
ImmutableList<MediaCodecInfo> supportedEncoders = EncoderUtil.getSupportedEncoders(VIDEO_H264);
MediaCodecInfo encoderInfo = supportedEncoders.get(0);
@Nullable
Size closestSupportedResolution =
EncoderUtil.getSupportedResolution(encoderInfo, MIME_TYPE, 2160, 3840);
EncoderUtil.getSupportedResolution(encoderInfo, VIDEO_H264, 2160, 3840);
assertThat(closestSupportedResolution).isNotNull();
assertThat(closestSupportedResolution.getWidth()).isEqualTo(1080);
@ -152,12 +150,12 @@ public class EncoderUtilTest {
@Test
public void getSupportedResolution_findsOneQuarterOfTheOriginalSize() {
ImmutableList<MediaCodecInfo> supportedEncoders = EncoderUtil.getSupportedEncoders(MIME_TYPE);
ImmutableList<MediaCodecInfo> supportedEncoders = EncoderUtil.getSupportedEncoders(VIDEO_H264);
MediaCodecInfo encoderInfo = supportedEncoders.get(0);
@Nullable
Size closestSupportedResolution =
EncoderUtil.getSupportedResolution(encoderInfo, MIME_TYPE, 7680, 4320);
EncoderUtil.getSupportedResolution(encoderInfo, VIDEO_H264, 7680, 4320);
assertThat(closestSupportedResolution).isNotNull();
assertThat(closestSupportedResolution.getWidth()).isEqualTo(1920);
@ -166,14 +164,14 @@ public class EncoderUtilTest {
@Test
public void getSupportedResolution_requestedReallyLarge_matchesAspectRatio() {
ImmutableList<MediaCodecInfo> supportedEncoders = EncoderUtil.getSupportedEncoders(MIME_TYPE);
ImmutableList<MediaCodecInfo> supportedEncoders = EncoderUtil.getSupportedEncoders(VIDEO_H264);
MediaCodecInfo encoderInfo = supportedEncoders.get(0);
double aspectRatio = 1.5;
@Nullable
Size closestSupportedResolution =
EncoderUtil.getSupportedResolution(
encoderInfo, MIME_TYPE, (int) (aspectRatio * 5000), 5000);
encoderInfo, VIDEO_H264, (int) (aspectRatio * 5000), 5000);
assertThat(closestSupportedResolution).isNotNull();
assertThat(
@ -193,7 +191,7 @@ public class EncoderUtilTest {
// support HDR.
assertThat(
EncoderUtil.getSupportedEncodersForHdrEditing(
MIME_TYPE,
VIDEO_H264,
new ColorInfo.Builder()
.setColorSpace(C.COLOR_SPACE_BT2020)
.setColorRange(C.COLOR_RANGE_FULL)