From b994f8bfa06c82fbfe96044b986cd7b8d243acdd Mon Sep 17 00:00:00 2001 From: Googler Date: Mon, 25 Jul 2022 23:39:59 +0000 Subject: [PATCH] Replace Size with Pair in effects. Size requires API 21. Using Pair instead will allow effects to be used from API 18 during previewing once they are moved out of transformer. PiperOrigin-RevId: 463206474 --- .../BitmapOverlayProcessor.java | 6 +-- .../PeriodicVignetteProcessor.java | 6 +-- .../ContrastProcessorPixelTest.java | 32 ++++++------ .../exoplayer2/transformer/CropPixelTest.java | 20 ++++---- .../GlEffectsFrameProcessorPixelTest.java | 6 +-- .../transformer/PresentationPixelTest.java | 51 +++++++++++-------- .../transformer/ContrastProcessor.java | 6 +-- .../android/exoplayer2/transformer/Crop.java | 8 +-- ...lMatrixTransformationProcessorWrapper.java | 17 ++++--- .../transformer/GlMatrixTransformation.java | 8 +-- .../MatrixTransformationProcessor.java | 4 +- .../exoplayer2/transformer/MatrixUtils.java | 13 +++-- .../exoplayer2/transformer/Presentation.java | 6 +-- .../transformer/ScaleToFitTransformation.java | 8 +-- .../SingleFrameGlTextureProcessor.java | 16 +++--- .../exoplayer2/transformer/CropTest.java | 14 ++--- .../transformer/PresentationTest.java | 26 +++++----- .../ScaleToFitTransformationTest.java | 38 +++++++------- 18 files changed, 146 insertions(+), 139 deletions(-) diff --git a/demos/transformer/src/main/java/com/google/android/exoplayer2/transformerdemo/BitmapOverlayProcessor.java b/demos/transformer/src/main/java/com/google/android/exoplayer2/transformerdemo/BitmapOverlayProcessor.java index 95a43cc56a..c88d850680 100644 --- a/demos/transformer/src/main/java/com/google/android/exoplayer2/transformerdemo/BitmapOverlayProcessor.java +++ b/demos/transformer/src/main/java/com/google/android/exoplayer2/transformerdemo/BitmapOverlayProcessor.java @@ -28,7 +28,7 @@ import android.graphics.Paint; import android.graphics.drawable.BitmapDrawable; import android.opengl.GLES20; import android.opengl.GLUtils; -import android.util.Size; +import android.util.Pair; import com.google.android.exoplayer2.C; import com.google.android.exoplayer2.transformer.FrameProcessingException; import com.google.android.exoplayer2.transformer.SingleFrameGlTextureProcessor; @@ -111,7 +111,7 @@ import java.util.Locale; } @Override - public Size configure(int inputWidth, int inputHeight) { + public Pair configure(int inputWidth, int inputHeight) { if (inputWidth > inputHeight) { bitmapScaleX = inputWidth / (float) inputHeight; bitmapScaleY = 1f; @@ -123,7 +123,7 @@ import java.util.Locale; glProgram.setFloatUniform("uScaleX", bitmapScaleX); glProgram.setFloatUniform("uScaleY", bitmapScaleY); - return new Size(inputWidth, inputHeight); + return Pair.create(inputWidth, inputHeight); } @Override diff --git a/demos/transformer/src/main/java/com/google/android/exoplayer2/transformerdemo/PeriodicVignetteProcessor.java b/demos/transformer/src/main/java/com/google/android/exoplayer2/transformerdemo/PeriodicVignetteProcessor.java index cccdcf4dce..f3badb1076 100644 --- a/demos/transformer/src/main/java/com/google/android/exoplayer2/transformerdemo/PeriodicVignetteProcessor.java +++ b/demos/transformer/src/main/java/com/google/android/exoplayer2/transformerdemo/PeriodicVignetteProcessor.java @@ -19,7 +19,7 @@ import static com.google.android.exoplayer2.util.Assertions.checkArgument; import android.content.Context; import android.opengl.GLES20; -import android.util.Size; +import android.util.Pair; import com.google.android.exoplayer2.transformer.FrameProcessingException; import com.google.android.exoplayer2.transformer.SingleFrameGlTextureProcessor; import com.google.android.exoplayer2.util.GlProgram; @@ -90,8 +90,8 @@ import java.io.IOException; } @Override - public Size configure(int inputWidth, int inputHeight) { - return new Size(inputWidth, inputHeight); + public Pair configure(int inputWidth, int inputHeight) { + return Pair.create(inputWidth, inputHeight); } @Override diff --git a/library/transformer/src/androidTest/java/com/google/android/exoplayer2/transformer/ContrastProcessorPixelTest.java b/library/transformer/src/androidTest/java/com/google/android/exoplayer2/transformer/ContrastProcessorPixelTest.java index 287f6ab268..b7fccabc92 100644 --- a/library/transformer/src/androidTest/java/com/google/android/exoplayer2/transformer/ContrastProcessorPixelTest.java +++ b/library/transformer/src/androidTest/java/com/google/android/exoplayer2/transformer/ContrastProcessorPixelTest.java @@ -27,7 +27,7 @@ import android.graphics.Color; import android.opengl.EGLContext; import android.opengl.EGLDisplay; import android.opengl.EGLSurface; -import android.util.Size; +import android.util.Pair; import androidx.test.ext.junit.runners.AndroidJUnit4; import com.google.android.exoplayer2.util.GlUtil; import org.checkerframework.checker.nullness.qual.MonotonicNonNull; @@ -93,14 +93,14 @@ public class ContrastProcessorPixelTest { String testId = "drawFrame_noContrastChange"; contrastProcessor = new Contrast(/* contrast= */ 0.0f).toGlTextureProcessor(context, /* useHdr= */ false); - Size outputSize = contrastProcessor.configure(inputWidth, inputHeight); - setupOutputTexture(outputSize.getWidth(), outputSize.getHeight()); + Pair outputSize = contrastProcessor.configure(inputWidth, inputHeight); + setupOutputTexture(outputSize.first, outputSize.second); Bitmap expectedBitmap = BitmapTestUtil.readBitmap(EXOPLAYER_LOGO_PNG_ASSET_PATH); contrastProcessor.drawFrame(inputTexId, /* presentationTimeUs = */ 0); Bitmap actualBitmap = BitmapTestUtil.createArgb8888BitmapFromCurrentGlFramebuffer( - outputSize.getWidth(), outputSize.getHeight()); + outputSize.first, outputSize.second); BitmapTestUtil.maybeSaveTestBitmapToCacheDirectory(testId, "actual", actualBitmap); float averagePixelAbsoluteDifference = @@ -114,8 +114,8 @@ public class ContrastProcessorPixelTest { String testId = "drawFrame_minimumContrast"; contrastProcessor = new Contrast(/* contrast= */ -1.0f).toGlTextureProcessor(context, /* useHdr= */ false); - Size outputSize = contrastProcessor.configure(inputWidth, inputHeight); - setupOutputTexture(outputSize.getWidth(), outputSize.getHeight()); + Pair outputSize = contrastProcessor.configure(inputWidth, inputHeight); + setupOutputTexture(outputSize.first, outputSize.second); Bitmap expectedBitmap = BitmapTestUtil.createArgb8888BitmapWithSolidColor( inputWidth, @@ -126,7 +126,7 @@ public class ContrastProcessorPixelTest { contrastProcessor.drawFrame(inputTexId, /* presentationTimeUs = */ 0); Bitmap actualBitmap = BitmapTestUtil.createArgb8888BitmapFromCurrentGlFramebuffer( - outputSize.getWidth(), outputSize.getHeight()); + outputSize.first, outputSize.second); BitmapTestUtil.maybeSaveTestBitmapToCacheDirectory(testId, "actual", actualBitmap); float averagePixelAbsoluteDifference = @@ -141,14 +141,14 @@ public class ContrastProcessorPixelTest { String testId = "drawFrame_decreaseContrast"; contrastProcessor = new Contrast(/* contrast= */ -0.75f).toGlTextureProcessor(context, /* useHdr= */ false); - Size outputSize = contrastProcessor.configure(inputWidth, inputHeight); - setupOutputTexture(outputSize.getWidth(), outputSize.getHeight()); + Pair outputSize = contrastProcessor.configure(inputWidth, inputHeight); + setupOutputTexture(outputSize.first, outputSize.second); Bitmap originalBitmap = BitmapTestUtil.readBitmap(EXOPLAYER_LOGO_PNG_ASSET_PATH); contrastProcessor.drawFrame(inputTexId, /* presentationTimeUs= */ 0); Bitmap actualBitmap = BitmapTestUtil.createArgb8888BitmapFromCurrentGlFramebuffer( - outputSize.getWidth(), outputSize.getHeight()); + outputSize.first, outputSize.second); BitmapTestUtil.maybeSaveTestBitmapToCacheDirectory(testId, "actual", actualBitmap); assertIncreasedOrDecreasedContrast(originalBitmap, actualBitmap, /* increased= */ false); @@ -160,14 +160,14 @@ public class ContrastProcessorPixelTest { String testId = "drawFrame_increaseContrast"; contrastProcessor = new Contrast(/* contrast= */ 0.75f).toGlTextureProcessor(context, /* useHdr= */ false); - Size outputSize = contrastProcessor.configure(inputWidth, inputHeight); - setupOutputTexture(outputSize.getWidth(), outputSize.getHeight()); + Pair outputSize = contrastProcessor.configure(inputWidth, inputHeight); + setupOutputTexture(outputSize.first, outputSize.second); Bitmap originalBitmap = BitmapTestUtil.readBitmap(EXOPLAYER_LOGO_PNG_ASSET_PATH); contrastProcessor.drawFrame(inputTexId, /* presentationTimeUs= */ 0); Bitmap actualBitmap = BitmapTestUtil.createArgb8888BitmapFromCurrentGlFramebuffer( - outputSize.getWidth(), outputSize.getHeight()); + outputSize.first, outputSize.second); BitmapTestUtil.maybeSaveTestBitmapToCacheDirectory(testId, "actual", actualBitmap); assertIncreasedOrDecreasedContrast(originalBitmap, actualBitmap, /* increased= */ true); @@ -178,14 +178,14 @@ public class ContrastProcessorPixelTest { String testId = "drawFrame_maximumContrast"; contrastProcessor = new Contrast(/* contrast= */ 1.0f).toGlTextureProcessor(context, /* useHdr= */ false); - Size outputSize = contrastProcessor.configure(inputWidth, inputHeight); - setupOutputTexture(outputSize.getWidth(), outputSize.getHeight()); + Pair outputSize = contrastProcessor.configure(inputWidth, inputHeight); + setupOutputTexture(outputSize.first, outputSize.second); Bitmap expectedBitmap = BitmapTestUtil.readBitmap(MAXIMUM_CONTRAST_PNG_ASSET_PATH); contrastProcessor.drawFrame(inputTexId, /* presentationTimeUs = */ 0); Bitmap actualBitmap = BitmapTestUtil.createArgb8888BitmapFromCurrentGlFramebuffer( - outputSize.getWidth(), outputSize.getHeight()); + outputSize.first, outputSize.second); BitmapTestUtil.maybeSaveTestBitmapToCacheDirectory(testId, "actual", actualBitmap); float averagePixelAbsoluteDifference = diff --git a/library/transformer/src/androidTest/java/com/google/android/exoplayer2/transformer/CropPixelTest.java b/library/transformer/src/androidTest/java/com/google/android/exoplayer2/transformer/CropPixelTest.java index 4be6334bfd..cd460783b1 100644 --- a/library/transformer/src/androidTest/java/com/google/android/exoplayer2/transformer/CropPixelTest.java +++ b/library/transformer/src/androidTest/java/com/google/android/exoplayer2/transformer/CropPixelTest.java @@ -25,7 +25,7 @@ import android.graphics.Bitmap; import android.opengl.EGLContext; import android.opengl.EGLDisplay; import android.opengl.EGLSurface; -import android.util.Size; +import android.util.Pair; import androidx.test.ext.junit.runners.AndroidJUnit4; import com.google.android.exoplayer2.util.GlUtil; import java.io.IOException; @@ -90,14 +90,14 @@ public final class CropPixelTest { cropTextureProcessor = new Crop(/* left= */ -1, /* right= */ 1, /* bottom= */ -1, /* top= */ 1) .toGlTextureProcessor(context, /* useHdr= */ false); - Size outputSize = cropTextureProcessor.configure(inputWidth, inputHeight); - setupOutputTexture(outputSize.getWidth(), outputSize.getHeight()); + Pair outputSize = cropTextureProcessor.configure(inputWidth, inputHeight); + setupOutputTexture(outputSize.first, outputSize.second); Bitmap expectedBitmap = BitmapTestUtil.readBitmap(ORIGINAL_PNG_ASSET_PATH); cropTextureProcessor.drawFrame(inputTexId, /* presentationTimeUs= */ 0); Bitmap actualBitmap = BitmapTestUtil.createArgb8888BitmapFromCurrentGlFramebuffer( - outputSize.getWidth(), outputSize.getHeight()); + outputSize.first, outputSize.second); BitmapTestUtil.maybeSaveTestBitmapToCacheDirectory( testId, /* bitmapLabel= */ "actual", actualBitmap); @@ -114,14 +114,14 @@ public final class CropPixelTest { cropTextureProcessor = new Crop(/* left= */ -.9f, /* right= */ .1f, /* bottom= */ -1f, /* top= */ .5f) .toGlTextureProcessor(context, /* useHdr= */ false); - Size outputSize = cropTextureProcessor.configure(inputWidth, inputHeight); - setupOutputTexture(outputSize.getWidth(), outputSize.getHeight()); + Pair outputSize = cropTextureProcessor.configure(inputWidth, inputHeight); + setupOutputTexture(outputSize.first, outputSize.second); Bitmap expectedBitmap = BitmapTestUtil.readBitmap(CROP_SMALLER_PNG_ASSET_PATH); cropTextureProcessor.drawFrame(inputTexId, /* presentationTimeUs= */ 0); Bitmap actualBitmap = BitmapTestUtil.createArgb8888BitmapFromCurrentGlFramebuffer( - outputSize.getWidth(), outputSize.getHeight()); + outputSize.first, outputSize.second); BitmapTestUtil.maybeSaveTestBitmapToCacheDirectory( testId, /* bitmapLabel= */ "actual", actualBitmap); @@ -138,14 +138,14 @@ public final class CropPixelTest { cropTextureProcessor = new Crop(/* left= */ -2f, /* right= */ 2f, /* bottom= */ -1f, /* top= */ 2f) .toGlTextureProcessor(context, /* useHdr= */ false); - Size outputSize = cropTextureProcessor.configure(inputWidth, inputHeight); - setupOutputTexture(outputSize.getWidth(), outputSize.getHeight()); + Pair outputSize = cropTextureProcessor.configure(inputWidth, inputHeight); + setupOutputTexture(outputSize.first, outputSize.second); Bitmap expectedBitmap = BitmapTestUtil.readBitmap(CROP_LARGER_PNG_ASSET_PATH); cropTextureProcessor.drawFrame(inputTexId, /* presentationTimeUs= */ 0); Bitmap actualBitmap = BitmapTestUtil.createArgb8888BitmapFromCurrentGlFramebuffer( - outputSize.getWidth(), outputSize.getHeight()); + outputSize.first, outputSize.second); BitmapTestUtil.maybeSaveTestBitmapToCacheDirectory( testId, /* bitmapLabel= */ "actual", actualBitmap); diff --git a/library/transformer/src/androidTest/java/com/google/android/exoplayer2/transformer/GlEffectsFrameProcessorPixelTest.java b/library/transformer/src/androidTest/java/com/google/android/exoplayer2/transformer/GlEffectsFrameProcessorPixelTest.java index 58bede2310..bb9d77f00d 100644 --- a/library/transformer/src/androidTest/java/com/google/android/exoplayer2/transformer/GlEffectsFrameProcessorPixelTest.java +++ b/library/transformer/src/androidTest/java/com/google/android/exoplayer2/transformer/GlEffectsFrameProcessorPixelTest.java @@ -32,7 +32,7 @@ import android.media.ImageReader; import android.media.MediaCodec; import android.media.MediaExtractor; import android.media.MediaFormat; -import android.util.Size; +import android.util.Pair; import androidx.annotation.Nullable; import androidx.test.ext.junit.runners.AndroidJUnit4; import com.google.android.exoplayer2.util.MimeTypes; @@ -463,14 +463,14 @@ public final class GlEffectsFrameProcessorPixelTest { } @Override - public Size configure(int inputWidth, int inputHeight) { + public Pair configure(int inputWidth, int inputHeight) { adjustedTransformationMatrix = new Matrix(); adjustedTransformationMatrix.postRotate(degrees); float inputAspectRatio = (float) inputWidth / inputHeight; adjustedTransformationMatrix.preScale(/* sx= */ inputAspectRatio, /* sy= */ 1f); adjustedTransformationMatrix.postScale(/* sx= */ 1f / inputAspectRatio, /* sy= */ 1f); - return new Size(inputWidth, inputHeight); + return Pair.create(inputWidth, inputHeight); } @Override diff --git a/library/transformer/src/androidTest/java/com/google/android/exoplayer2/transformer/PresentationPixelTest.java b/library/transformer/src/androidTest/java/com/google/android/exoplayer2/transformer/PresentationPixelTest.java index d7741d8e77..0703b03575 100644 --- a/library/transformer/src/androidTest/java/com/google/android/exoplayer2/transformer/PresentationPixelTest.java +++ b/library/transformer/src/androidTest/java/com/google/android/exoplayer2/transformer/PresentationPixelTest.java @@ -25,7 +25,7 @@ import android.graphics.Bitmap; import android.opengl.EGLContext; import android.opengl.EGLDisplay; import android.opengl.EGLSurface; -import android.util.Size; +import android.util.Pair; import androidx.test.ext.junit.runners.AndroidJUnit4; import com.google.android.exoplayer2.C; import com.google.android.exoplayer2.util.GlUtil; @@ -99,14 +99,15 @@ public final class PresentationPixelTest { presentationTextureProcessor = Presentation.createForHeight(C.LENGTH_UNSET) .toGlTextureProcessor(context, /* useHdr= */ false); - Size outputSize = presentationTextureProcessor.configure(inputWidth, inputHeight); - setupOutputTexture(outputSize.getWidth(), outputSize.getHeight()); + Pair outputSize = + presentationTextureProcessor.configure(inputWidth, inputHeight); + setupOutputTexture(outputSize.first, outputSize.second); Bitmap expectedBitmap = BitmapTestUtil.readBitmap(ORIGINAL_PNG_ASSET_PATH); presentationTextureProcessor.drawFrame(inputTexId, /* presentationTimeUs= */ 0); Bitmap actualBitmap = BitmapTestUtil.createArgb8888BitmapFromCurrentGlFramebuffer( - outputSize.getWidth(), outputSize.getHeight()); + outputSize.first, outputSize.second); BitmapTestUtil.maybeSaveTestBitmapToCacheDirectory( testId, /* bitmapLabel= */ "actual", actualBitmap); @@ -124,15 +125,16 @@ public final class PresentationPixelTest { presentationTextureProcessor = Presentation.createForAspectRatio(/* aspectRatio= */ 1f, Presentation.LAYOUT_SCALE_TO_FIT) .toGlTextureProcessor(context, /* useHdr= */ false); - Size outputSize = presentationTextureProcessor.configure(inputWidth, inputHeight); - setupOutputTexture(outputSize.getWidth(), outputSize.getHeight()); + Pair outputSize = + presentationTextureProcessor.configure(inputWidth, inputHeight); + setupOutputTexture(outputSize.first, outputSize.second); Bitmap expectedBitmap = BitmapTestUtil.readBitmap(ASPECT_RATIO_SCALE_TO_FIT_NARROW_PNG_ASSET_PATH); presentationTextureProcessor.drawFrame(inputTexId, /* presentationTimeUs= */ 0); Bitmap actualBitmap = BitmapTestUtil.createArgb8888BitmapFromCurrentGlFramebuffer( - outputSize.getWidth(), outputSize.getHeight()); + outputSize.first, outputSize.second); BitmapTestUtil.maybeSaveTestBitmapToCacheDirectory( testId, /* bitmapLabel= */ "actual", actualBitmap); @@ -150,15 +152,16 @@ public final class PresentationPixelTest { presentationTextureProcessor = Presentation.createForAspectRatio(/* aspectRatio= */ 2f, Presentation.LAYOUT_SCALE_TO_FIT) .toGlTextureProcessor(context, /* useHdr= */ false); - Size outputSize = presentationTextureProcessor.configure(inputWidth, inputHeight); - setupOutputTexture(outputSize.getWidth(), outputSize.getHeight()); + Pair outputSize = + presentationTextureProcessor.configure(inputWidth, inputHeight); + setupOutputTexture(outputSize.first, outputSize.second); Bitmap expectedBitmap = BitmapTestUtil.readBitmap(ASPECT_RATIO_SCALE_TO_FIT_WIDE_PNG_ASSET_PATH); presentationTextureProcessor.drawFrame(inputTexId, /* presentationTimeUs= */ 0); Bitmap actualBitmap = BitmapTestUtil.createArgb8888BitmapFromCurrentGlFramebuffer( - outputSize.getWidth(), outputSize.getHeight()); + outputSize.first, outputSize.second); BitmapTestUtil.maybeSaveTestBitmapToCacheDirectory( testId, /* bitmapLabel= */ "actual", actualBitmap); @@ -177,15 +180,16 @@ public final class PresentationPixelTest { Presentation.createForAspectRatio( /* aspectRatio= */ 1f, Presentation.LAYOUT_SCALE_TO_FIT_WITH_CROP) .toGlTextureProcessor(context, /* useHdr= */ false); - Size outputSize = presentationTextureProcessor.configure(inputWidth, inputHeight); - setupOutputTexture(outputSize.getWidth(), outputSize.getHeight()); + Pair outputSize = + presentationTextureProcessor.configure(inputWidth, inputHeight); + setupOutputTexture(outputSize.first, outputSize.second); Bitmap expectedBitmap = BitmapTestUtil.readBitmap(ASPECT_RATIO_SCALE_TO_FIT_WITH_CROP_NARROW_PNG_ASSET_PATH); presentationTextureProcessor.drawFrame(inputTexId, /* presentationTimeUs= */ 0); Bitmap actualBitmap = BitmapTestUtil.createArgb8888BitmapFromCurrentGlFramebuffer( - outputSize.getWidth(), outputSize.getHeight()); + outputSize.first, outputSize.second); BitmapTestUtil.maybeSaveTestBitmapToCacheDirectory( testId, /* bitmapLabel= */ "actual", actualBitmap); @@ -204,15 +208,16 @@ public final class PresentationPixelTest { Presentation.createForAspectRatio( /* aspectRatio= */ 2f, Presentation.LAYOUT_SCALE_TO_FIT_WITH_CROP) .toGlTextureProcessor(context, /* useHdr= */ false); - Size outputSize = presentationTextureProcessor.configure(inputWidth, inputHeight); - setupOutputTexture(outputSize.getWidth(), outputSize.getHeight()); + Pair outputSize = + presentationTextureProcessor.configure(inputWidth, inputHeight); + setupOutputTexture(outputSize.first, outputSize.second); Bitmap expectedBitmap = BitmapTestUtil.readBitmap(ASPECT_RATIO_SCALE_TO_FIT_WITH_CROP_WIDE_PNG_ASSET_PATH); presentationTextureProcessor.drawFrame(inputTexId, /* presentationTimeUs= */ 0); Bitmap actualBitmap = BitmapTestUtil.createArgb8888BitmapFromCurrentGlFramebuffer( - outputSize.getWidth(), outputSize.getHeight()); + outputSize.first, outputSize.second); BitmapTestUtil.maybeSaveTestBitmapToCacheDirectory( testId, /* bitmapLabel= */ "actual", actualBitmap); @@ -230,15 +235,16 @@ public final class PresentationPixelTest { presentationTextureProcessor = Presentation.createForAspectRatio(/* aspectRatio= */ 1f, Presentation.LAYOUT_STRETCH_TO_FIT) .toGlTextureProcessor(context, /* useHdr= */ false); - Size outputSize = presentationTextureProcessor.configure(inputWidth, inputHeight); - setupOutputTexture(outputSize.getWidth(), outputSize.getHeight()); + Pair outputSize = + presentationTextureProcessor.configure(inputWidth, inputHeight); + setupOutputTexture(outputSize.first, outputSize.second); Bitmap expectedBitmap = BitmapTestUtil.readBitmap(ASPECT_RATIO_STRETCH_TO_FIT_NARROW_PNG_ASSET_PATH); presentationTextureProcessor.drawFrame(inputTexId, /* presentationTimeUs= */ 0); Bitmap actualBitmap = BitmapTestUtil.createArgb8888BitmapFromCurrentGlFramebuffer( - outputSize.getWidth(), outputSize.getHeight()); + outputSize.first, outputSize.second); BitmapTestUtil.maybeSaveTestBitmapToCacheDirectory( testId, /* bitmapLabel= */ "actual", actualBitmap); @@ -256,15 +262,16 @@ public final class PresentationPixelTest { presentationTextureProcessor = Presentation.createForAspectRatio(/* aspectRatio= */ 2f, Presentation.LAYOUT_STRETCH_TO_FIT) .toGlTextureProcessor(context, /* useHdr= */ false); - Size outputSize = presentationTextureProcessor.configure(inputWidth, inputHeight); - setupOutputTexture(outputSize.getWidth(), outputSize.getHeight()); + Pair outputSize = + presentationTextureProcessor.configure(inputWidth, inputHeight); + setupOutputTexture(outputSize.first, outputSize.second); Bitmap expectedBitmap = BitmapTestUtil.readBitmap(ASPECT_RATIO_STRETCH_TO_FIT_WIDE_PNG_ASSET_PATH); presentationTextureProcessor.drawFrame(inputTexId, /* presentationTimeUs= */ 0); Bitmap actualBitmap = BitmapTestUtil.createArgb8888BitmapFromCurrentGlFramebuffer( - outputSize.getWidth(), outputSize.getHeight()); + outputSize.first, outputSize.second); BitmapTestUtil.maybeSaveTestBitmapToCacheDirectory( testId, /* bitmapLabel= */ "actual", actualBitmap); diff --git a/library/transformer/src/main/java/com/google/android/exoplayer2/transformer/ContrastProcessor.java b/library/transformer/src/main/java/com/google/android/exoplayer2/transformer/ContrastProcessor.java index 151378eb40..5fc0536bee 100644 --- a/library/transformer/src/main/java/com/google/android/exoplayer2/transformer/ContrastProcessor.java +++ b/library/transformer/src/main/java/com/google/android/exoplayer2/transformer/ContrastProcessor.java @@ -19,7 +19,7 @@ package com.google.android.exoplayer2.transformer; import android.content.Context; import android.opengl.GLES20; import android.opengl.Matrix; -import android.util.Size; +import android.util.Pair; import com.google.android.exoplayer2.util.GlProgram; import com.google.android.exoplayer2.util.GlUtil; import java.io.IOException; @@ -57,8 +57,8 @@ import java.io.IOException; } @Override - public Size configure(int inputWidth, int inputHeight) { - return new Size(inputWidth, inputHeight); + public Pair configure(int inputWidth, int inputHeight) { + return Pair.create(inputWidth, inputHeight); } @Override diff --git a/library/transformer/src/main/java/com/google/android/exoplayer2/transformer/Crop.java b/library/transformer/src/main/java/com/google/android/exoplayer2/transformer/Crop.java index 3433a9e01d..b611c2a612 100644 --- a/library/transformer/src/main/java/com/google/android/exoplayer2/transformer/Crop.java +++ b/library/transformer/src/main/java/com/google/android/exoplayer2/transformer/Crop.java @@ -19,7 +19,7 @@ import static com.google.android.exoplayer2.util.Assertions.checkArgument; import static com.google.android.exoplayer2.util.Assertions.checkStateNotNull; import android.graphics.Matrix; -import android.util.Size; +import android.util.Pair; import com.google.android.exoplayer2.util.GlUtil; import org.checkerframework.checker.nullness.qual.MonotonicNonNull; @@ -64,14 +64,14 @@ public final class Crop implements MatrixTransformation { } @Override - public Size configure(int inputWidth, int inputHeight) { + public Pair configure(int inputWidth, int inputHeight) { checkArgument(inputWidth > 0, "inputWidth must be positive"); checkArgument(inputHeight > 0, "inputHeight must be positive"); transformationMatrix = new Matrix(); if (left == -1f && right == 1f && bottom == -1f && top == 1f) { // No crop needed. - return new Size(inputWidth, inputHeight); + return Pair.create(inputWidth, inputHeight); } float scaleX = (right - left) / GlUtil.LENGTH_NDC; @@ -84,7 +84,7 @@ public final class Crop implements MatrixTransformation { int outputWidth = Math.round(inputWidth * scaleX); int outputHeight = Math.round(inputHeight * scaleY); - return new Size(outputWidth, outputHeight); + return Pair.create(outputWidth, outputHeight); } @Override diff --git a/library/transformer/src/main/java/com/google/android/exoplayer2/transformer/FinalMatrixTransformationProcessorWrapper.java b/library/transformer/src/main/java/com/google/android/exoplayer2/transformer/FinalMatrixTransformationProcessorWrapper.java index 23be00d776..6b8b9ad06a 100644 --- a/library/transformer/src/main/java/com/google/android/exoplayer2/transformer/FinalMatrixTransformationProcessorWrapper.java +++ b/library/transformer/src/main/java/com/google/android/exoplayer2/transformer/FinalMatrixTransformationProcessorWrapper.java @@ -25,7 +25,7 @@ import android.opengl.EGLExt; import android.opengl.EGLSurface; import android.opengl.GLES20; import android.opengl.Matrix; -import android.util.Size; +import android.util.Pair; import android.view.Surface; import android.view.SurfaceHolder; import android.view.SurfaceView; @@ -74,7 +74,7 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull; @Nullable private MatrixTransformationProcessor matrixTransformationProcessor; @Nullable private SurfaceViewWrapper debugSurfaceViewWrapper; private @MonotonicNonNull Listener listener; - private @MonotonicNonNull Size outputSizeBeforeSurfaceTransformation; + private @MonotonicNonNull Pair outputSizeBeforeSurfaceTransformation; private @MonotonicNonNull SurfaceView debugSurfaceView; private volatile boolean outputSizeOrRotationChanged; @@ -188,14 +188,14 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull; || this.outputSizeBeforeSurfaceTransformation == null) { this.inputWidth = inputWidth; this.inputHeight = inputHeight; - Size outputSizeBeforeSurfaceTransformation = + Pair outputSizeBeforeSurfaceTransformation = MatrixUtils.configureAndGetOutputSize(inputWidth, inputHeight, matrixTransformations); if (!Util.areEqual( this.outputSizeBeforeSurfaceTransformation, outputSizeBeforeSurfaceTransformation)) { this.outputSizeBeforeSurfaceTransformation = outputSizeBeforeSurfaceTransformation; frameProcessorListener.onOutputSizeChanged( - outputSizeBeforeSurfaceTransformation.getWidth(), - outputSizeBeforeSurfaceTransformation.getHeight()); + outputSizeBeforeSurfaceTransformation.first, + outputSizeBeforeSurfaceTransformation.second); } } @@ -264,9 +264,10 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull; useHdr, /* outputOpticalColors= */ true); matrixTransformationProcessor.setTextureTransformMatrix(textureTransformMatrix); - Size outputSize = matrixTransformationProcessor.configure(inputWidth, inputHeight); - checkState(outputSize.getWidth() == outputSurfaceInfo.width); - checkState(outputSize.getHeight() == outputSurfaceInfo.height); + Pair outputSize = + matrixTransformationProcessor.configure(inputWidth, inputHeight); + checkState(outputSize.first == outputSurfaceInfo.width); + checkState(outputSize.second == outputSurfaceInfo.height); return matrixTransformationProcessor; } diff --git a/library/transformer/src/main/java/com/google/android/exoplayer2/transformer/GlMatrixTransformation.java b/library/transformer/src/main/java/com/google/android/exoplayer2/transformer/GlMatrixTransformation.java index 5b50947594..72d13c07ea 100644 --- a/library/transformer/src/main/java/com/google/android/exoplayer2/transformer/GlMatrixTransformation.java +++ b/library/transformer/src/main/java/com/google/android/exoplayer2/transformer/GlMatrixTransformation.java @@ -17,7 +17,7 @@ package com.google.android.exoplayer2.transformer; import android.content.Context; import android.opengl.Matrix; -import android.util.Size; +import android.util.Pair; /** * Specifies a 4x4 transformation {@link Matrix} to apply in the vertex shader for each frame. @@ -37,10 +37,10 @@ public interface GlMatrixTransformation extends GlEffect { * * @param inputWidth The input frame width, in pixels. * @param inputHeight The input frame height, in pixels. - * @return The output frame {@link Size}, in pixels. + * @return The output frame width and height, in pixels. */ - default Size configure(int inputWidth, int inputHeight) { - return new Size(inputWidth, inputHeight); + default Pair configure(int inputWidth, int inputHeight) { + return Pair.create(inputWidth, inputHeight); } /** diff --git a/library/transformer/src/main/java/com/google/android/exoplayer2/transformer/MatrixTransformationProcessor.java b/library/transformer/src/main/java/com/google/android/exoplayer2/transformer/MatrixTransformationProcessor.java index 7d89acbea5..196ae0ab36 100644 --- a/library/transformer/src/main/java/com/google/android/exoplayer2/transformer/MatrixTransformationProcessor.java +++ b/library/transformer/src/main/java/com/google/android/exoplayer2/transformer/MatrixTransformationProcessor.java @@ -20,7 +20,7 @@ import static com.google.android.exoplayer2.util.Assertions.checkState; import android.content.Context; import android.opengl.GLES20; import android.opengl.Matrix; -import android.util.Size; +import android.util.Pair; import com.google.android.exoplayer2.util.GlProgram; import com.google.android.exoplayer2.util.GlUtil; import com.google.common.collect.ImmutableList; @@ -218,7 +218,7 @@ import java.util.Arrays; } @Override - public Size configure(int inputWidth, int inputHeight) { + public Pair configure(int inputWidth, int inputHeight) { return MatrixUtils.configureAndGetOutputSize(inputWidth, inputHeight, matrixTransformations); } diff --git a/library/transformer/src/main/java/com/google/android/exoplayer2/transformer/MatrixUtils.java b/library/transformer/src/main/java/com/google/android/exoplayer2/transformer/MatrixUtils.java index 99906e0f54..f3d25fb1cd 100644 --- a/library/transformer/src/main/java/com/google/android/exoplayer2/transformer/MatrixUtils.java +++ b/library/transformer/src/main/java/com/google/android/exoplayer2/transformer/MatrixUtils.java @@ -18,7 +18,7 @@ package com.google.android.exoplayer2.transformer; import static com.google.android.exoplayer2.util.Assertions.checkArgument; import android.opengl.Matrix; -import android.util.Size; +import android.util.Pair; import com.google.common.collect.ImmutableList; import java.util.Arrays; @@ -219,20 +219,19 @@ import java.util.Arrays; } /** - * Returns the output frame {@link Size} after applying the given list of {@link - * GlMatrixTransformation GlMatrixTransformations} to an input frame with the given size. + * Returns the output frame size after applying the given list of {@link GlMatrixTransformation + * GlMatrixTransformations} to an input frame with the given size. */ - public static Size configureAndGetOutputSize( + public static Pair configureAndGetOutputSize( int inputWidth, int inputHeight, ImmutableList matrixTransformations) { checkArgument(inputWidth > 0, "inputWidth must be positive"); checkArgument(inputHeight > 0, "inputHeight must be positive"); - Size outputSize = new Size(inputWidth, inputHeight); + Pair outputSize = Pair.create(inputWidth, inputHeight); for (int i = 0; i < matrixTransformations.size(); i++) { - outputSize = - matrixTransformations.get(i).configure(outputSize.getWidth(), outputSize.getHeight()); + outputSize = matrixTransformations.get(i).configure(outputSize.first, outputSize.second); } return outputSize; diff --git a/library/transformer/src/main/java/com/google/android/exoplayer2/transformer/Presentation.java b/library/transformer/src/main/java/com/google/android/exoplayer2/transformer/Presentation.java index 6445cb35e4..e00467a541 100644 --- a/library/transformer/src/main/java/com/google/android/exoplayer2/transformer/Presentation.java +++ b/library/transformer/src/main/java/com/google/android/exoplayer2/transformer/Presentation.java @@ -21,7 +21,7 @@ import static java.lang.annotation.ElementType.TYPE_USE; import static java.lang.annotation.RetentionPolicy.SOURCE; import android.graphics.Matrix; -import android.util.Size; +import android.util.Pair; import androidx.annotation.IntDef; import com.google.android.exoplayer2.C; import java.lang.annotation.Documented; @@ -179,7 +179,7 @@ public final class Presentation implements MatrixTransformation { } @Override - public Size configure(int inputWidth, int inputHeight) { + public Pair configure(int inputWidth, int inputHeight) { checkArgument(inputWidth > 0, "inputWidth must be positive"); checkArgument(inputHeight > 0, "inputHeight must be positive"); @@ -204,7 +204,7 @@ public final class Presentation implements MatrixTransformation { } outputHeight = requestedHeightPixels; } - return new Size(Math.round(outputWidth), Math.round(outputHeight)); + return Pair.create(Math.round(outputWidth), Math.round(outputHeight)); } @Override diff --git a/library/transformer/src/main/java/com/google/android/exoplayer2/transformer/ScaleToFitTransformation.java b/library/transformer/src/main/java/com/google/android/exoplayer2/transformer/ScaleToFitTransformation.java index c5135b5f43..dc12c9b689 100644 --- a/library/transformer/src/main/java/com/google/android/exoplayer2/transformer/ScaleToFitTransformation.java +++ b/library/transformer/src/main/java/com/google/android/exoplayer2/transformer/ScaleToFitTransformation.java @@ -21,7 +21,7 @@ import static java.lang.Math.max; import static java.lang.Math.min; import android.graphics.Matrix; -import android.util.Size; +import android.util.Pair; import com.google.android.exoplayer2.util.GlUtil; import com.google.errorprone.annotations.CanIgnoreReturnValue; import org.checkerframework.checker.nullness.qual.MonotonicNonNull; @@ -103,14 +103,14 @@ public final class ScaleToFitTransformation implements MatrixTransformation { } @Override - public Size configure(int inputWidth, int inputHeight) { + public Pair configure(int inputWidth, int inputHeight) { checkArgument(inputWidth > 0, "inputWidth must be positive"); checkArgument(inputHeight > 0, "inputHeight must be positive"); adjustedTransformationMatrix = new Matrix(transformationMatrix); if (transformationMatrix.isIdentity()) { - return new Size(inputWidth, inputHeight); + return Pair.create(inputWidth, inputHeight); } float inputAspectRatio = (float) inputWidth / inputHeight; @@ -139,7 +139,7 @@ public final class ScaleToFitTransformation implements MatrixTransformation { float scaleX = (maxX - minX) / GlUtil.LENGTH_NDC; float scaleY = (maxY - minY) / GlUtil.LENGTH_NDC; adjustedTransformationMatrix.postScale(1f / scaleX, 1f / scaleY); - return new Size(Math.round(inputWidth * scaleX), Math.round(inputHeight * scaleY)); + return Pair.create(Math.round(inputWidth * scaleX), Math.round(inputHeight * scaleY)); } @Override diff --git a/library/transformer/src/main/java/com/google/android/exoplayer2/transformer/SingleFrameGlTextureProcessor.java b/library/transformer/src/main/java/com/google/android/exoplayer2/transformer/SingleFrameGlTextureProcessor.java index 7a00ad5607..f46d90d366 100644 --- a/library/transformer/src/main/java/com/google/android/exoplayer2/transformer/SingleFrameGlTextureProcessor.java +++ b/library/transformer/src/main/java/com/google/android/exoplayer2/transformer/SingleFrameGlTextureProcessor.java @@ -15,7 +15,7 @@ */ package com.google.android.exoplayer2.transformer; -import android.util.Size; +import android.util.Pair; import androidx.annotation.CallSuper; import com.google.android.exoplayer2.util.GlUtil; import org.checkerframework.checker.nullness.qual.EnsuresNonNull; @@ -58,9 +58,9 @@ public abstract class SingleFrameGlTextureProcessor implements GlTextureProcesso * * @param inputWidth The input width, in pixels. * @param inputHeight The input height, in pixels. - * @return The output {@link Size} of frames processed through {@link #drawFrame(int, long)}. + * @return The output width and height of frames processed through {@link #drawFrame(int, long)}. */ - public abstract Size configure(int inputWidth, int inputHeight); + public abstract Pair configure(int inputWidth, int inputHeight); /** * Draws one frame. @@ -120,17 +120,17 @@ public abstract class SingleFrameGlTextureProcessor implements GlTextureProcesso private void configureOutputTexture(int inputWidth, int inputHeight) throws GlUtil.GlException { this.inputWidth = inputWidth; this.inputHeight = inputHeight; - Size outputSize = configure(inputWidth, inputHeight); + Pair outputSize = configure(inputWidth, inputHeight); if (outputTexture == null - || outputSize.getWidth() != outputTexture.width - || outputSize.getHeight() != outputTexture.height) { + || outputSize.first != outputTexture.width + || outputSize.second != outputTexture.height) { if (outputTexture != null) { GlUtil.deleteTexture(outputTexture.texId); } - int outputTexId = GlUtil.createTexture(outputSize.getWidth(), outputSize.getHeight(), useHdr); + int outputTexId = GlUtil.createTexture(outputSize.first, outputSize.second, useHdr); int outputFboId = GlUtil.createFboForTexture(outputTexId); outputTexture = - new TextureInfo(outputTexId, outputFboId, outputSize.getWidth(), outputSize.getHeight()); + new TextureInfo(outputTexId, outputFboId, outputSize.first, outputSize.second); } } diff --git a/library/transformer/src/test/java/com/google/android/exoplayer2/transformer/CropTest.java b/library/transformer/src/test/java/com/google/android/exoplayer2/transformer/CropTest.java index 172d9e81d6..c704d69722 100644 --- a/library/transformer/src/test/java/com/google/android/exoplayer2/transformer/CropTest.java +++ b/library/transformer/src/test/java/com/google/android/exoplayer2/transformer/CropTest.java @@ -17,7 +17,7 @@ package com.google.android.exoplayer2.transformer; import static com.google.common.truth.Truth.assertThat; -import android.util.Size; +import android.util.Pair; import androidx.test.ext.junit.runners.AndroidJUnit4; import com.google.android.exoplayer2.util.GlUtil; import org.junit.Test; @@ -36,10 +36,10 @@ public final class CropTest { int inputHeight = 150; Crop crop = new Crop(/* left= */ -1, /* right= */ 1, /* bottom= */ -1, /* top= */ 1); - Size outputSize = crop.configure(inputWidth, inputHeight); + Pair outputSize = crop.configure(inputWidth, inputHeight); - assertThat(outputSize.getWidth()).isEqualTo(inputWidth); - assertThat(outputSize.getHeight()).isEqualTo(inputHeight); + assertThat(outputSize.first).isEqualTo(inputWidth); + assertThat(outputSize.second).isEqualTo(inputHeight); } @Test @@ -52,11 +52,11 @@ public final class CropTest { float top = 1f; Crop crop = new Crop(left, right, bottom, top); - Size outputSize = crop.configure(inputWidth, inputHeight); + Pair outputSize = crop.configure(inputWidth, inputHeight); int expectedPostCropWidth = Math.round(inputWidth * (right - left) / GlUtil.LENGTH_NDC); int expectedPostCropHeight = Math.round(inputHeight * (top - bottom) / GlUtil.LENGTH_NDC); - assertThat(outputSize.getWidth()).isEqualTo(expectedPostCropWidth); - assertThat(outputSize.getHeight()).isEqualTo(expectedPostCropHeight); + assertThat(outputSize.first).isEqualTo(expectedPostCropWidth); + assertThat(outputSize.second).isEqualTo(expectedPostCropHeight); } } diff --git a/library/transformer/src/test/java/com/google/android/exoplayer2/transformer/PresentationTest.java b/library/transformer/src/test/java/com/google/android/exoplayer2/transformer/PresentationTest.java index 2aa115423e..31ce8fd4dc 100644 --- a/library/transformer/src/test/java/com/google/android/exoplayer2/transformer/PresentationTest.java +++ b/library/transformer/src/test/java/com/google/android/exoplayer2/transformer/PresentationTest.java @@ -17,7 +17,7 @@ package com.google.android.exoplayer2.transformer; import static com.google.common.truth.Truth.assertThat; -import android.util.Size; +import android.util.Pair; import androidx.test.ext.junit.runners.AndroidJUnit4; import com.google.android.exoplayer2.C; import org.junit.Test; @@ -36,10 +36,10 @@ public final class PresentationTest { int inputHeight = 150; Presentation presentation = Presentation.createForHeight(C.LENGTH_UNSET); - Size outputSize = presentation.configure(inputWidth, inputHeight); + Pair outputSize = presentation.configure(inputWidth, inputHeight); - assertThat(outputSize.getWidth()).isEqualTo(inputWidth); - assertThat(outputSize.getHeight()).isEqualTo(inputHeight); + assertThat(outputSize.first).isEqualTo(inputWidth); + assertThat(outputSize.second).isEqualTo(inputHeight); } @Test @@ -49,10 +49,10 @@ public final class PresentationTest { int requestedHeight = 300; Presentation presentation = Presentation.createForHeight(requestedHeight); - Size outputSize = presentation.configure(inputWidth, inputHeight); + Pair outputSize = presentation.configure(inputWidth, inputHeight); - assertThat(outputSize.getWidth()).isEqualTo(requestedHeight * inputWidth / inputHeight); - assertThat(outputSize.getHeight()).isEqualTo(requestedHeight); + assertThat(outputSize.first).isEqualTo(requestedHeight * inputWidth / inputHeight); + assertThat(outputSize.second).isEqualTo(requestedHeight); } @Test @@ -63,10 +63,10 @@ public final class PresentationTest { Presentation presentation = Presentation.createForAspectRatio(aspectRatio, Presentation.LAYOUT_SCALE_TO_FIT); - Size outputSize = presentation.configure(inputWidth, inputHeight); + Pair outputSize = presentation.configure(inputWidth, inputHeight); - assertThat(outputSize.getWidth()).isEqualTo(Math.round(aspectRatio * inputHeight)); - assertThat(outputSize.getHeight()).isEqualTo(inputHeight); + assertThat(outputSize.first).isEqualTo(Math.round(aspectRatio * inputHeight)); + assertThat(outputSize.second).isEqualTo(inputHeight); } @Test @@ -79,9 +79,9 @@ public final class PresentationTest { Presentation.createForWidthAndHeight( requestedWidth, requestedHeight, Presentation.LAYOUT_SCALE_TO_FIT); - Size outputSize = presentation.configure(inputWidth, inputHeight); + Pair outputSize = presentation.configure(inputWidth, inputHeight); - assertThat(outputSize.getWidth()).isEqualTo(requestedWidth); - assertThat(outputSize.getHeight()).isEqualTo(requestedHeight); + assertThat(outputSize.first).isEqualTo(requestedWidth); + assertThat(outputSize.second).isEqualTo(requestedHeight); } } diff --git a/library/transformer/src/test/java/com/google/android/exoplayer2/transformer/ScaleToFitTransformationTest.java b/library/transformer/src/test/java/com/google/android/exoplayer2/transformer/ScaleToFitTransformationTest.java index 824d20d53d..7a21c67219 100644 --- a/library/transformer/src/test/java/com/google/android/exoplayer2/transformer/ScaleToFitTransformationTest.java +++ b/library/transformer/src/test/java/com/google/android/exoplayer2/transformer/ScaleToFitTransformationTest.java @@ -17,7 +17,7 @@ package com.google.android.exoplayer2.transformer; import static com.google.common.truth.Truth.assertThat; -import android.util.Size; +import android.util.Pair; import androidx.test.ext.junit.runners.AndroidJUnit4; import org.junit.Test; import org.junit.runner.RunWith; @@ -38,10 +38,10 @@ public final class ScaleToFitTransformationTest { ScaleToFitTransformation scaleToFitTransformation = new ScaleToFitTransformation.Builder().build(); - Size outputSize = scaleToFitTransformation.configure(inputWidth, inputHeight); + Pair outputSize = scaleToFitTransformation.configure(inputWidth, inputHeight); - assertThat(outputSize.getWidth()).isEqualTo(inputWidth); - assertThat(outputSize.getHeight()).isEqualTo(inputHeight); + assertThat(outputSize.first).isEqualTo(inputWidth); + assertThat(outputSize.second).isEqualTo(inputHeight); } @Test @@ -53,10 +53,10 @@ public final class ScaleToFitTransformationTest { .setScale(/* scaleX= */ .5f, /* scaleY= */ 1f) .build(); - Size outputSize = scaleToFitTransformation.configure(inputWidth, inputHeight); + Pair outputSize = scaleToFitTransformation.configure(inputWidth, inputHeight); - assertThat(outputSize.getWidth()).isEqualTo(Math.round(inputWidth * .5f)); - assertThat(outputSize.getHeight()).isEqualTo(inputHeight); + assertThat(outputSize.first).isEqualTo(Math.round(inputWidth * .5f)); + assertThat(outputSize.second).isEqualTo(inputHeight); } @Test @@ -66,10 +66,10 @@ public final class ScaleToFitTransformationTest { ScaleToFitTransformation scaleToFitTransformation = new ScaleToFitTransformation.Builder().setScale(/* scaleX= */ 2f, /* scaleY= */ 1f).build(); - Size outputSize = scaleToFitTransformation.configure(inputWidth, inputHeight); + Pair outputSize = scaleToFitTransformation.configure(inputWidth, inputHeight); - assertThat(outputSize.getWidth()).isEqualTo(inputWidth * 2); - assertThat(outputSize.getHeight()).isEqualTo(inputHeight); + assertThat(outputSize.first).isEqualTo(inputWidth * 2); + assertThat(outputSize.second).isEqualTo(inputHeight); } @Test @@ -79,10 +79,10 @@ public final class ScaleToFitTransformationTest { ScaleToFitTransformation scaleToFitTransformation = new ScaleToFitTransformation.Builder().setScale(/* scaleX= */ 1f, /* scaleY= */ 2f).build(); - Size outputSize = scaleToFitTransformation.configure(inputWidth, inputHeight); + Pair outputSize = scaleToFitTransformation.configure(inputWidth, inputHeight); - assertThat(outputSize.getWidth()).isEqualTo(inputWidth); - assertThat(outputSize.getHeight()).isEqualTo(inputHeight * 2); + assertThat(outputSize.first).isEqualTo(inputWidth); + assertThat(outputSize.second).isEqualTo(inputHeight * 2); } @Test @@ -92,10 +92,10 @@ public final class ScaleToFitTransformationTest { ScaleToFitTransformation scaleToFitTransformation = new ScaleToFitTransformation.Builder().setRotationDegrees(90).build(); - Size outputSize = scaleToFitTransformation.configure(inputWidth, inputHeight); + Pair outputSize = scaleToFitTransformation.configure(inputWidth, inputHeight); - assertThat(outputSize.getWidth()).isEqualTo(inputHeight); - assertThat(outputSize.getHeight()).isEqualTo(inputWidth); + assertThat(outputSize.first).isEqualTo(inputHeight); + assertThat(outputSize.second).isEqualTo(inputWidth); } @Test @@ -106,9 +106,9 @@ public final class ScaleToFitTransformationTest { new ScaleToFitTransformation.Builder().setRotationDegrees(45).build(); long expectedOutputWidthHeight = 247; - Size outputSize = scaleToFitTransformation.configure(inputWidth, inputHeight); + Pair outputSize = scaleToFitTransformation.configure(inputWidth, inputHeight); - assertThat(outputSize.getWidth()).isEqualTo(expectedOutputWidthHeight); - assertThat(outputSize.getHeight()).isEqualTo(expectedOutputWidthHeight); + assertThat(outputSize.first).isEqualTo(expectedOutputWidthHeight); + assertThat(outputSize.second).isEqualTo(expectedOutputWidthHeight); } }