From 638d806a49bca6a7be545988cc4cc714c7300b8c Mon Sep 17 00:00:00 2001 From: leonwind Date: Fri, 23 Sep 2022 16:28:25 +0000 Subject: [PATCH] Add example CLUT to demo. PiperOrigin-RevId: 476390089 (cherry picked from commit 5b3efa8ad9557419a68a1a172c1d584aeecfd433) --- .../transformer/ConfigurationActivity.java | 9 +++--- .../demo/transformer/TransformerActivity.java | 29 +++++++++++++++---- 2 files changed, 28 insertions(+), 10 deletions(-) diff --git a/demos/transformer/src/main/java/androidx/media3/demo/transformer/ConfigurationActivity.java b/demos/transformer/src/main/java/androidx/media3/demo/transformer/ConfigurationActivity.java index 1e633f1425..fbeb796e14 100644 --- a/demos/transformer/src/main/java/androidx/media3/demo/transformer/ConfigurationActivity.java +++ b/demos/transformer/src/main/java/androidx/media3/demo/transformer/ConfigurationActivity.java @@ -112,6 +112,7 @@ public final class ConfigurationActivity extends AppCompatActivity { "Dizzy crop", "Edge detector (Media Pipe)", "Color filters", + "Map White to Green Color Lookup Table", "RGB Adjustments", "HSL Adjustments", "Contrast", @@ -121,10 +122,10 @@ public final class ConfigurationActivity extends AppCompatActivity { "Zoom in start", }; private static final int COLOR_FILTERS_INDEX = 2; - private static final int RGB_ADJUSTMENTS_INDEX = 3; - private static final int HSL_ADJUSTMENT_INDEX = 4; - private static final int CONTRAST_INDEX = 5; - private static final int PERIODIC_VIGNETTE_INDEX = 6; + private static final int RGB_ADJUSTMENTS_INDEX = 4; + private static final int HSL_ADJUSTMENT_INDEX = 5; + private static final int CONTRAST_INDEX = 6; + private static final int PERIODIC_VIGNETTE_INDEX = 7; private static final String SAME_AS_INPUT_OPTION = "same as input"; private static final float HALF_DIAGONAL = 1f / (float) Math.sqrt(2); 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 0428d301af..f1fa29d0cd 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 @@ -23,6 +23,7 @@ import android.content.Context; import android.content.Intent; import android.content.pm.PackageManager; +import android.graphics.Color; import android.net.Uri; import android.os.Bundle; import android.os.Handler; @@ -48,6 +49,7 @@ import androidx.media3.effect.RgbAdjustment; import androidx.media3.effect.RgbFilter; import androidx.media3.effect.RgbMatrix; +import androidx.media3.effect.SingleColorLut; import androidx.media3.exoplayer.ExoPlayer; import androidx.media3.exoplayer.util.DebugTextViewHelper; import androidx.media3.transformer.DefaultEncoderFactory; @@ -337,6 +339,21 @@ private Transformer createTransformer(@Nullable Bundle bundle, String filePath) } } if (selectedEffects[3]) { + int length = 3; + int[][][] mapWhiteToGreenLut = new int[length][length][length]; + int scale = 255 / (length - 1); + for (int r = 0; r < length; r++) { + for (int g = 0; g < length; g++) { + for (int b = 0; b < length; b++) { + mapWhiteToGreenLut[r][g][b] = + Color.rgb(/* red= */ r * scale, /* green= */ g * scale, /* blue= */ b * scale); + } + } + } + mapWhiteToGreenLut[length - 1][length - 1][length - 1] = Color.GREEN; + effects.add(SingleColorLut.createFromCube(mapWhiteToGreenLut)); + } + if (selectedEffects[4]) { effects.add( new RgbAdjustment.Builder() .setRedScale(bundle.getFloat(ConfigurationActivity.RGB_ADJUSTMENT_RED_SCALE)) @@ -344,7 +361,7 @@ private Transformer createTransformer(@Nullable Bundle bundle, String filePath) .setBlueScale(bundle.getFloat(ConfigurationActivity.RGB_ADJUSTMENT_BLUE_SCALE)) .build()); } - if (selectedEffects[4]) { + if (selectedEffects[5]) { effects.add( new HslAdjustment.Builder() .adjustHue(bundle.getFloat(ConfigurationActivity.HSL_ADJUSTMENTS_HUE)) @@ -353,10 +370,10 @@ private Transformer createTransformer(@Nullable Bundle bundle, String filePath) .adjustLightness(bundle.getFloat(ConfigurationActivity.HSL_ADJUSTMENTS_LIGHTNESS)) .build()); } - if (selectedEffects[5]) { + if (selectedEffects[6]) { effects.add(new Contrast(bundle.getFloat(ConfigurationActivity.CONTRAST_VALUE))); } - if (selectedEffects[6]) { + if (selectedEffects[7]) { effects.add( (GlEffect) (Context context, boolean useHdr) -> @@ -371,13 +388,13 @@ private Transformer createTransformer(@Nullable Bundle bundle, String filePath) ConfigurationActivity.PERIODIC_VIGNETTE_OUTER_RADIUS), bundle.getFloat(ConfigurationActivity.PERIODIC_VIGNETTE_OUTER_RADIUS))); } - if (selectedEffects[6]) { + if (selectedEffects[8]) { effects.add(MatrixTransformationFactory.createSpin3dEffect()); } - if (selectedEffects[7]) { + if (selectedEffects[9]) { effects.add((GlEffect) BitmapOverlayProcessor::new); } - if (selectedEffects[8]) { + if (selectedEffects[10]) { effects.add(MatrixTransformationFactory.createZoomInTransition()); } transformerBuilder.setVideoEffects(effects.build());