@UnstableApi
public interface RgbMatrix extends GlEffect

Known direct subclasses
Brightness

Modifies brightness of an input frame.

Contrast

A RgbMatrix to control the contrast of video frames.

RgbAdjustment

Scales the red, green, and blue color channels of a frame.

RgbFilter

Provides common color filters.


Specifies a 4x4 RGB color transformation matrix to apply to each frame in the fragment shader.

Summary

Public methods

abstract float[]
getMatrix(long presentationTimeUs, boolean useHdr)

Returns the 4x4 RGB transformation matrix to apply to the color values of each pixel in the frame with the given timestamp.

default BaseGlShaderProgram
toGlShaderProgram(Context context, boolean useHdr)

Returns a GlShaderProgram that applies the effect.

Inherited methods

From androidx.media3.effect.GlEffect
default boolean
isNoOp(int inputWidth, int inputHeight)

Returns whether a GlEffect applies no change at every timestamp.

Public methods

getMatrix

abstract float[] getMatrix(long presentationTimeUs, boolean useHdr)

Returns the 4x4 RGB transformation matrix to apply to the color values of each pixel in the frame with the given timestamp.

Parameters
long presentationTimeUs

The timestamp of the frame to apply the matrix on.

boolean useHdr

If true, colors will be in linear RGB BT.2020. If false, colors will be in linear RGB BT.709. Must be consistent with useHdr in toGlShaderProgram.

Returns
float[]

The RgbMatrix to apply to the frame.

toGlShaderProgram

default BaseGlShaderProgram toGlShaderProgram(Context context, boolean useHdr)

Returns a GlShaderProgram that applies the effect.

Parameters
Context context

A Context.

boolean useHdr

Whether input textures come from an HDR source. If true, colors will be in linear RGB BT.2020. If false, colors will be in linear RGB BT.709.

Throws
androidx.media3.common.VideoFrameProcessingException

If an error occurs while creating the .