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 b3f6204814..61a23601dc 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 @@ -617,7 +617,7 @@ public final class TransformerActivity extends AppCompatActivity { if (selectedEffects[ConfigurationActivity.BITMAP_OVERLAY_INDEX]) { OverlaySettings overlaySettings = new OverlaySettings.Builder() - .setAlpha( + .setAlphaScale( bundle.getFloat( ConfigurationActivity.BITMAP_OVERLAY_ALPHA, /* defaultValue= */ 1)) .build(); @@ -631,7 +631,7 @@ public final class TransformerActivity extends AppCompatActivity { if (selectedEffects[ConfigurationActivity.TEXT_OVERLAY_INDEX]) { OverlaySettings overlaySettings = new OverlaySettings.Builder() - .setAlpha( + .setAlphaScale( bundle.getFloat(ConfigurationActivity.TEXT_OVERLAY_ALPHA, /* defaultValue= */ 1)) .build(); SpannableString overlayText = diff --git a/libraries/effect/src/androidTest/java/androidx/media3/effect/OverlayShaderProgramPixelTest.java b/libraries/effect/src/androidTest/java/androidx/media3/effect/OverlayShaderProgramPixelTest.java index 7722a9a246..a9a46867ee 100644 --- a/libraries/effect/src/androidTest/java/androidx/media3/effect/OverlayShaderProgramPixelTest.java +++ b/libraries/effect/src/androidTest/java/androidx/media3/effect/OverlayShaderProgramPixelTest.java @@ -253,7 +253,7 @@ public class OverlayShaderProgramPixelTest { @RequiresNonNull("testId") public void drawFrame_translucentBitmapOverlay_blendsBitmapIntoFrame() throws Exception { Bitmap bitmap = readBitmap(OVERLAY_PNG_ASSET_PATH); - OverlaySettings overlaySettings = new OverlaySettings.Builder().setAlpha(0.5f).build(); + OverlaySettings overlaySettings = new OverlaySettings.Builder().setAlphaScale(0.5f).build(); BitmapOverlay translucentBitmapOverlay = BitmapOverlay.createStaticBitmapOverlay(bitmap, overlaySettings); overlayShaderProgram = @@ -277,7 +277,7 @@ public class OverlayShaderProgramPixelTest { @RequiresNonNull("testId") public void drawFrame_transparentTextOverlay_blendsBitmapIntoFrame() throws Exception { SpannableString overlayText = new SpannableString(/* source= */ "Text styling"); - OverlaySettings overlaySettings = new OverlaySettings.Builder().setAlpha(0f).build(); + OverlaySettings overlaySettings = new OverlaySettings.Builder().setAlphaScale(0f).build(); overlayText.setSpan( new ForegroundColorSpan(Color.GRAY), /* start= */ 0, @@ -400,7 +400,7 @@ public class OverlayShaderProgramPixelTest { new OverlaySettings.Builder().setVideoFrameAnchor(0.5f, 0.5f).build(); TextOverlay textOverlay = TextOverlay.createStaticTextOverlay(overlayText, overlaySettings1); Bitmap bitmap = readBitmap(OVERLAY_PNG_ASSET_PATH); - OverlaySettings overlaySettings2 = new OverlaySettings.Builder().setAlpha(0.5f).build(); + OverlaySettings overlaySettings2 = new OverlaySettings.Builder().setAlphaScale(0.5f).build(); BitmapOverlay bitmapOverlay = BitmapOverlay.createStaticBitmapOverlay(bitmap, overlaySettings2); overlayShaderProgram = new OverlayEffect(ImmutableList.of(textOverlay, bitmapOverlay)) diff --git a/libraries/effect/src/main/java/androidx/media3/effect/OverlaySettings.java b/libraries/effect/src/main/java/androidx/media3/effect/OverlaySettings.java index 35e947c7e8..18b3f5881c 100644 --- a/libraries/effect/src/main/java/androidx/media3/effect/OverlaySettings.java +++ b/libraries/effect/src/main/java/androidx/media3/effect/OverlaySettings.java @@ -26,7 +26,7 @@ import com.google.errorprone.annotations.CanIgnoreReturnValue; @UnstableApi public final class OverlaySettings { public final boolean useHdr; - public final float alpha; + public final float alphaScale; public final Pair videoFrameAnchor; public final Pair overlayAnchor; public final Pair scale; @@ -34,13 +34,13 @@ public final class OverlaySettings { private OverlaySettings( boolean useHdr, - float alpha, + float alphaScale, Pair videoFrameAnchor, Pair overlayAnchor, Pair scale, float rotationDegrees) { this.useHdr = useHdr; - this.alpha = alpha; + this.alphaScale = alphaScale; this.videoFrameAnchor = videoFrameAnchor; this.overlayAnchor = overlayAnchor; this.scale = scale; @@ -50,7 +50,7 @@ public final class OverlaySettings { /** A builder for {@link OverlaySettings} instances. */ public static final class Builder { private boolean useHdr; - private float alpha; + private float alphaScale; private Pair videoFrameAnchor; private Pair overlayAnchor; private Pair scale; @@ -58,7 +58,7 @@ public final class OverlaySettings { /** Creates a new {@link Builder}. */ public Builder() { - alpha = 1f; + alphaScale = 1f; videoFrameAnchor = Pair.create(0f, 0f); overlayAnchor = Pair.create(0f, 0f); scale = Pair.create(1f, 1f); @@ -80,15 +80,15 @@ public final class OverlaySettings { /** * Sets the alpha scale value of the overlay, altering its translucency. * - *

An {@code alpha} value of {@code 1} means no change is applied. A value below {@code 1} - * increases translucency, and a value above {@code 1} reduces translucency. + *

An {@code alphaScale} value of {@code 1} means no change is applied. A value below {@code + * 1} increases translucency, and a value above {@code 1} reduces translucency. * *

Set to always return {@code 1} by default. */ @CanIgnoreReturnValue - public Builder setAlpha(@FloatRange(from = 0) float alpha) { - checkArgument(0 <= alpha, "Alpha needs to be more than or equal to zero."); - this.alpha = alpha; + public Builder setAlphaScale(@FloatRange(from = 0) float alphaScale) { + checkArgument(0 <= alphaScale, "alphaScale needs to be greater than or equal to zero."); + this.alphaScale = alphaScale; return this; } @@ -165,7 +165,7 @@ public final class OverlaySettings { /** Creates an instance of {@link OverlaySettings}, using defaults if values are unset. */ public OverlaySettings build() { return new OverlaySettings( - useHdr, alpha, videoFrameAnchor, overlayAnchor, scale, rotationDegrees); + useHdr, alphaScale, videoFrameAnchor, overlayAnchor, scale, rotationDegrees); } } } diff --git a/libraries/effect/src/main/java/androidx/media3/effect/OverlayShaderProgram.java b/libraries/effect/src/main/java/androidx/media3/effect/OverlayShaderProgram.java index f1faa82cb3..3346cdbd8e 100644 --- a/libraries/effect/src/main/java/androidx/media3/effect/OverlayShaderProgram.java +++ b/libraries/effect/src/main/java/androidx/media3/effect/OverlayShaderProgram.java @@ -276,7 +276,8 @@ import com.google.common.collect.ImmutableList; Util.formatInvariant("uTransformationMatrix%d", texUnitIndex), transformationMatrix); glProgram.setFloatUniform( - Util.formatInvariant("uOverlayAlpha%d", texUnitIndex), overlaySettings.alpha); + Util.formatInvariant("uOverlayAlphaScale%d", texUnitIndex), + overlaySettings.alphaScale); } } glProgram.setSamplerTexIdUniform("uVideoTexSampler0", inputTexId, /* texUnitIndex= */ 0); @@ -387,7 +388,7 @@ import com.google.common.collect.ImmutableList; for (int texUnitIndex = 1; texUnitIndex <= numOverlays; texUnitIndex++) { shader .append(Util.formatInvariant("uniform sampler2D uOverlayTexSampler%d;\n", texUnitIndex)) - .append(Util.formatInvariant("uniform float uOverlayAlpha%d;\n", texUnitIndex)) + .append(Util.formatInvariant("uniform float uOverlayAlphaScale%d;\n", texUnitIndex)) .append(Util.formatInvariant("varying vec2 vOverlayTexSamplingCoord%d;\n", texUnitIndex)); } @@ -405,7 +406,7 @@ import com.google.common.collect.ImmutableList; texUnitIndex)) .append( Util.formatInvariant( - " uOverlayTexSampler%d, vOverlayTexSamplingCoord%d, uOverlayAlpha%d);\n", + " uOverlayTexSampler%d, vOverlayTexSamplingCoord%d, uOverlayAlphaScale%d);\n", texUnitIndex, texUnitIndex, texUnitIndex)) .append(Util.formatInvariant(" vec4 opticalOverlayColor%d = vec4(\n", texUnitIndex)) .append(