From 540f5d681d36432eb260822dad31b07d644c42a2 Mon Sep 17 00:00:00 2001 From: huangdarwin Date: Fri, 17 Feb 2023 19:26:30 +0000 Subject: [PATCH] Effect: Rename to ScaleAndRotateTransformation Rename ScaleToFitTransformation to ScaleAndRotateTransformation. This better represents the operations that can be accomplished using this effect. The name was originally named ScaleToFit* because it's not obvious how to scale to fit using OpenGL, and this effect handled the scaling to fit in a way that no other MatrixTransformations did. However, it's hard to discover how to rotate when skimming names of effects, so it's probably more useful to convey that this effect rotates, than that it scales to fit. PiperOrigin-RevId: 510480078 --- .../transformerdemo/TransformerActivity.java | 4 +- .../video/MediaCodecVideoRenderer.java | 29 +++++----- .../DefaultVideoFrameProcessorPixelTest.java | 30 +++++----- .../FinalMatrixShaderProgramWrapper.java | 2 +- ...java => ScaleAndRotateTransformation.java} | 10 ++-- ... => ScaleAndRotateTransformationTest.java} | 56 ++++++++++--------- .../exoplayer2/transformer/mh/ExportTest.java | 4 +- .../transformer/mh/HdrEditingTest.java | 14 +++-- .../transformer/mh/RepeatedTranscodeTest.java | 6 +- .../ToneMapHdrToSdrUsingMediaCodecTest.java | 8 ++- .../transformer/TransformerEndToEndTest.java | 4 +- 11 files changed, 89 insertions(+), 78 deletions(-) rename library/effect/src/main/java/com/google/android/exoplayer2/effect/{ScaleToFitTransformation.java => ScaleAndRotateTransformation.java} (94%) rename library/effect/src/test/java/com/google/android/exoplayer2/effect/{ScaleToFitTransformationTest.java => ScaleAndRotateTransformationTest.java} (60%) diff --git a/demos/transformer/src/main/java/com/google/android/exoplayer2/transformerdemo/TransformerActivity.java b/demos/transformer/src/main/java/com/google/android/exoplayer2/transformerdemo/TransformerActivity.java index 82b0f6321e..419ac03e44 100644 --- a/demos/transformer/src/main/java/com/google/android/exoplayer2/transformerdemo/TransformerActivity.java +++ b/demos/transformer/src/main/java/com/google/android/exoplayer2/transformerdemo/TransformerActivity.java @@ -67,7 +67,7 @@ import com.google.android.exoplayer2.effect.Presentation; import com.google.android.exoplayer2.effect.RgbAdjustment; import com.google.android.exoplayer2.effect.RgbFilter; import com.google.android.exoplayer2.effect.RgbMatrix; -import com.google.android.exoplayer2.effect.ScaleToFitTransformation; +import com.google.android.exoplayer2.effect.ScaleAndRotateTransformation; import com.google.android.exoplayer2.effect.SimpleBitmapLoader; import com.google.android.exoplayer2.effect.SingleColorLut; import com.google.android.exoplayer2.effect.TextOverlay; @@ -548,7 +548,7 @@ public final class TransformerActivity extends AppCompatActivity { bundle.getFloat(ConfigurationActivity.ROTATE_DEGREES, /* defaultValue= */ 0); if (scaleX != 1f || scaleY != 1f || rotateDegrees != 0f) { effects.add( - new ScaleToFitTransformation.Builder() + new ScaleAndRotateTransformation.Builder() .setScale(scaleX, scaleY) .setRotationDegrees(rotateDegrees) .build()); diff --git a/library/core/src/main/java/com/google/android/exoplayer2/video/MediaCodecVideoRenderer.java b/library/core/src/main/java/com/google/android/exoplayer2/video/MediaCodecVideoRenderer.java index 75bb7dcbbc..4d47d7918e 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/video/MediaCodecVideoRenderer.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/video/MediaCodecVideoRenderer.java @@ -2284,16 +2284,17 @@ public class MediaCodecVideoRenderer extends MediaCodecRenderer { private static final class VideoFrameProcessorAccessor { - private static @MonotonicNonNull Constructor scaleToFitTransformationBuilderConstructor; + private static @MonotonicNonNull Constructor + scaleAndRotateTransformationBuilderConstructor; private static @MonotonicNonNull Method setRotationMethod; - private static @MonotonicNonNull Method buildScaleToFitTransformationMethod; + private static @MonotonicNonNull Method buildScaleAndRotateTransformationMethod; private static @MonotonicNonNull Constructor videoFrameProcessorFactoryConstructor; public static Effect createRotationEffect(float rotationDegrees) throws Exception { prepare(); - Object builder = scaleToFitTransformationBuilderConstructor.newInstance(); + Object builder = scaleAndRotateTransformationBuilderConstructor.newInstance(); setRotationMethod.invoke(builder, rotationDegrees); - return (Effect) checkNotNull(buildScaleToFitTransformationMethod.invoke(builder)); + return (Effect) checkNotNull(buildScaleAndRotateTransformationMethod.invoke(builder)); } public static VideoFrameProcessor.Factory getFrameProcessorFactory() throws Exception { @@ -2302,24 +2303,24 @@ public class MediaCodecVideoRenderer extends MediaCodecRenderer { } @EnsuresNonNull({ - "ScaleToFitEffectBuilder", + "ScaleAndRotateEffectBuilder", "SetRotationMethod", "SetRotationMethod", "VideoFrameProcessorFactoryClass" }) private static void prepare() throws Exception { - if (scaleToFitTransformationBuilderConstructor == null + if (scaleAndRotateTransformationBuilderConstructor == null || setRotationMethod == null - || buildScaleToFitTransformationMethod == null) { - Class scaleToFitTransformationBuilderClass = + || buildScaleAndRotateTransformationMethod == null) { + Class scaleAndRotateTransformationBuilderClass = Class.forName( - "com.google.android.exoplayer2.effect.ScaleToFitTransformation$Builder"); - scaleToFitTransformationBuilderConstructor = - scaleToFitTransformationBuilderClass.getConstructor(); + "com.google.android.exoplayer2.effect.ScaleAndRotateTransformation$Builder"); + scaleAndRotateTransformationBuilderConstructor = + scaleAndRotateTransformationBuilderClass.getConstructor(); setRotationMethod = - scaleToFitTransformationBuilderClass.getMethod("setRotationDegrees", float.class); - buildScaleToFitTransformationMethod = - scaleToFitTransformationBuilderClass.getMethod("build"); + scaleAndRotateTransformationBuilderClass.getMethod("setRotationDegrees", float.class); + buildScaleAndRotateTransformationMethod = + scaleAndRotateTransformationBuilderClass.getMethod("build"); } if (videoFrameProcessorFactoryConstructor == null) { videoFrameProcessorFactoryConstructor = diff --git a/library/effect/src/androidTest/java/com/google/android/exoplayer2/effect/DefaultVideoFrameProcessorPixelTest.java b/library/effect/src/androidTest/java/com/google/android/exoplayer2/effect/DefaultVideoFrameProcessorPixelTest.java index 34f502ce92..6324b95365 100644 --- a/library/effect/src/androidTest/java/com/google/android/exoplayer2/effect/DefaultVideoFrameProcessorPixelTest.java +++ b/library/effect/src/androidTest/java/com/google/android/exoplayer2/effect/DefaultVideoFrameProcessorPixelTest.java @@ -199,15 +199,15 @@ public final class DefaultVideoFrameProcessorPixelTest { } @Test - public void matrixAndScaleToFitTransformation_matchesGoldenFile() throws Exception { - String testId = "matrixAndScaleToFitTransformation_matchesGoldenFile"; + public void matrixAndScaleAndRotateTransformation_matchesGoldenFile() throws Exception { + String testId = "matrixAndScaleAndRotateTransformation_matchesGoldenFile"; Matrix translateRightMatrix = new Matrix(); translateRightMatrix.postTranslate(/* dx= */ 1, /* dy= */ 0); videoFrameProcessorTestRunner = getDefaultFrameProcessorTestRunnerBuilder(testId) .setEffects( (MatrixTransformation) (long presentationTimeUs) -> translateRightMatrix, - new ScaleToFitTransformation.Builder().setRotationDegrees(45).build()) + new ScaleAndRotateTransformation.Builder().setRotationDegrees(45).build()) .build(); Bitmap expectedBitmap = readBitmap(TRANSLATE_THEN_ROTATE_PNG_ASSET_PATH); @@ -239,14 +239,14 @@ public final class DefaultVideoFrameProcessorPixelTest { } @Test - public void scaleToFitAndMatrixTransformation_matchesGoldenFile() throws Exception { - String testId = "scaleToFitAndMatrixTransformation_matchesGoldenFile"; + public void scaleAndRotateAndMatrixTransformation_matchesGoldenFile() throws Exception { + String testId = "scaleAndRotateAndMatrixTransformation_matchesGoldenFile"; Matrix translateRightMatrix = new Matrix(); translateRightMatrix.postTranslate(/* dx= */ 1, /* dy= */ 0); videoFrameProcessorTestRunner = getDefaultFrameProcessorTestRunnerBuilder(testId) .setEffects( - new ScaleToFitTransformation.Builder().setRotationDegrees(45).build(), + new ScaleAndRotateTransformation.Builder().setRotationDegrees(45).build(), (MatrixTransformation) (long presentationTimeUs) -> translateRightMatrix) .build(); Bitmap expectedBitmap = readBitmap(ROTATE_THEN_TRANSLATE_PNG_ASSET_PATH); @@ -298,11 +298,11 @@ public final class DefaultVideoFrameProcessorPixelTest { } @Test - public void scaleToFitTransformation_rotate45_matchesGoldenFile() throws Exception { - String testId = "scaleToFitTransformation_rotate45_matchesGoldenFile"; + public void scaleAndRotateTransformation_rotate45_matchesGoldenFile() throws Exception { + String testId = "scaleAndRotateTransformation_rotate45_matchesGoldenFile"; videoFrameProcessorTestRunner = getDefaultFrameProcessorTestRunnerBuilder(testId) - .setEffects(new ScaleToFitTransformation.Builder().setRotationDegrees(45).build()) + .setEffects(new ScaleAndRotateTransformation.Builder().setRotationDegrees(45).build()) .build(); Bitmap expectedBitmap = readBitmap(ROTATE45_SCALE_TO_FIT_PNG_ASSET_PATH); @@ -315,15 +315,15 @@ public final class DefaultVideoFrameProcessorPixelTest { } @Test - public void twoWrappedScaleToFitTransformations_matchesGoldenFile() throws Exception { - String testId = "twoWrappedScaleToFitTransformations_matchesGoldenFile"; + public void twoWrappedScaleAndRotateTransformations_matchesGoldenFile() throws Exception { + String testId = "twoWrappedScaleAndRotateTransformations_matchesGoldenFile"; videoFrameProcessorTestRunner = getDefaultFrameProcessorTestRunnerBuilder(testId) .setEffects( new GlEffectWrapper( - new ScaleToFitTransformation.Builder().setRotationDegrees(45).build()), + new ScaleAndRotateTransformation.Builder().setRotationDegrees(45).build()), new GlEffectWrapper( - new ScaleToFitTransformation.Builder() + new ScaleAndRotateTransformation.Builder() .setScale(/* scaleX= */ 2, /* scaleY= */ 1) .build())) .build(); @@ -510,8 +510,8 @@ public final class DefaultVideoFrameProcessorPixelTest { * Specifies a counter-clockwise rotation while accounting for the aspect ratio difference between * the input frame in pixel coordinates and NDC. * - *

