Commit 29cf0931 by leonwind Committed by Marc Baechinger

Add example CLUT to demo.

PiperOrigin-RevId: 476390089
parent f745c6ee
...@@ -112,6 +112,7 @@ public final class ConfigurationActivity extends AppCompatActivity { ...@@ -112,6 +112,7 @@ public final class ConfigurationActivity extends AppCompatActivity {
"Dizzy crop", "Dizzy crop",
"Edge detector (Media Pipe)", "Edge detector (Media Pipe)",
"Color filters", "Color filters",
"Map White to Green Color Lookup Table",
"RGB Adjustments", "RGB Adjustments",
"HSL Adjustments", "HSL Adjustments",
"Contrast", "Contrast",
...@@ -121,10 +122,10 @@ public final class ConfigurationActivity extends AppCompatActivity { ...@@ -121,10 +122,10 @@ public final class ConfigurationActivity extends AppCompatActivity {
"Zoom in start", "Zoom in start",
}; };
private static final int COLOR_FILTERS_INDEX = 2; private static final int COLOR_FILTERS_INDEX = 2;
private static final int RGB_ADJUSTMENTS_INDEX = 3; private static final int RGB_ADJUSTMENTS_INDEX = 4;
private static final int HSL_ADJUSTMENT_INDEX = 4; private static final int HSL_ADJUSTMENT_INDEX = 5;
private static final int CONTRAST_INDEX = 5; private static final int CONTRAST_INDEX = 6;
private static final int PERIODIC_VIGNETTE_INDEX = 6; private static final int PERIODIC_VIGNETTE_INDEX = 7;
private static final String SAME_AS_INPUT_OPTION = "same as input"; private static final String SAME_AS_INPUT_OPTION = "same as input";
private static final float HALF_DIAGONAL = 1f / (float) Math.sqrt(2); private static final float HALF_DIAGONAL = 1f / (float) Math.sqrt(2);
......
...@@ -23,6 +23,7 @@ import android.app.Activity; ...@@ -23,6 +23,7 @@ import android.app.Activity;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.content.pm.PackageManager; import android.content.pm.PackageManager;
import android.graphics.Color;
import android.net.Uri; import android.net.Uri;
import android.os.Bundle; import android.os.Bundle;
import android.os.Handler; import android.os.Handler;
...@@ -44,6 +45,7 @@ import androidx.media3.effect.HslAdjustment; ...@@ -44,6 +45,7 @@ import androidx.media3.effect.HslAdjustment;
import androidx.media3.effect.RgbAdjustment; import androidx.media3.effect.RgbAdjustment;
import androidx.media3.effect.RgbFilter; import androidx.media3.effect.RgbFilter;
import androidx.media3.effect.RgbMatrix; import androidx.media3.effect.RgbMatrix;
import androidx.media3.effect.SingleColorLut;
import com.google.android.exoplayer2.C; import com.google.android.exoplayer2.C;
import com.google.android.exoplayer2.ExoPlayer; import com.google.android.exoplayer2.ExoPlayer;
import com.google.android.exoplayer2.MediaItem; import com.google.android.exoplayer2.MediaItem;
...@@ -338,6 +340,21 @@ public final class TransformerActivity extends AppCompatActivity { ...@@ -338,6 +340,21 @@ public final class TransformerActivity extends AppCompatActivity {
} }
} }
if (selectedEffects[3]) { 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( effects.add(
new RgbAdjustment.Builder() new RgbAdjustment.Builder()
.setRedScale(bundle.getFloat(ConfigurationActivity.RGB_ADJUSTMENT_RED_SCALE)) .setRedScale(bundle.getFloat(ConfigurationActivity.RGB_ADJUSTMENT_RED_SCALE))
...@@ -345,7 +362,7 @@ public final class TransformerActivity extends AppCompatActivity { ...@@ -345,7 +362,7 @@ public final class TransformerActivity extends AppCompatActivity {
.setBlueScale(bundle.getFloat(ConfigurationActivity.RGB_ADJUSTMENT_BLUE_SCALE)) .setBlueScale(bundle.getFloat(ConfigurationActivity.RGB_ADJUSTMENT_BLUE_SCALE))
.build()); .build());
} }
if (selectedEffects[4]) { if (selectedEffects[5]) {
effects.add( effects.add(
new HslAdjustment.Builder() new HslAdjustment.Builder()
.adjustHue(bundle.getFloat(ConfigurationActivity.HSL_ADJUSTMENTS_HUE)) .adjustHue(bundle.getFloat(ConfigurationActivity.HSL_ADJUSTMENTS_HUE))
...@@ -354,10 +371,10 @@ public final class TransformerActivity extends AppCompatActivity { ...@@ -354,10 +371,10 @@ public final class TransformerActivity extends AppCompatActivity {
.adjustLightness(bundle.getFloat(ConfigurationActivity.HSL_ADJUSTMENTS_LIGHTNESS)) .adjustLightness(bundle.getFloat(ConfigurationActivity.HSL_ADJUSTMENTS_LIGHTNESS))
.build()); .build());
} }
if (selectedEffects[5]) { if (selectedEffects[6]) {
effects.add(new Contrast(bundle.getFloat(ConfigurationActivity.CONTRAST_VALUE))); effects.add(new Contrast(bundle.getFloat(ConfigurationActivity.CONTRAST_VALUE)));
} }
if (selectedEffects[6]) { if (selectedEffects[7]) {
effects.add( effects.add(
(GlEffect) (GlEffect)
(Context context, boolean useHdr) -> (Context context, boolean useHdr) ->
...@@ -372,13 +389,13 @@ public final class TransformerActivity extends AppCompatActivity { ...@@ -372,13 +389,13 @@ public final class TransformerActivity extends AppCompatActivity {
ConfigurationActivity.PERIODIC_VIGNETTE_OUTER_RADIUS), ConfigurationActivity.PERIODIC_VIGNETTE_OUTER_RADIUS),
bundle.getFloat(ConfigurationActivity.PERIODIC_VIGNETTE_OUTER_RADIUS))); bundle.getFloat(ConfigurationActivity.PERIODIC_VIGNETTE_OUTER_RADIUS)));
} }
if (selectedEffects[6]) { if (selectedEffects[8]) {
effects.add(MatrixTransformationFactory.createSpin3dEffect()); effects.add(MatrixTransformationFactory.createSpin3dEffect());
} }
if (selectedEffects[7]) { if (selectedEffects[9]) {
effects.add((GlEffect) BitmapOverlayProcessor::new); effects.add((GlEffect) BitmapOverlayProcessor::new);
} }
if (selectedEffects[8]) { if (selectedEffects[10]) {
effects.add(MatrixTransformationFactory.createZoomInTransition()); effects.add(MatrixTransformationFactory.createZoomInTransition());
} }
transformerBuilder.setVideoEffects(effects.build()); transformerBuilder.setVideoEffects(effects.build());
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment