diff --git a/demos/gl/src/main/assets/bitmap_overlay_video_processor_fragment.glsl b/demos/gl/src/main/assets/bitmap_overlay_video_processor_fragment.glsl index 17fec0601d..1c39979a50 100644 --- a/demos/gl/src/main/assets/bitmap_overlay_video_processor_fragment.glsl +++ b/demos/gl/src/main/assets/bitmap_overlay_video_processor_fragment.glsl @@ -15,19 +15,19 @@ #extension GL_OES_EGL_image_external : require precision mediump float; // External texture containing video decoder output. -uniform samplerExternalOES tex_sampler_0; +uniform samplerExternalOES uTexSampler0; // Texture containing the overlap bitmap. -uniform sampler2D tex_sampler_1; +uniform sampler2D uTexSampler1; // Horizontal scaling factor for the overlap bitmap. -uniform float scaleX; +uniform float uScaleX; // Vertical scaling factory for the overlap bitmap. -uniform float scaleY; -varying vec2 v_texcoord; +uniform float uScaleY; +varying vec2 vTexCoords; void main() { - vec4 videoColor = texture2D(tex_sampler_0, v_texcoord); - vec4 overlayColor = texture2D(tex_sampler_1, - vec2(v_texcoord.x * scaleX, - v_texcoord.y * scaleY)); + vec4 videoColor = texture2D(uTexSampler0, vTexCoords); + vec4 overlayColor = texture2D(uTexSampler1, + vec2(vTexCoords.x * uScaleX, + vTexCoords.y * uScaleY)); // Blend the video decoder output and the overlay bitmap. gl_FragColor = videoColor * (1.0 - overlayColor.a) + overlayColor * overlayColor.a; diff --git a/demos/gl/src/main/assets/bitmap_overlay_video_processor_vertex.glsl b/demos/gl/src/main/assets/bitmap_overlay_video_processor_vertex.glsl index 1cb01b8293..b10aa6880e 100644 --- a/demos/gl/src/main/assets/bitmap_overlay_video_processor_vertex.glsl +++ b/demos/gl/src/main/assets/bitmap_overlay_video_processor_vertex.glsl @@ -11,11 +11,11 @@ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. -attribute vec4 a_position; -attribute vec4 a_texcoord; -uniform mat4 tex_transform; -varying vec2 v_texcoord; +attribute vec4 aFramePosition; +attribute vec4 aTexCoords; +uniform mat4 uTexTransform; +varying vec2 vTexCoords; void main() { - gl_Position = a_position; - v_texcoord = (tex_transform * a_texcoord).xy; + gl_Position = aFramePosition; + vTexCoords = (uTexTransform * aTexCoords).xy; } diff --git a/demos/gl/src/main/java/androidx/media3/demo/gl/BitmapOverlayVideoProcessor.java b/demos/gl/src/main/java/androidx/media3/demo/gl/BitmapOverlayVideoProcessor.java index 65472412b0..cf3945be12 100644 --- a/demos/gl/src/main/java/androidx/media3/demo/gl/BitmapOverlayVideoProcessor.java +++ b/demos/gl/src/main/java/androidx/media3/demo/gl/BitmapOverlayVideoProcessor.java @@ -86,9 +86,9 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull; throw new IllegalStateException(e); } program.setBufferAttribute( - "a_position", GlUtil.getNormalizedCoordinateBounds(), GlUtil.RECTANGLE_VERTICES_COUNT); + "aFramePosition", GlUtil.getNormalizedCoordinateBounds(), GlUtil.RECTANGLE_VERTICES_COUNT); program.setBufferAttribute( - "a_texcoord", GlUtil.getTextureCoordinateBounds(), GlUtil.RECTANGLE_VERTICES_COUNT); + "aTexCoords", GlUtil.getTextureCoordinateBounds(), GlUtil.RECTANGLE_VERTICES_COUNT); GLES20.glGenTextures(1, textures, 0); GLES20.glBindTexture(GL10.GL_TEXTURE_2D, textures[0]); GLES20.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MIN_FILTER, GL10.GL_NEAREST); @@ -118,11 +118,11 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull; // Run the shader program. GlUtil.Program program = checkNotNull(this.program); - program.setSamplerTexIdUniform("tex_sampler_0", frameTexture, /* unit= */ 0); - program.setSamplerTexIdUniform("tex_sampler_1", textures[0], /* unit= */ 1); - program.setFloatUniform("scaleX", bitmapScaleX); - program.setFloatUniform("scaleY", bitmapScaleY); - program.setFloatsUniform("tex_transform", transformMatrix); + program.setSamplerTexIdUniform("uTexSampler0", frameTexture, /* unit= */ 0); + program.setSamplerTexIdUniform("uTexSampler1", textures[0], /* unit= */ 1); + program.setFloatUniform("uScaleX", bitmapScaleX); + program.setFloatUniform("uScaleY", bitmapScaleY); + program.setFloatsUniform("uTexTransform", transformMatrix); program.bindAttributesAndUniforms(); GLES20.glClear(GLES20.GL_COLOR_BUFFER_BIT); GLES20.glDrawArrays(GLES20.GL_TRIANGLE_STRIP, /* first= */ 0, /* count= */ 4);