diff --git a/library/transformer/src/test/java/com/google/android/exoplayer2/transformer/EncoderUtilTest.java b/library/transformer/src/test/java/com/google/android/exoplayer2/transformer/EncoderUtilTest.java
index 5304c4f409..98c1b420ce 100644
--- a/library/transformer/src/test/java/com/google/android/exoplayer2/transformer/EncoderUtilTest.java
+++ b/library/transformer/src/test/java/com/google/android/exoplayer2/transformer/EncoderUtilTest.java
@@ -36,7 +36,13 @@ import org.robolectric.shadows.MediaCodecInfoBuilder;
import org.robolectric.shadows.ShadowMediaCodec;
import org.robolectric.shadows.ShadowMediaCodecList;
-/** Unit test for {@link EncoderUtil}. */
+/**
+ * Unit test for {@link EncoderUtil}.
+ *
+ *
See {@link
+ * com.google.android.exoplayer2.mediacodec.MediaCodecUtil#maxH264DecodableFrameSize()} for
+ * information on how MediaCodec determines frame sizes.
+ */
@RunWith(AndroidJUnit4.class)
public class EncoderUtilTest {
private static final String MIME_TYPE = MimeTypes.VIDEO_H264;
@@ -102,7 +108,8 @@ public class EncoderUtilTest {
}
@Test
- public void getSupportedResolution_withWidthTooBig_findsTwoThirdsOfTheOriginalSize() {
+ public void getSupportedResolution_findsThreeQuartersOfTheOriginalSize() {
+ // The supported resolution will try to match the aspect ratio where possible.
ImmutableList supportedEncoders = EncoderUtil.getSupportedEncoders(MIME_TYPE);
MediaCodecInfo encoderInfo = supportedEncoders.get(0);
@@ -116,19 +123,33 @@ public class EncoderUtilTest {
}
@Test
- public void getSupportedResolution_withWidthTooBig2_findsHalfOfTheOriginalSize() {
+ public void getSupportedResolution_findsTwoThirdsOfTheOriginalSize() {
ImmutableList supportedEncoders = EncoderUtil.getSupportedEncoders(MIME_TYPE);
MediaCodecInfo encoderInfo = supportedEncoders.get(0);
@Nullable
Size closestSupportedResolution =
- EncoderUtil.getSupportedResolution(encoderInfo, MIME_TYPE, 3840, 2160);
+ EncoderUtil.getSupportedResolution(encoderInfo, MIME_TYPE, 2880, 1620);
assertThat(closestSupportedResolution).isNotNull();
assertThat(closestSupportedResolution.getWidth()).isEqualTo(1920);
assertThat(closestSupportedResolution.getHeight()).isEqualTo(1080);
}
+ @Test
+ public void getSupportedResolution_findsHalfOfTheOriginalSize() {
+ ImmutableList supportedEncoders = EncoderUtil.getSupportedEncoders(MIME_TYPE);
+ MediaCodecInfo encoderInfo = supportedEncoders.get(0);
+
+ @Nullable
+ Size closestSupportedResolution =
+ EncoderUtil.getSupportedResolution(encoderInfo, MIME_TYPE, 2160, 3840);
+
+ assertThat(closestSupportedResolution).isNotNull();
+ assertThat(closestSupportedResolution.getWidth()).isEqualTo(1080);
+ assertThat(closestSupportedResolution.getHeight()).isEqualTo(1920);
+ }
+
/**
* @see EncoderUtil#getSupportedEncoderNamesForHdrEditing(String, ColorInfo)
*/