From 78b461f94c4e4bf232234c011bb6cc8a120b8be0 Mon Sep 17 00:00:00 2001 From: huangdarwin Date: Tue, 15 Feb 2022 12:54:20 +0000 Subject: [PATCH] Transformer GL: Update TODOs. Document some suboptimal things, and remove TODOs that were fixed already or no longer relevant. Comment-only change. PiperOrigin-RevId: 428749344 --- .../media3/demo/transformer/TransformerActivity.java | 5 +++-- .../media3/transformer/TransformationRequest.java | 11 +++-------- .../media3/transformer/TransformerVideoRenderer.java | 3 +++ 3 files changed, 9 insertions(+), 10 deletions(-) diff --git a/demos/transformer/src/main/java/androidx/media3/demo/transformer/TransformerActivity.java b/demos/transformer/src/main/java/androidx/media3/demo/transformer/TransformerActivity.java index dcb2e97171..e2829defcd 100644 --- a/demos/transformer/src/main/java/androidx/media3/demo/transformer/TransformerActivity.java +++ b/demos/transformer/src/main/java/androidx/media3/demo/transformer/TransformerActivity.java @@ -248,8 +248,9 @@ public final class TransformerActivity extends AppCompatActivity { float translateX = bundle.getFloat(ConfigurationActivity.TRANSLATE_X, /* defaultValue= */ 0); float translateY = bundle.getFloat(ConfigurationActivity.TRANSLATE_Y, /* defaultValue= */ 0); - // TODO(b/213198690): Get resolution for aspect ratio and scale all translations' translateX - // by this aspect ratio. + // TODO(b/201293185): Implement an AdvancedFrameEditor to handle translation, as the current + // transformationMatrix is automatically adjusted to focus on the original pixels and + // effectively undo translations. transformationMatrix.postTranslate(translateX, translateY); float scaleX = bundle.getFloat(ConfigurationActivity.SCALE_X, /* defaultValue= */ 1); diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/TransformationRequest.java b/libraries/transformer/src/main/java/androidx/media3/transformer/TransformationRequest.java index a74c1ca0fc..cada9eda7c 100644 --- a/libraries/transformer/src/main/java/androidx/media3/transformer/TransformationRequest.java +++ b/libraries/transformer/src/main/java/androidx/media3/transformer/TransformationRequest.java @@ -76,14 +76,9 @@ public final class TransformationRequest { * @return This builder. */ public Builder setTransformationMatrix(Matrix transformationMatrix) { - // TODO(b/201293185): After {@link #setResolution} supports arbitrary resolutions, - // allow transformations to change the resolution, by scaling to the appropriate min/max - // values. This will also be required to create the VertexTransformation class, in order to - // have aspect ratio helper methods (which require resolution to change). - - // TODO(b/213198690): Consider changing how transformationMatrix is applied, so that - // dimensions will be from -1 to 1 on both x and y axes, but transformations will be applied - // in a predictable manner. + // TODO(b/201293185): Implement an AdvancedFrameEditor to handle translation, as the current + // transformationMatrix is automatically adjusted to focus on the original pixels and + // effectively undo translations. this.transformationMatrix = new Matrix(transformationMatrix); return this; } diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/TransformerVideoRenderer.java b/libraries/transformer/src/main/java/androidx/media3/transformer/TransformerVideoRenderer.java index 21cbf93204..36b2bd41fa 100644 --- a/libraries/transformer/src/main/java/androidx/media3/transformer/TransformerVideoRenderer.java +++ b/libraries/transformer/src/main/java/androidx/media3/transformer/TransformerVideoRenderer.java @@ -115,6 +115,9 @@ import org.checkerframework.checker.nullness.qual.RequiresNonNull; return false; } if (!transformationRequest.transformationMatrix.isIdentity()) { + // TODO(b/201293185, b/214010296): Move FrameProcessor transformationMatrix calculation / + // adjustments out of the VideoTranscodingSamplePipeline, so that we can skip transcoding when + // adjustments result in identity matrices. return false; } return true;