From 4dcb9b66e12e9895cb7e08ae83db723788c47735 Mon Sep 17 00:00:00 2001 From: huangdarwin Date: Tue, 15 Mar 2022 18:48:25 +0000 Subject: [PATCH] Transformer: Use Size for output dimensions. Use android.util.Size, whose naming is much easier to understand than Pair, in both FrameProcessor and EncoderUtil. PiperOrigin-RevId: 434813986 --- .../FrameEditorDataProcessingTest.java | 9 ++--- .../transformer/AdvancedFrameProcessor.java | 6 +-- .../transformer/DefaultEncoderFactory.java | 16 ++++---- .../exoplayer2/transformer/EncoderUtil.java | 18 ++++----- .../ExternalCopyFrameProcessor.java | 6 +-- .../transformer/GlFrameProcessor.java | 7 ++-- .../transformer/ScaleToFitFrameProcessor.java | 6 +-- .../VideoTranscodingSamplePipeline.java | 8 ++-- .../AdvancedFrameProcessorTest.java | 14 +++---- .../transformer/EncoderUtilTest.java | 22 ++++++----- .../ScaleToFitFrameProcessorTest.java | 38 +++++++++---------- 11 files changed, 77 insertions(+), 73 deletions(-) diff --git a/library/transformer/src/androidTest/java/com/google/android/exoplayer2/transformer/FrameEditorDataProcessingTest.java b/library/transformer/src/androidTest/java/com/google/android/exoplayer2/transformer/FrameEditorDataProcessingTest.java index dc2e7fa24d..8ecfe549ef 100644 --- a/library/transformer/src/androidTest/java/com/google/android/exoplayer2/transformer/FrameEditorDataProcessingTest.java +++ b/library/transformer/src/androidTest/java/com/google/android/exoplayer2/transformer/FrameEditorDataProcessingTest.java @@ -36,7 +36,7 @@ import android.media.ImageReader; import android.media.MediaCodec; import android.media.MediaExtractor; import android.media.MediaFormat; -import android.util.Pair; +import android.util.Size; import androidx.annotation.Nullable; import androidx.test.ext.junit.runners.AndroidJUnit4; import com.google.android.exoplayer2.C; @@ -244,10 +244,9 @@ public final class FrameEditorDataProcessingTest { int inputWidth = checkNotNull(mediaFormat).getInteger(MediaFormat.KEY_WIDTH); int inputHeight = mediaFormat.getInteger(MediaFormat.KEY_HEIGHT); - Pair outputDimensions = - glFrameProcessor.configureOutputDimensions(inputWidth, inputHeight); - int outputWidth = outputDimensions.first; - int outputHeight = outputDimensions.second; + Size outputDimensions = glFrameProcessor.configureOutputDimensions(inputWidth, inputHeight); + int outputWidth = outputDimensions.getWidth(); + int outputHeight = outputDimensions.getHeight(); frameEditorOutputImageReader = ImageReader.newInstance( outputWidth, outputHeight, PixelFormat.RGBA_8888, /* maxImages= */ 1); diff --git a/library/transformer/src/main/java/com/google/android/exoplayer2/transformer/AdvancedFrameProcessor.java b/library/transformer/src/main/java/com/google/android/exoplayer2/transformer/AdvancedFrameProcessor.java index 7d89981652..29f7279941 100644 --- a/library/transformer/src/main/java/com/google/android/exoplayer2/transformer/AdvancedFrameProcessor.java +++ b/library/transformer/src/main/java/com/google/android/exoplayer2/transformer/AdvancedFrameProcessor.java @@ -20,7 +20,7 @@ import static com.google.android.exoplayer2.util.Assertions.checkStateNotNull; import android.content.Context; import android.graphics.Matrix; import android.opengl.GLES20; -import android.util.Pair; +import android.util.Size; import com.google.android.exoplayer2.util.GlProgram; import com.google.android.exoplayer2.util.GlUtil; import java.io.IOException; @@ -101,8 +101,8 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull; } @Override - public Pair configureOutputDimensions(int inputWidth, int inputHeight) { - return new Pair<>(inputWidth, inputHeight); + public Size configureOutputDimensions(int inputWidth, int inputHeight) { + return new Size(inputWidth, inputHeight); } @Override diff --git a/library/transformer/src/main/java/com/google/android/exoplayer2/transformer/DefaultEncoderFactory.java b/library/transformer/src/main/java/com/google/android/exoplayer2/transformer/DefaultEncoderFactory.java index 0a1c6ca5c1..4c00c058a2 100644 --- a/library/transformer/src/main/java/com/google/android/exoplayer2/transformer/DefaultEncoderFactory.java +++ b/library/transformer/src/main/java/com/google/android/exoplayer2/transformer/DefaultEncoderFactory.java @@ -26,6 +26,7 @@ import static java.lang.Math.abs; import android.media.MediaCodecInfo; import android.media.MediaFormat; import android.util.Pair; +import android.util.Size; import androidx.annotation.Nullable; import com.google.android.exoplayer2.Format; import com.google.android.exoplayer2.mediacodec.MediaCodecUtil; @@ -231,7 +232,7 @@ public final class DefaultEncoderFactory implements Codec.EncoderFactory { encodersForMimeType, /* cost= */ (encoderInfo) -> { @Nullable - Pair closestSupportedResolution = + Size closestSupportedResolution = EncoderUtil.getSupportedResolution( encoderInfo, mimeType, requestedFormat.width, requestedFormat.height); if (closestSupportedResolution == null) { @@ -240,13 +241,14 @@ public final class DefaultEncoderFactory implements Codec.EncoderFactory { } return abs( requestedFormat.width * requestedFormat.height - - closestSupportedResolution.first * closestSupportedResolution.second); + - closestSupportedResolution.getWidth() + * closestSupportedResolution.getHeight()); }); if (filteredEncoders.isEmpty()) { return null; } // The supported resolution is the same for all remaining encoders. - Pair finalResolution = + Size finalResolution = checkNotNull( EncoderUtil.getSupportedResolution( filteredEncoders.get(0), mimeType, requestedFormat.width, requestedFormat.height)); @@ -254,8 +256,8 @@ public final class DefaultEncoderFactory implements Codec.EncoderFactory { int requestedBitrate = requestedFormat.averageBitrate == Format.NO_VALUE ? getSuggestedBitrate( - /* width= */ finalResolution.first, - /* height= */ finalResolution.second, + finalResolution.getWidth(), + finalResolution.getHeight(), requestedFormat.frameRate == Format.NO_VALUE ? DEFAULT_FRAME_RATE : requestedFormat.frameRate) @@ -289,8 +291,8 @@ public final class DefaultEncoderFactory implements Codec.EncoderFactory { .buildUpon() .setSampleMimeType(mimeType) .setCodecs(codecs) - .setWidth(finalResolution.first) - .setHeight(finalResolution.second) + .setWidth(finalResolution.getWidth()) + .setHeight(finalResolution.getHeight()) .setFrameRate( requestedFormat.frameRate != Format.NO_VALUE ? requestedFormat.frameRate diff --git a/library/transformer/src/main/java/com/google/android/exoplayer2/transformer/EncoderUtil.java b/library/transformer/src/main/java/com/google/android/exoplayer2/transformer/EncoderUtil.java index 661caec25f..0823760852 100644 --- a/library/transformer/src/main/java/com/google/android/exoplayer2/transformer/EncoderUtil.java +++ b/library/transformer/src/main/java/com/google/android/exoplayer2/transformer/EncoderUtil.java @@ -22,7 +22,7 @@ import static java.lang.Math.round; import android.media.MediaCodec; import android.media.MediaCodecInfo; import android.media.MediaCodecList; -import android.util.Pair; +import android.util.Size; import androidx.annotation.DoNotInline; import androidx.annotation.Nullable; import androidx.annotation.RequiresApi; @@ -78,10 +78,10 @@ public final class EncoderUtil { * @param mimeType The output MIME type. * @param width The original width. * @param height The original height. - * @return A {@link Pair} of width and height, or {@code null} if unable to find a fix. + * @return A {@link Size supported resolution}, or {@code null} if unable to find a fallback. */ @Nullable - public static Pair getSupportedResolution( + public static Size getSupportedResolution( MediaCodecInfo encoderInfo, String mimeType, int width, int height) { MediaCodecInfo.VideoCapabilities videoEncoderCapabilities = encoderInfo.getCapabilitiesForType(mimeType).getVideoCapabilities(); @@ -92,28 +92,28 @@ public final class EncoderUtil { width = alignResolution(width, widthAlignment); height = alignResolution(height, heightAlignment); if (videoEncoderCapabilities.isSizeSupported(width, height)) { - return Pair.create(width, height); + return new Size(width, height); } // Try three-fourths (e.g. 1440 -> 1080). int newWidth = alignResolution(width * 3 / 4, widthAlignment); int newHeight = alignResolution(height * 3 / 4, heightAlignment); if (videoEncoderCapabilities.isSizeSupported(newWidth, newHeight)) { - return Pair.create(newWidth, newHeight); + return new Size(newWidth, newHeight); } // Try two-thirds (e.g. 4k -> 1440). newWidth = alignResolution(width * 2 / 3, widthAlignment); newHeight = alignResolution(height * 2 / 3, heightAlignment); if (videoEncoderCapabilities.isSizeSupported(newWidth, newHeight)) { - return Pair.create(newWidth, newHeight); + return new Size(newWidth, newHeight); } // Try half (e.g. 4k -> 1080). newWidth = alignResolution(width / 2, widthAlignment); newHeight = alignResolution(height / 2, heightAlignment); if (videoEncoderCapabilities.isSizeSupported(newWidth, newHeight)) { - return Pair.create(newWidth, newHeight); + return new Size(newWidth, newHeight); } // Fix frame being too wide or too tall. @@ -125,9 +125,7 @@ public final class EncoderUtil { height = alignResolution(adjustedHeight, heightAlignment); } - return videoEncoderCapabilities.isSizeSupported(width, height) - ? Pair.create(width, height) - : null; + return videoEncoderCapabilities.isSizeSupported(width, height) ? new Size(width, height) : null; } /** diff --git a/library/transformer/src/main/java/com/google/android/exoplayer2/transformer/ExternalCopyFrameProcessor.java b/library/transformer/src/main/java/com/google/android/exoplayer2/transformer/ExternalCopyFrameProcessor.java index 2e5bb11bad..2b6f89ef40 100644 --- a/library/transformer/src/main/java/com/google/android/exoplayer2/transformer/ExternalCopyFrameProcessor.java +++ b/library/transformer/src/main/java/com/google/android/exoplayer2/transformer/ExternalCopyFrameProcessor.java @@ -19,7 +19,7 @@ import static com.google.android.exoplayer2.util.Assertions.checkStateNotNull; import android.content.Context; import android.opengl.GLES20; -import android.util.Pair; +import android.util.Size; import com.google.android.exoplayer2.util.GlProgram; import com.google.android.exoplayer2.util.GlUtil; import java.io.IOException; @@ -59,8 +59,8 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull; } @Override - public Pair configureOutputDimensions(int inputWidth, int inputHeight) { - return new Pair<>(inputWidth, inputHeight); + public Size configureOutputDimensions(int inputWidth, int inputHeight) { + return new Size(inputWidth, inputHeight); } @Override diff --git a/library/transformer/src/main/java/com/google/android/exoplayer2/transformer/GlFrameProcessor.java b/library/transformer/src/main/java/com/google/android/exoplayer2/transformer/GlFrameProcessor.java index d21d697d23..5146f608fd 100644 --- a/library/transformer/src/main/java/com/google/android/exoplayer2/transformer/GlFrameProcessor.java +++ b/library/transformer/src/main/java/com/google/android/exoplayer2/transformer/GlFrameProcessor.java @@ -15,7 +15,7 @@ */ package com.google.android.exoplayer2.transformer; -import android.util.Pair; +import android.util.Size; import java.io.IOException; /** @@ -34,11 +34,12 @@ import java.io.IOException; /* package */ interface GlFrameProcessor { /** - * Returns the output dimensions of frames processed through {@link #updateProgramAndDraw(long)}. + * Returns the output {@link Size dimensions} of frames processed through {@link + * #updateProgramAndDraw(long)}. * *

This method must be called before {@link #initialize(int)} and does not use OpenGL. */ - Pair configureOutputDimensions(int inputWidth, int inputHeight); + Size configureOutputDimensions(int inputWidth, int inputHeight); /** * Does any initialization necessary such as loading and compiling a GLSL shader programs. diff --git a/library/transformer/src/main/java/com/google/android/exoplayer2/transformer/ScaleToFitFrameProcessor.java b/library/transformer/src/main/java/com/google/android/exoplayer2/transformer/ScaleToFitFrameProcessor.java index ca44d71596..ddf88460f3 100644 --- a/library/transformer/src/main/java/com/google/android/exoplayer2/transformer/ScaleToFitFrameProcessor.java +++ b/library/transformer/src/main/java/com/google/android/exoplayer2/transformer/ScaleToFitFrameProcessor.java @@ -22,7 +22,7 @@ import static java.lang.Math.min; import android.content.Context; import android.graphics.Matrix; -import android.util.Pair; +import android.util.Size; import com.google.android.exoplayer2.C; import com.google.android.exoplayer2.Format; import com.google.android.exoplayer2.util.GlUtil; @@ -104,7 +104,7 @@ import org.checkerframework.checker.nullness.qual.RequiresNonNull; @Override @EnsuresNonNull("adjustedTransformationMatrix") - public Pair configureOutputDimensions(int inputWidth, int inputHeight) { + public Size configureOutputDimensions(int inputWidth, int inputHeight) { this.inputWidth = inputWidth; this.inputHeight = inputHeight; adjustedTransformationMatrix = new Matrix(transformationMatrix); @@ -172,7 +172,7 @@ import org.checkerframework.checker.nullness.qual.RequiresNonNull; outputHeight = displayHeight; } - return new Pair<>(outputWidth, outputHeight); + return new Size(outputWidth, outputHeight); } @Override diff --git a/library/transformer/src/main/java/com/google/android/exoplayer2/transformer/VideoTranscodingSamplePipeline.java b/library/transformer/src/main/java/com/google/android/exoplayer2/transformer/VideoTranscodingSamplePipeline.java index 4d119a91fe..554a2f0230 100644 --- a/library/transformer/src/main/java/com/google/android/exoplayer2/transformer/VideoTranscodingSamplePipeline.java +++ b/library/transformer/src/main/java/com/google/android/exoplayer2/transformer/VideoTranscodingSamplePipeline.java @@ -22,7 +22,7 @@ import static com.google.android.exoplayer2.util.Util.SDK_INT; import android.content.Context; import android.media.MediaCodec; import android.media.MediaFormat; -import android.util.Pair; +import android.util.Size; import androidx.annotation.Nullable; import androidx.annotation.RequiresApi; import com.google.android.exoplayer2.Format; @@ -73,14 +73,14 @@ import org.checkerframework.dataflow.qual.Pure; context, transformationRequest.transformationMatrix, transformationRequest.outputHeight); - Pair requestedEncoderDimensions = + Size requestedEncoderDimensions = scaleToFitFrameProcessor.configureOutputDimensions(decodedWidth, decodedHeight); outputRotationDegrees = scaleToFitFrameProcessor.getOutputRotationDegrees(); Format requestedEncoderFormat = new Format.Builder() - .setWidth(requestedEncoderDimensions.first) - .setHeight(requestedEncoderDimensions.second) + .setWidth(requestedEncoderDimensions.getWidth()) + .setHeight(requestedEncoderDimensions.getHeight()) .setRotationDegrees(0) .setSampleMimeType( transformationRequest.videoMimeType != null diff --git a/library/transformer/src/test/java/com/google/android/exoplayer2/transformer/AdvancedFrameProcessorTest.java b/library/transformer/src/test/java/com/google/android/exoplayer2/transformer/AdvancedFrameProcessorTest.java index 77bb7a9cf6..4dc09a8c03 100644 --- a/library/transformer/src/test/java/com/google/android/exoplayer2/transformer/AdvancedFrameProcessorTest.java +++ b/library/transformer/src/test/java/com/google/android/exoplayer2/transformer/AdvancedFrameProcessorTest.java @@ -19,7 +19,7 @@ import static androidx.test.core.app.ApplicationProvider.getApplicationContext; import static com.google.common.truth.Truth.assertThat; import android.graphics.Matrix; -import android.util.Pair; +import android.util.Size; import androidx.test.ext.junit.runners.AndroidJUnit4; import org.junit.Test; import org.junit.runner.RunWith; @@ -40,11 +40,11 @@ public final class AdvancedFrameProcessorTest { AdvancedFrameProcessor advancedFrameProcessor = new AdvancedFrameProcessor(getApplicationContext(), identityMatrix); - Pair outputDimensions = + Size outputDimensions = advancedFrameProcessor.configureOutputDimensions(inputWidth, inputHeight); - assertThat(outputDimensions.first).isEqualTo(inputWidth); - assertThat(outputDimensions.second).isEqualTo(inputHeight); + assertThat(outputDimensions.getWidth()).isEqualTo(inputWidth); + assertThat(outputDimensions.getHeight()).isEqualTo(inputHeight); } @Test @@ -57,10 +57,10 @@ public final class AdvancedFrameProcessorTest { AdvancedFrameProcessor advancedFrameProcessor = new AdvancedFrameProcessor(getApplicationContext(), transformationMatrix); - Pair outputDimensions = + Size outputDimensions = advancedFrameProcessor.configureOutputDimensions(inputWidth, inputHeight); - assertThat(outputDimensions.first).isEqualTo(inputWidth); - assertThat(outputDimensions.second).isEqualTo(inputHeight); + assertThat(outputDimensions.getWidth()).isEqualTo(inputWidth); + assertThat(outputDimensions.getHeight()).isEqualTo(inputHeight); } } 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 e06d0c7627..022e4cbefc 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 @@ -20,7 +20,7 @@ import static com.google.common.truth.Truth.assertThat; import android.media.MediaCodecInfo; import android.media.MediaFormat; -import android.util.Pair; +import android.util.Size; import androidx.annotation.Nullable; import androidx.test.ext.junit.runners.AndroidJUnit4; import com.google.android.exoplayer2.util.MimeTypes; @@ -67,11 +67,12 @@ public class EncoderUtilTest { MediaCodecInfo encoderInfo = supportedEncoders.get(0); @Nullable - Pair closestSupportedResolution = + Size closestSupportedResolution = EncoderUtil.getSupportedResolution(encoderInfo, MIME_TYPE, 1920, 1080); assertThat(closestSupportedResolution).isNotNull(); - assertThat(closestSupportedResolution).isEqualTo(Pair.create(1920, 1080)); + assertThat(closestSupportedResolution.getWidth()).isEqualTo(1920); + assertThat(closestSupportedResolution.getHeight()).isEqualTo(1080); } @Test @@ -80,11 +81,12 @@ public class EncoderUtilTest { MediaCodecInfo encoderInfo = supportedEncoders.get(0); @Nullable - Pair closestSupportedResolution = + Size closestSupportedResolution = EncoderUtil.getSupportedResolution(encoderInfo, MIME_TYPE, 1919, 1081); assertThat(closestSupportedResolution).isNotNull(); - assertThat(closestSupportedResolution).isEqualTo(Pair.create(1920, 1080)); + assertThat(closestSupportedResolution.getWidth()).isEqualTo(1920); + assertThat(closestSupportedResolution.getHeight()).isEqualTo(1080); } @Test @@ -93,11 +95,12 @@ public class EncoderUtilTest { MediaCodecInfo encoderInfo = supportedEncoders.get(0); @Nullable - Pair closestSupportedResolution = + Size closestSupportedResolution = EncoderUtil.getSupportedResolution(encoderInfo, MIME_TYPE, 1920, 1920); assertThat(closestSupportedResolution).isNotNull(); - assertThat(closestSupportedResolution).isEqualTo(Pair.create(1440, 1440)); + assertThat(closestSupportedResolution.getWidth()).isEqualTo(1440); + assertThat(closestSupportedResolution.getHeight()).isEqualTo(1440); } @Test @@ -106,10 +109,11 @@ public class EncoderUtilTest { MediaCodecInfo encoderInfo = supportedEncoders.get(0); @Nullable - Pair closestSupportedResolution = + Size closestSupportedResolution = EncoderUtil.getSupportedResolution(encoderInfo, MIME_TYPE, 3840, 2160); assertThat(closestSupportedResolution).isNotNull(); - assertThat(closestSupportedResolution).isEqualTo(Pair.create(1920, 1080)); + assertThat(closestSupportedResolution.getWidth()).isEqualTo(1920); + assertThat(closestSupportedResolution.getHeight()).isEqualTo(1080); } } diff --git a/library/transformer/src/test/java/com/google/android/exoplayer2/transformer/ScaleToFitFrameProcessorTest.java b/library/transformer/src/test/java/com/google/android/exoplayer2/transformer/ScaleToFitFrameProcessorTest.java index 183a275005..491d01752c 100644 --- a/library/transformer/src/test/java/com/google/android/exoplayer2/transformer/ScaleToFitFrameProcessorTest.java +++ b/library/transformer/src/test/java/com/google/android/exoplayer2/transformer/ScaleToFitFrameProcessorTest.java @@ -20,7 +20,7 @@ import static com.google.common.truth.Truth.assertThat; import static org.junit.Assert.assertThrows; import android.graphics.Matrix; -import android.util.Pair; +import android.util.Size; import androidx.test.ext.junit.runners.AndroidJUnit4; import com.google.android.exoplayer2.C; import org.junit.Test; @@ -43,13 +43,13 @@ public final class ScaleToFitFrameProcessorTest { ScaleToFitFrameProcessor scaleToFitFrameProcessor = new ScaleToFitFrameProcessor(getApplicationContext(), identityMatrix, C.LENGTH_UNSET); - Pair outputDimensions = + Size outputDimensions = scaleToFitFrameProcessor.configureOutputDimensions(inputWidth, inputHeight); assertThat(scaleToFitFrameProcessor.getOutputRotationDegrees()).isEqualTo(0); assertThat(scaleToFitFrameProcessor.shouldProcess()).isFalse(); - assertThat(outputDimensions.first).isEqualTo(inputWidth); - assertThat(outputDimensions.second).isEqualTo(inputHeight); + assertThat(outputDimensions.getWidth()).isEqualTo(inputWidth); + assertThat(outputDimensions.getHeight()).isEqualTo(inputHeight); } @Test @@ -83,13 +83,13 @@ public final class ScaleToFitFrameProcessorTest { ScaleToFitFrameProcessor scaleToFitFrameProcessor = new ScaleToFitFrameProcessor(getApplicationContext(), scaleNarrowMatrix, C.LENGTH_UNSET); - Pair outputDimensions = + Size outputDimensions = scaleToFitFrameProcessor.configureOutputDimensions(inputWidth, inputHeight); assertThat(scaleToFitFrameProcessor.getOutputRotationDegrees()).isEqualTo(90); assertThat(scaleToFitFrameProcessor.shouldProcess()).isTrue(); - assertThat(outputDimensions.first).isEqualTo(inputHeight); - assertThat(outputDimensions.second).isEqualTo(Math.round(inputWidth * .5f)); + assertThat(outputDimensions.getWidth()).isEqualTo(inputHeight); + assertThat(outputDimensions.getHeight()).isEqualTo(Math.round(inputWidth * .5f)); } @Test @@ -101,13 +101,13 @@ public final class ScaleToFitFrameProcessorTest { ScaleToFitFrameProcessor scaleToFitFrameProcessor = new ScaleToFitFrameProcessor(getApplicationContext(), scaleNarrowMatrix, C.LENGTH_UNSET); - Pair outputDimensions = + Size outputDimensions = scaleToFitFrameProcessor.configureOutputDimensions(inputWidth, inputHeight); assertThat(scaleToFitFrameProcessor.getOutputRotationDegrees()).isEqualTo(0); assertThat(scaleToFitFrameProcessor.shouldProcess()).isTrue(); - assertThat(outputDimensions.first).isEqualTo(inputWidth * 2); - assertThat(outputDimensions.second).isEqualTo(inputHeight); + assertThat(outputDimensions.getWidth()).isEqualTo(inputWidth * 2); + assertThat(outputDimensions.getHeight()).isEqualTo(inputHeight); } @Test @@ -119,13 +119,13 @@ public final class ScaleToFitFrameProcessorTest { ScaleToFitFrameProcessor scaleToFitFrameProcessor = new ScaleToFitFrameProcessor(getApplicationContext(), rotate90Matrix, C.LENGTH_UNSET); - Pair outputDimensions = + Size outputDimensions = scaleToFitFrameProcessor.configureOutputDimensions(inputWidth, inputHeight); assertThat(scaleToFitFrameProcessor.getOutputRotationDegrees()).isEqualTo(90); assertThat(scaleToFitFrameProcessor.shouldProcess()).isTrue(); - assertThat(outputDimensions.first).isEqualTo(inputWidth); - assertThat(outputDimensions.second).isEqualTo(inputHeight); + assertThat(outputDimensions.getWidth()).isEqualTo(inputWidth); + assertThat(outputDimensions.getHeight()).isEqualTo(inputHeight); } @Test @@ -138,13 +138,13 @@ public final class ScaleToFitFrameProcessorTest { new ScaleToFitFrameProcessor(getApplicationContext(), rotate45Matrix, C.LENGTH_UNSET); long expectedOutputWidthHeight = 247; - Pair outputDimensions = + Size outputDimensions = scaleToFitFrameProcessor.configureOutputDimensions(inputWidth, inputHeight); assertThat(scaleToFitFrameProcessor.getOutputRotationDegrees()).isEqualTo(0); assertThat(scaleToFitFrameProcessor.shouldProcess()).isTrue(); - assertThat(outputDimensions.first).isEqualTo(expectedOutputWidthHeight); - assertThat(outputDimensions.second).isEqualTo(expectedOutputWidthHeight); + assertThat(outputDimensions.getWidth()).isEqualTo(expectedOutputWidthHeight); + assertThat(outputDimensions.getHeight()).isEqualTo(expectedOutputWidthHeight); } @Test @@ -156,12 +156,12 @@ public final class ScaleToFitFrameProcessorTest { ScaleToFitFrameProcessor scaleToFitFrameProcessor = new ScaleToFitFrameProcessor(getApplicationContext(), identityMatrix, requestedHeight); - Pair outputDimensions = + Size outputDimensions = scaleToFitFrameProcessor.configureOutputDimensions(inputWidth, inputHeight); assertThat(scaleToFitFrameProcessor.getOutputRotationDegrees()).isEqualTo(0); assertThat(scaleToFitFrameProcessor.shouldProcess()).isTrue(); - assertThat(outputDimensions.first).isEqualTo(requestedHeight * inputWidth / inputHeight); - assertThat(outputDimensions.second).isEqualTo(requestedHeight); + assertThat(outputDimensions.getWidth()).isEqualTo(requestedHeight * inputWidth / inputHeight); + assertThat(outputDimensions.getHeight()).isEqualTo(requestedHeight); } }