Unlike {@link ScaleToFitTransformation}, this does not adjust the output size or scale to - * preserve input pixels. Pixels rotated out of the frame are clipped. + *

Unlike {@link ScaleAndRotateTransformation}, this does not adjust the output size or scale + * to preserve input pixels. Pixels rotated out of the frame are clipped. */ private static final class Rotation implements MatrixTransformation { diff --git a/library/effect/src/main/java/com/google/android/exoplayer2/effect/FinalMatrixShaderProgramWrapper.java b/library/effect/src/main/java/com/google/android/exoplayer2/effect/FinalMatrixShaderProgramWrapper.java index 9db75ebb6b..fac8c1a738 100644 --- a/library/effect/src/main/java/com/google/android/exoplayer2/effect/FinalMatrixShaderProgramWrapper.java +++ b/library/effect/src/main/java/com/google/android/exoplayer2/effect/FinalMatrixShaderProgramWrapper.java @@ -393,7 +393,7 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull; new ImmutableList.Builder().addAll(matrixTransformations); if (outputSurfaceInfo.orientationDegrees != 0) { matrixTransformationListBuilder.add( - new ScaleToFitTransformation.Builder() + new ScaleAndRotateTransformation.Builder() .setRotationDegrees(outputSurfaceInfo.orientationDegrees) .build()); } diff --git a/library/effect/src/main/java/com/google/android/exoplayer2/effect/ScaleToFitTransformation.java b/library/effect/src/main/java/com/google/android/exoplayer2/effect/ScaleAndRotateTransformation.java similarity index 94% rename from library/effect/src/main/java/com/google/android/exoplayer2/effect/ScaleToFitTransformation.java rename to library/effect/src/main/java/com/google/android/exoplayer2/effect/ScaleAndRotateTransformation.java index ae270963b9..e94fe0d7e1 100644 --- a/library/effect/src/main/java/com/google/android/exoplayer2/effect/ScaleToFitTransformation.java +++ b/library/effect/src/main/java/com/google/android/exoplayer2/effect/ScaleAndRotateTransformation.java @@ -34,9 +34,9 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull; * *

The background color of the output frame will be black, with alpha = 0 if applicable. */ -public final class ScaleToFitTransformation implements MatrixTransformation { +public final class ScaleAndRotateTransformation implements MatrixTransformation { - /** A builder for {@link ScaleToFitTransformation} instances. */ + /** A builder for {@link ScaleAndRotateTransformation} instances. */ public static final class Builder { // Optional fields. @@ -85,8 +85,8 @@ public final class ScaleToFitTransformation implements MatrixTransformation { return this; } - public ScaleToFitTransformation build() { - return new ScaleToFitTransformation(scaleX, scaleY, rotationDegrees); + public ScaleAndRotateTransformation build() { + return new ScaleAndRotateTransformation(scaleX, scaleY, rotationDegrees); } } @@ -100,7 +100,7 @@ public final class ScaleToFitTransformation implements MatrixTransformation { * @param scaleY The multiplier by which the frame will scale vertically, along the y-axis. * @param rotationDegrees How much to rotate the frame counterclockwise, in degrees. */ - private ScaleToFitTransformation(float scaleX, float scaleY, float rotationDegrees) { + private ScaleAndRotateTransformation(float scaleX, float scaleY, float rotationDegrees) { transformationMatrix = new Matrix(); transformationMatrix.postScale(scaleX, scaleY); transformationMatrix.postRotate(rotationDegrees); diff --git a/library/effect/src/test/java/com/google/android/exoplayer2/effect/ScaleToFitTransformationTest.java b/library/effect/src/test/java/com/google/android/exoplayer2/effect/ScaleAndRotateTransformationTest.java similarity index 60% rename from library/effect/src/test/java/com/google/android/exoplayer2/effect/ScaleToFitTransformationTest.java rename to library/effect/src/test/java/com/google/android/exoplayer2/effect/ScaleAndRotateTransformationTest.java index 945a40a659..3d9a6df1eb 100644 --- a/library/effect/src/test/java/com/google/android/exoplayer2/effect/ScaleToFitTransformationTest.java +++ b/library/effect/src/test/java/com/google/android/exoplayer2/effect/ScaleAndRotateTransformationTest.java @@ -23,23 +23,23 @@ import org.junit.Test; import org.junit.runner.RunWith; /** - * Unit tests for {@link ScaleToFitTransformation}. + * Unit tests for {@link ScaleAndRotateTransformation}. * *

See {@code MatrixShaderProgramPixelTest} for pixel tests testing {@link MatrixShaderProgram} * given a transformation matrix. */ @RunWith(AndroidJUnit4.class) -public final class ScaleToFitTransformationTest { +public final class ScaleAndRotateTransformationTest { @Test public void configure_noEdits_leavesFramesUnchanged() { int inputWidth = 200; int inputHeight = 150; - ScaleToFitTransformation scaleToFitTransformation = - new ScaleToFitTransformation.Builder().build(); + ScaleAndRotateTransformation scaleAndRotateTransformation = + new ScaleAndRotateTransformation.Builder().build(); - Size outputSize = scaleToFitTransformation.configure(inputWidth, inputHeight); - boolean isNoOp = scaleToFitTransformation.isNoOp(inputWidth, inputHeight); + Size outputSize = scaleAndRotateTransformation.configure(inputWidth, inputHeight); + boolean isNoOp = scaleAndRotateTransformation.isNoOp(inputWidth, inputHeight); assertThat(isNoOp).isTrue(); assertThat(outputSize.getWidth()).isEqualTo(inputWidth); @@ -50,13 +50,13 @@ public final class ScaleToFitTransformationTest { public void configure_scaleNarrow_decreasesWidth() { int inputWidth = 200; int inputHeight = 150; - ScaleToFitTransformation scaleToFitTransformation = - new ScaleToFitTransformation.Builder() + ScaleAndRotateTransformation scaleAndRotateTransformation = + new ScaleAndRotateTransformation.Builder() .setScale(/* scaleX= */ 0.5f, /* scaleY= */ 1f) .build(); - Size outputSize = scaleToFitTransformation.configure(inputWidth, inputHeight); - boolean isNoOp = scaleToFitTransformation.isNoOp(inputWidth, inputHeight); + Size outputSize = scaleAndRotateTransformation.configure(inputWidth, inputHeight); + boolean isNoOp = scaleAndRotateTransformation.isNoOp(inputWidth, inputHeight); assertThat(isNoOp).isFalse(); assertThat(outputSize.getWidth()).isEqualTo(Math.round(inputWidth * 0.5f)); @@ -67,11 +67,13 @@ public final class ScaleToFitTransformationTest { public void configure_scaleWide_increasesWidth() { int inputWidth = 200; int inputHeight = 150; - ScaleToFitTransformation scaleToFitTransformation = - new ScaleToFitTransformation.Builder().setScale(/* scaleX= */ 2f, /* scaleY= */ 1f).build(); + ScaleAndRotateTransformation scaleAndRotateTransformation = + new ScaleAndRotateTransformation.Builder() + .setScale(/* scaleX= */ 2f, /* scaleY= */ 1f) + .build(); - Size outputSize = scaleToFitTransformation.configure(inputWidth, inputHeight); - boolean isNoOp = scaleToFitTransformation.isNoOp(inputWidth, inputHeight); + Size outputSize = scaleAndRotateTransformation.configure(inputWidth, inputHeight); + boolean isNoOp = scaleAndRotateTransformation.isNoOp(inputWidth, inputHeight); assertThat(isNoOp).isFalse(); assertThat(outputSize.getWidth()).isEqualTo(inputWidth * 2); @@ -82,11 +84,13 @@ public final class ScaleToFitTransformationTest { public void configure_scaleTall_increasesHeight() { int inputWidth = 200; int inputHeight = 150; - ScaleToFitTransformation scaleToFitTransformation = - new ScaleToFitTransformation.Builder().setScale(/* scaleX= */ 1f, /* scaleY= */ 2f).build(); + ScaleAndRotateTransformation scaleAndRotateTransformation = + new ScaleAndRotateTransformation.Builder() + .setScale(/* scaleX= */ 1f, /* scaleY= */ 2f) + .build(); - Size outputSize = scaleToFitTransformation.configure(inputWidth, inputHeight); - boolean isNoOp = scaleToFitTransformation.isNoOp(inputWidth, inputHeight); + Size outputSize = scaleAndRotateTransformation.configure(inputWidth, inputHeight); + boolean isNoOp = scaleAndRotateTransformation.isNoOp(inputWidth, inputHeight); assertThat(isNoOp).isFalse(); assertThat(outputSize.getWidth()).isEqualTo(inputWidth); @@ -97,11 +101,11 @@ public final class ScaleToFitTransformationTest { public void configure_rotate90_swapsDimensions() { int inputWidth = 200; int inputHeight = 150; - ScaleToFitTransformation scaleToFitTransformation = - new ScaleToFitTransformation.Builder().setRotationDegrees(90).build(); + ScaleAndRotateTransformation scaleAndRotateTransformation = + new ScaleAndRotateTransformation.Builder().setRotationDegrees(90).build(); - Size outputSize = scaleToFitTransformation.configure(inputWidth, inputHeight); - boolean isNoOp = scaleToFitTransformation.isNoOp(inputWidth, inputHeight); + Size outputSize = scaleAndRotateTransformation.configure(inputWidth, inputHeight); + boolean isNoOp = scaleAndRotateTransformation.isNoOp(inputWidth, inputHeight); assertThat(isNoOp).isFalse(); assertThat(outputSize.getWidth()).isEqualTo(inputHeight); @@ -112,12 +116,12 @@ public final class ScaleToFitTransformationTest { public void configure_rotate45_changesDimensions() { int inputWidth = 200; int inputHeight = 150; - ScaleToFitTransformation scaleToFitTransformation = - new ScaleToFitTransformation.Builder().setRotationDegrees(45).build(); + ScaleAndRotateTransformation scaleAndRotateTransformation = + new ScaleAndRotateTransformation.Builder().setRotationDegrees(45).build(); long expectedOutputWidthHeight = 247; - Size outputSize = scaleToFitTransformation.configure(inputWidth, inputHeight); - boolean isNoOp = scaleToFitTransformation.isNoOp(inputWidth, inputHeight); + Size outputSize = scaleAndRotateTransformation.configure(inputWidth, inputHeight); + boolean isNoOp = scaleAndRotateTransformation.isNoOp(inputWidth, inputHeight); assertThat(isNoOp).isFalse(); assertThat(outputSize.getWidth()).isEqualTo(expectedOutputWidthHeight); diff --git a/library/transformer/src/androidTest/java/com/google/android/exoplayer2/transformer/mh/ExportTest.java b/library/transformer/src/androidTest/java/com/google/android/exoplayer2/transformer/mh/ExportTest.java index e5af726dc2..f4345cbd8f 100644 --- a/library/transformer/src/androidTest/java/com/google/android/exoplayer2/transformer/mh/ExportTest.java +++ b/library/transformer/src/androidTest/java/com/google/android/exoplayer2/transformer/mh/ExportTest.java @@ -30,7 +30,7 @@ import android.net.Uri; import androidx.test.core.app.ApplicationProvider; import androidx.test.ext.junit.runners.AndroidJUnit4; import com.google.android.exoplayer2.MediaItem; -import com.google.android.exoplayer2.effect.ScaleToFitTransformation; +import com.google.android.exoplayer2.effect.ScaleAndRotateTransformation; import com.google.android.exoplayer2.transformer.AndroidTestUtil; import com.google.android.exoplayer2.transformer.AndroidTestUtil.ForceEncodeEncoderFactory; import com.google.android.exoplayer2.transformer.DefaultEncoderFactory; @@ -244,7 +244,7 @@ public class ExportTest { MediaItem mediaItem = MediaItem.fromUri(Uri.parse(MP4_ASSET_WITH_INCREASING_TIMESTAMPS_URI_STRING)); ImmutableList videoEffects = - ImmutableList.of(new ScaleToFitTransformation.Builder().setRotationDegrees(45).build()); + ImmutableList.of(new ScaleAndRotateTransformation.Builder().setRotationDegrees(45).build()); Effects effects = new Effects(/* audioProcessors= */ ImmutableList.of(), videoEffects); EditedMediaItem editedMediaItem = new EditedMediaItem.Builder(mediaItem).setEffects(effects).build(); diff --git a/library/transformer/src/androidTest/java/com/google/android/exoplayer2/transformer/mh/HdrEditingTest.java b/library/transformer/src/androidTest/java/com/google/android/exoplayer2/transformer/mh/HdrEditingTest.java index 600ddb24a6..2cb540fd98 100644 --- a/library/transformer/src/androidTest/java/com/google/android/exoplayer2/transformer/mh/HdrEditingTest.java +++ b/library/transformer/src/androidTest/java/com/google/android/exoplayer2/transformer/mh/HdrEditingTest.java @@ -30,7 +30,7 @@ import androidx.test.core.app.ApplicationProvider; import androidx.test.ext.junit.runners.AndroidJUnit4; import com.google.android.exoplayer2.C; import com.google.android.exoplayer2.MediaItem; -import com.google.android.exoplayer2.effect.ScaleToFitTransformation; +import com.google.android.exoplayer2.effect.ScaleAndRotateTransformation; import com.google.android.exoplayer2.transformer.EditedMediaItem; import com.google.android.exoplayer2.transformer.Effects; import com.google.android.exoplayer2.transformer.EncoderUtil; @@ -130,7 +130,8 @@ public class HdrEditingTest { Transformer transformer = new Transformer.Builder(context).build(); MediaItem mediaItem = MediaItem.fromUri(Uri.parse(MP4_ASSET_1080P_4_SECOND_HDR10)); ImmutableList videoEffects = - ImmutableList.of(new ScaleToFitTransformation.Builder().setRotationDegrees(180).build()); + ImmutableList.of( + new ScaleAndRotateTransformation.Builder().setRotationDegrees(180).build()); Effects effects = new Effects(/* audioProcessors= */ ImmutableList.of(), videoEffects); EditedMediaItem editedMediaItem = new EditedMediaItem.Builder(mediaItem).setEffects(effects).build(); @@ -154,7 +155,8 @@ public class HdrEditingTest { Transformer transformer = new Transformer.Builder(context).build(); MediaItem mediaItem = MediaItem.fromUri(Uri.parse(MP4_ASSET_1080P_5_SECOND_HLG10)); ImmutableList videoEffects = - ImmutableList.of(new ScaleToFitTransformation.Builder().setRotationDegrees(180).build()); + ImmutableList.of( + new ScaleAndRotateTransformation.Builder().setRotationDegrees(180).build()); Effects effects = new Effects(/* audioProcessors= */ ImmutableList.of(), videoEffects); EditedMediaItem editedMediaItem = new EditedMediaItem.Builder(mediaItem).setEffects(effects).build(); @@ -198,7 +200,8 @@ public class HdrEditingTest { .build(); MediaItem mediaItem = MediaItem.fromUri(Uri.parse(MP4_ASSET_1080P_4_SECOND_HDR10)); ImmutableList videoEffects = - ImmutableList.of(new ScaleToFitTransformation.Builder().setRotationDegrees(180).build()); + ImmutableList.of( + new ScaleAndRotateTransformation.Builder().setRotationDegrees(180).build()); Effects effects = new Effects(/* audioProcessors= */ ImmutableList.of(), videoEffects); EditedMediaItem editedMediaItem = new EditedMediaItem.Builder(mediaItem).setEffects(effects).build(); @@ -252,7 +255,8 @@ public class HdrEditingTest { .build(); MediaItem mediaItem = MediaItem.fromUri(Uri.parse(MP4_ASSET_1080P_5_SECOND_HLG10)); ImmutableList videoEffects = - ImmutableList.of(new ScaleToFitTransformation.Builder().setRotationDegrees(180).build()); + ImmutableList.of( + new ScaleAndRotateTransformation.Builder().setRotationDegrees(180).build()); Effects effects = new Effects(/* audioProcessors= */ ImmutableList.of(), videoEffects); EditedMediaItem editedMediaItem = new EditedMediaItem.Builder(mediaItem).setEffects(effects).build(); diff --git a/library/transformer/src/androidTest/java/com/google/android/exoplayer2/transformer/mh/RepeatedTranscodeTest.java b/library/transformer/src/androidTest/java/com/google/android/exoplayer2/transformer/mh/RepeatedTranscodeTest.java index 0c46fc8400..79c10e12c5 100644 --- a/library/transformer/src/androidTest/java/com/google/android/exoplayer2/transformer/mh/RepeatedTranscodeTest.java +++ b/library/transformer/src/androidTest/java/com/google/android/exoplayer2/transformer/mh/RepeatedTranscodeTest.java @@ -23,7 +23,7 @@ import android.net.Uri; import androidx.test.core.app.ApplicationProvider; import androidx.test.ext.junit.runners.AndroidJUnit4; import com.google.android.exoplayer2.MediaItem; -import com.google.android.exoplayer2.effect.ScaleToFitTransformation; +import com.google.android.exoplayer2.effect.ScaleAndRotateTransformation; import com.google.android.exoplayer2.transformer.AndroidTestUtil; import com.google.android.exoplayer2.transformer.EditedMediaItem; import com.google.android.exoplayer2.transformer.Effects; @@ -57,7 +57,7 @@ public final class RepeatedTranscodeTest { MediaItem mediaItem = MediaItem.fromUri(Uri.parse(AndroidTestUtil.MP4_REMOTE_10_SECONDS_URI_STRING)); ImmutableList videoEffects = - ImmutableList.of(new ScaleToFitTransformation.Builder().setRotationDegrees(45).build()); + ImmutableList.of(new ScaleAndRotateTransformation.Builder().setRotationDegrees(45).build()); Effects effects = new Effects(/* audioProcessors= */ ImmutableList.of(), videoEffects); EditedMediaItem editedMediaItem = new EditedMediaItem.Builder(mediaItem).setEffects(effects).build(); @@ -90,7 +90,7 @@ public final class RepeatedTranscodeTest { MediaItem mediaItem = MediaItem.fromUri(Uri.parse(AndroidTestUtil.MP4_REMOTE_10_SECONDS_URI_STRING)); ImmutableList videoEffects = - ImmutableList.of(new ScaleToFitTransformation.Builder().setRotationDegrees(45).build()); + ImmutableList.of(new ScaleAndRotateTransformation.Builder().setRotationDegrees(45).build()); Effects effects = new Effects(/* audioProcessors= */ ImmutableList.of(), videoEffects); EditedMediaItem editedMediaItem = new EditedMediaItem.Builder(mediaItem).setRemoveAudio(true).setEffects(effects).build(); diff --git a/library/transformer/src/androidTest/java/com/google/android/exoplayer2/transformer/mh/ToneMapHdrToSdrUsingMediaCodecTest.java b/library/transformer/src/androidTest/java/com/google/android/exoplayer2/transformer/mh/ToneMapHdrToSdrUsingMediaCodecTest.java index 4fcfd5db63..2476e9e212 100644 --- a/library/transformer/src/androidTest/java/com/google/android/exoplayer2/transformer/mh/ToneMapHdrToSdrUsingMediaCodecTest.java +++ b/library/transformer/src/androidTest/java/com/google/android/exoplayer2/transformer/mh/ToneMapHdrToSdrUsingMediaCodecTest.java @@ -27,7 +27,7 @@ import androidx.test.core.app.ApplicationProvider; import androidx.test.ext.junit.runners.AndroidJUnit4; import com.google.android.exoplayer2.C; import com.google.android.exoplayer2.MediaItem; -import com.google.android.exoplayer2.effect.ScaleToFitTransformation; +import com.google.android.exoplayer2.effect.ScaleAndRotateTransformation; import com.google.android.exoplayer2.transformer.EditedMediaItem; import com.google.android.exoplayer2.transformer.Effects; import com.google.android.exoplayer2.transformer.ExportException; @@ -161,7 +161,8 @@ public class ToneMapHdrToSdrUsingMediaCodecTest { .build(); MediaItem mediaItem = MediaItem.fromUri(Uri.parse(MP4_ASSET_1080P_4_SECOND_HDR10)); ImmutableList videoEffects = - ImmutableList.of(new ScaleToFitTransformation.Builder().setRotationDegrees(180).build()); + ImmutableList.of( + new ScaleAndRotateTransformation.Builder().setRotationDegrees(180).build()); Effects effects = new Effects(/* audioProcessors= */ ImmutableList.of(), videoEffects); EditedMediaItem editedMediaItem = new EditedMediaItem.Builder(mediaItem).setEffects(effects).build(); @@ -208,7 +209,8 @@ public class ToneMapHdrToSdrUsingMediaCodecTest { .build(); MediaItem mediaItem = MediaItem.fromUri(Uri.parse(MP4_ASSET_1080P_5_SECOND_HLG10)); ImmutableList videoEffects = - ImmutableList.of(new ScaleToFitTransformation.Builder().setRotationDegrees(180).build()); + ImmutableList.of( + new ScaleAndRotateTransformation.Builder().setRotationDegrees(180).build()); Effects effects = new Effects(/* audioProcessors= */ ImmutableList.of(), videoEffects); EditedMediaItem editedMediaItem = new EditedMediaItem.Builder(mediaItem).setEffects(effects).build(); diff --git a/library/transformer/src/test/java/com/google/android/exoplayer2/transformer/TransformerEndToEndTest.java b/library/transformer/src/test/java/com/google/android/exoplayer2/transformer/TransformerEndToEndTest.java index 91e2bbd984..481dd99a65 100644 --- a/library/transformer/src/test/java/com/google/android/exoplayer2/transformer/TransformerEndToEndTest.java +++ b/library/transformer/src/test/java/com/google/android/exoplayer2/transformer/TransformerEndToEndTest.java @@ -50,7 +50,7 @@ import com.google.android.exoplayer2.audio.AudioProcessor; import com.google.android.exoplayer2.audio.SilenceSkippingAudioProcessor; import com.google.android.exoplayer2.audio.SonicAudioProcessor; import com.google.android.exoplayer2.effect.Presentation; -import com.google.android.exoplayer2.effect.ScaleToFitTransformation; +import com.google.android.exoplayer2.effect.ScaleAndRotateTransformation; import com.google.android.exoplayer2.extractor.DefaultExtractorsFactory; import com.google.android.exoplayer2.extractor.Extractor; import com.google.android.exoplayer2.extractor.ExtractorInput; @@ -965,7 +965,7 @@ public final class TransformerEndToEndTest { ImmutableList videoEffects = ImmutableList.of( Presentation.createForHeight(mediaItemHeightPixels), - new ScaleToFitTransformation.Builder().build()); + new ScaleAndRotateTransformation.Builder().build()); Effects effects = new Effects(/* audioProcessors= */ ImmutableList.of(), videoEffects); EditedMediaItem editedMediaItem = new EditedMediaItem.Builder(mediaItem).setEffects(effects).build();