# androidx.media3.effect

*** ** * ** ***

## Interfaces

|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/effect/ByteBufferGlEffect.Processor` | A processor that takes in `https://developer.android.com/reference/java/nio/ByteBuffer.html` that represent input image data, and produces results of type `<T>`. |
| `https://developer.android.com/reference/kotlin/androidx/media3/effect/ColorLut` | Specifies color transformations using color lookup tables to apply to each frame in the fragment shader. |
| `https://developer.android.com/reference/kotlin/androidx/media3/effect/ConvolutionFunction1D` | An interface for 1 dimensional convolution functions. |
| `https://developer.android.com/reference/kotlin/androidx/media3/effect/ConvolutionFunction1D.Provider` | A configurable provider for `https://developer.android.com/reference/kotlin/androidx/media3/effect/ConvolutionFunction1D` instances. |
| `https://developer.android.com/reference/kotlin/androidx/media3/effect/DefaultVideoFrameProcessor.ReleaseOutputTextureCallback` | Releases the output information stored for textures before and at `presentationTimeUs`. |
| `https://developer.android.com/reference/kotlin/androidx/media3/effect/GlEffect` | Interface for a video frame effect with a `https://developer.android.com/reference/kotlin/androidx/media3/effect/GlShaderProgram` implementation. |
| `https://developer.android.com/reference/kotlin/androidx/media3/effect/GlMatrixTransformation` | Specifies a 4x4 transformation `https://developer.android.com/reference/android/opengl/Matrix.html` to apply in the vertex shader for each input frame. |
| `https://developer.android.com/reference/kotlin/androidx/media3/effect/GlShaderProgram` | Processes frames from one OpenGL 2D texture to another. |
| `https://developer.android.com/reference/kotlin/androidx/media3/effect/GlShaderProgram.ErrorListener` | Listener for video frame processing errors. |
| `https://developer.android.com/reference/kotlin/androidx/media3/effect/GlShaderProgram.InputListener` | Listener for input-related video frame processing events. |
| `https://developer.android.com/reference/kotlin/androidx/media3/effect/GlShaderProgram.OutputListener` | Listener for output-related video frame processing events. |
| `https://developer.android.com/reference/kotlin/androidx/media3/effect/GlTextureFrameConsumer` | Consumes a `https://developer.android.com/reference/kotlin/androidx/media3/effect/GlTextureFrame`. |
| `https://developer.android.com/reference/kotlin/androidx/media3/effect/GlTextureFrameConsumer.GlTextureFrameProcessor` | Allowing outputting `https://developer.android.com/reference/kotlin/androidx/media3/effect/GlTextureFrame` from the `https://developer.android.com/reference/kotlin/androidx/media3/effect/GlTextureFrameConsumer`. |
| `https://developer.android.com/reference/kotlin/androidx/media3/effect/GlTextureProducer` | A component that outputs `https://developer.android.com/reference/kotlin/androidx/media3/common/GlTextureInfo`. |
| `https://developer.android.com/reference/kotlin/androidx/media3/effect/GlTextureProducer.Listener` | Listener for texture output. |
| `https://developer.android.com/reference/kotlin/androidx/media3/effect/HardwareBufferJniWrapper` | Wrapper for `https://developer.android.com/reference/android/hardware/HardwareBuffer.html` JNI methods. |
| `https://developer.android.com/reference/kotlin/androidx/media3/effect/MatrixTransformation` | Specifies a 3x3 transformation `https://developer.android.com/reference/android/graphics/Matrix.html` to apply in the vertex shader for each frame. |
| `https://developer.android.com/reference/kotlin/androidx/media3/effect/PacketConsumer` | A consumer that accepts `https://developer.android.com/reference/kotlin/androidx/media3/effect/PacketConsumer.Packet`s. |
| `https://developer.android.com/reference/kotlin/androidx/media3/effect/PacketConsumer.Factory` | A factory for `https://developer.android.com/reference/kotlin/androidx/media3/effect/PacketConsumer` instances. |
| `https://developer.android.com/reference/kotlin/androidx/media3/effect/PacketConsumer.Packet` | Represents a packet. |
| `https://developer.android.com/reference/kotlin/androidx/media3/effect/PacketProcessor` | A `https://developer.android.com/reference/kotlin/androidx/media3/effect/PacketConsumer` that processes `https://developer.android.com/reference/kotlin/androidx/media3/effect/PacketConsumer.Packet`s and forwards them to a downstream `https://developer.android.com/reference/kotlin/androidx/media3/effect/PacketConsumer`. |
| `https://developer.android.com/reference/kotlin/androidx/media3/effect/RenderingPacketConsumer` | A `https://developer.android.com/reference/kotlin/androidx/media3/effect/PacketConsumer` that renders input `https://developer.android.com/reference/kotlin/androidx/media3/effect/PacketConsumer.Packet`s to an output `https://developer.android.com/reference/kotlin/androidx/media3/effect/RenderingPacketConsumer`. |
| `https://developer.android.com/reference/kotlin/androidx/media3/effect/RgbMatrix` | Specifies a 4x4 RGB color transformation matrix to apply to each frame in the fragment shader. |
| `https://developer.android.com/reference/kotlin/androidx/media3/effect/TimestampAdjustment.TimestampMap` | **This interface is deprecated.** Deprecated in Java |
| `https://developer.android.com/reference/kotlin/androidx/media3/effect/VideoCompositor` | Interface for a video compositor that combines frames from multiple input sources to produce output frames. |
| `https://developer.android.com/reference/kotlin/androidx/media3/effect/VideoCompositor.Listener` | Listener for errors. |

## Classes

|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/effect/AlphaScale` | Scales the alpha value (i.e. the translucency) of a frame. |
| `https://developer.android.com/reference/kotlin/androidx/media3/effect/BaseGlShaderProgram` | A base implementation of `https://developer.android.com/reference/kotlin/androidx/media3/effect/GlShaderProgram`. |
| `https://developer.android.com/reference/kotlin/androidx/media3/effect/BitmapOverlay` | Creates `https://developer.android.com/reference/kotlin/androidx/media3/effect/TextureOverlay`s from `https://developer.android.com/reference/android/graphics/Bitmap.html`s. |
| `https://developer.android.com/reference/kotlin/androidx/media3/effect/Brightness` | Modifies brightness of an input frame. |
| `https://developer.android.com/reference/kotlin/androidx/media3/effect/ByteBufferGlEffect` | A `https://developer.android.com/reference/kotlin/androidx/media3/effect/GlEffect` implementation that runs an asynchronous `https://developer.android.com/reference/kotlin/androidx/media3/effect/ByteBufferGlEffect.Processor` on video frame data passed in as a `https://developer.android.com/reference/kotlin/androidx/media3/effect/ByteBufferGlEffect.Image`. |
| `https://developer.android.com/reference/kotlin/androidx/media3/effect/ByteBufferGlEffect.Image` | A class that represents image data is backed by a `https://developer.android.com/reference/java/nio/ByteBuffer.html`. |
| `https://developer.android.com/reference/kotlin/androidx/media3/effect/CanvasOverlay` | A `https://developer.android.com/reference/kotlin/androidx/media3/effect/TextOverlay` that is backed by a `https://developer.android.com/reference/android/graphics/Canvas.html`. |
| `https://developer.android.com/reference/kotlin/androidx/media3/effect/ColorConversion` | Converts frames from an input color space to an electrical output color space. |
| `https://developer.android.com/reference/kotlin/androidx/media3/effect/Contrast` | A `https://developer.android.com/reference/kotlin/androidx/media3/effect/RgbMatrix` to control the contrast of video frames. |
| `https://developer.android.com/reference/kotlin/androidx/media3/effect/Crop` | Specifies a crop to apply in the vertex shader. |
| `https://developer.android.com/reference/kotlin/androidx/media3/effect/DebugTraceUtil` | A debugging tracing utility. |
| `https://developer.android.com/reference/kotlin/androidx/media3/effect/DebugViewEffect` | `https://developer.android.com/reference/kotlin/androidx/media3/effect/GlEffect` that renders to a `https://developer.android.com/reference/android/view/SurfaceView.html` provided by `https://developer.android.com/reference/kotlin/androidx/media3/common/DebugViewProvider`. |
| `https://developer.android.com/reference/kotlin/androidx/media3/effect/DebugViewShaderProgram` | `https://developer.android.com/reference/kotlin/androidx/media3/effect/GlShaderProgram` that renders to a `https://developer.android.com/reference/android/view/SurfaceView.html` provided by `https://developer.android.com/reference/kotlin/androidx/media3/common/DebugViewProvider`. |
| `https://developer.android.com/reference/kotlin/androidx/media3/effect/DefaultGlFrameProcessor` | A `https://developer.android.com/reference/kotlin/androidx/media3/common/video/FrameProcessor` implementation that executes a chain of `https://developer.android.com/reference/kotlin/androidx/media3/effect/GlTextureFrameConsumer`s. |
| `https://developer.android.com/reference/kotlin/androidx/media3/effect/DefaultGlFrameProcessor.Factory` | A `https://developer.android.com/reference/kotlin/androidx/media3/common/video/FrameProcessor.Factory` that creates `https://developer.android.com/reference/kotlin/androidx/media3/effect/DefaultGlFrameProcessor` instances. |
| `https://developer.android.com/reference/kotlin/androidx/media3/effect/DefaultGlFrameProcessor.Factory.Builder` | A builder for `https://developer.android.com/reference/kotlin/androidx/media3/effect/DefaultGlFrameProcessor.Factory` instances. |
| `https://developer.android.com/reference/kotlin/androidx/media3/effect/DefaultGlObjectsProvider` | Implementation of `https://developer.android.com/reference/kotlin/androidx/media3/common/GlObjectsProvider` that configures an `https://developer.android.com/reference/android/opengl/EGLContext.html` to share data with a preexisting `sharedEglContext`. |
| `https://developer.android.com/reference/kotlin/androidx/media3/effect/DefaultVideoCompositor` | A basic `https://developer.android.com/reference/kotlin/androidx/media3/effect/VideoCompositor` implementation that takes in frames from input sources' streams and combines them into one output stream. |
| `https://developer.android.com/reference/kotlin/androidx/media3/effect/DefaultVideoFrameProcessor` | A `https://developer.android.com/reference/kotlin/androidx/media3/common/VideoFrameProcessor` implementation that applies `https://developer.android.com/reference/kotlin/androidx/media3/effect/GlEffect` instances using OpenGL on a background thread. |
| `https://developer.android.com/reference/kotlin/androidx/media3/effect/DefaultVideoFrameProcessor.Factory` | A factory for `https://developer.android.com/reference/kotlin/androidx/media3/effect/DefaultVideoFrameProcessor` instances. |
| `https://developer.android.com/reference/kotlin/androidx/media3/effect/DefaultVideoFrameProcessor.Factory.Builder` | A builder for `https://developer.android.com/reference/kotlin/androidx/media3/effect/DefaultVideoFrameProcessor.Factory` instances. |
| `https://developer.android.com/reference/kotlin/androidx/media3/effect/DrawableOverlay` | Creates a `https://developer.android.com/reference/kotlin/androidx/media3/effect/TextureOverlay` from `https://developer.android.com/reference/android/graphics/drawable/Drawable.html`. |
| `https://developer.android.com/reference/kotlin/androidx/media3/effect/FrameCache` | Caches the input frames. |
| `https://developer.android.com/reference/kotlin/androidx/media3/effect/FrameDropEffect` | Drops frames to lower average frame rate to around `targetFrameRate`. |
| `https://developer.android.com/reference/kotlin/androidx/media3/effect/FrameProcessorUtils` | Utility methods for FrameProcessor implementations. |
| `https://developer.android.com/reference/kotlin/androidx/media3/effect/FrameProcessorUtils.EglImageTextureWrapper` | Data class holding handles to `EglImage`, texture ID and frame buffer object ID. |
| `https://developer.android.com/reference/kotlin/androidx/media3/effect/GaussianBlur` | A `https://developer.android.com/reference/kotlin/androidx/media3/effect/SeparableConvolution` to apply a Gaussian blur on image data. |
| `https://developer.android.com/reference/kotlin/androidx/media3/effect/GaussianBlurWithFrameOverlaid` | A `https://developer.android.com/reference/kotlin/androidx/media3/effect/SeparableConvolution` to apply a Gaussian blur on image data. |
| `https://developer.android.com/reference/kotlin/androidx/media3/effect/GaussianFunction` | Implementation of a symmetric Gaussian function with a limited domain. |
| `https://developer.android.com/reference/kotlin/androidx/media3/effect/GlTextureFrame` | A frame that wraps a `https://developer.android.com/reference/kotlin/androidx/media3/common/GlTextureInfo`. |
| `https://developer.android.com/reference/kotlin/androidx/media3/effect/GlTextureFrame.Builder` | A builder for `https://developer.android.com/reference/kotlin/androidx/media3/effect/GlTextureFrame` instances. |
| `https://developer.android.com/reference/kotlin/androidx/media3/effect/HardwareBufferJni` | JNI methods for HardwareBuffer interaction. |
| `https://developer.android.com/reference/kotlin/androidx/media3/effect/HslAdjustment` | Adjusts the HSL (Hue, Saturation, and Lightness) of a frame. |
| `https://developer.android.com/reference/kotlin/androidx/media3/effect/HslAdjustment.Builder` | A builder for `HslAdjustment` instances. |
| `https://developer.android.com/reference/kotlin/androidx/media3/effect/LanczosResample` | A `https://developer.android.com/reference/kotlin/androidx/media3/effect/GlEffect` that applies a Lanczos-windowed sinc function when resampling an image. |
| `https://developer.android.com/reference/kotlin/androidx/media3/effect/MultipleInputVideoGraph` | A `https://developer.android.com/reference/kotlin/androidx/media3/common/VideoGraph` that handles multiple input streams. |
| `https://developer.android.com/reference/kotlin/androidx/media3/effect/MultipleInputVideoGraph.Factory` | A `https://developer.android.com/reference/kotlin/androidx/media3/common/VideoGraph.Factory` for `https://developer.android.com/reference/kotlin/androidx/media3/effect/MultipleInputVideoGraph`. |
| `https://developer.android.com/reference/kotlin/androidx/media3/effect/OverlayEffect` | Applies a list of `https://developer.android.com/reference/kotlin/androidx/media3/effect/TextureOverlay`s to a frame in FIFO order (the last overlay in the list is displayed on top). |
| `https://developer.android.com/reference/kotlin/androidx/media3/effect/PacketConsumer.Packet.Payload` | A `https://developer.android.com/reference/kotlin/androidx/media3/effect/PacketConsumer.Packet` implementation to wrap a `https://developer.android.com/reference/kotlin/androidx/media3/effect/PacketConsumer.Packet.Payload#payload()` of type `https://developer.android.com/reference/kotlin/androidx/media3/effect/PacketConsumer.Packet.Payload`. |
| `https://developer.android.com/reference/kotlin/androidx/media3/effect/PacketConsumerCaller` | A utility that connects a producer of `https://developer.android.com/reference/kotlin/androidx/media3/effect/PacketConsumer.Packet` of type `https://developer.android.com/reference/kotlin/androidx/media3/effect/PacketConsumerCaller` to a `https://developer.android.com/reference/kotlin/androidx/media3/effect/PacketConsumer` via a `https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-core/kotlinx.coroutines.channels/-channel/index.html`. |
| `https://developer.android.com/reference/kotlin/androidx/media3/effect/PassthroughShaderProgram` | A `https://developer.android.com/reference/kotlin/androidx/media3/effect/GlShaderProgram` that passes a frame from the input to the output listener without copying. |
| `https://developer.android.com/reference/kotlin/androidx/media3/effect/Presentation` | Controls how a frame is presented with options to set the output resolution and choose how to map the input pixels onto the output frame geometry (for example, by stretching the input frame to match the specified output frame, or fitting the input frame using letterboxing). |
| `https://developer.android.com/reference/kotlin/androidx/media3/effect/RgbAdjustment` | Scales the red, green, and blue color channels of a frame. |
| `https://developer.android.com/reference/kotlin/androidx/media3/effect/RgbAdjustment.Builder` | A builder for `https://developer.android.com/reference/kotlin/androidx/media3/effect/RgbAdjustment` instances. |
| `https://developer.android.com/reference/kotlin/androidx/media3/effect/RgbFilter` | Provides common color filters. |
| `https://developer.android.com/reference/kotlin/androidx/media3/effect/ScaleAndRotateTransformation` | Specifies a simple rotation and/or scale to apply in the vertex shader. |
| `https://developer.android.com/reference/kotlin/androidx/media3/effect/ScaleAndRotateTransformation.Builder` | A builder for `https://developer.android.com/reference/kotlin/androidx/media3/effect/ScaleAndRotateTransformation` instances. |
| `https://developer.android.com/reference/kotlin/androidx/media3/effect/SeparableConvolution` | A `https://developer.android.com/reference/kotlin/androidx/media3/effect/GlEffect` for performing separable convolutions. |
| `https://developer.android.com/reference/kotlin/androidx/media3/effect/SeparableConvolutionShaderProgram` | A `https://developer.android.com/reference/kotlin/androidx/media3/effect/GlShaderProgram` for performing separable convolutions. |
| `https://developer.android.com/reference/kotlin/androidx/media3/effect/SingleColorLut` | Transforms the colors of a frame by applying the same color lookup table to each frame. |
| `https://developer.android.com/reference/kotlin/androidx/media3/effect/SingleInputVideoGraph` | A `https://developer.android.com/reference/kotlin/androidx/media3/common/VideoGraph` that handles one input stream. |
| `https://developer.android.com/reference/kotlin/androidx/media3/effect/SingleInputVideoGraph.Factory` | A `https://developer.android.com/reference/kotlin/androidx/media3/common/VideoGraph.Factory` for `https://developer.android.com/reference/kotlin/androidx/media3/effect/SingleInputVideoGraph`. |
| `https://developer.android.com/reference/kotlin/androidx/media3/effect/SpeedChangeEffect` | **This class is deprecated.** Use `EditedMediaItem.Builder#setSpeed(SpeedProvider)` instead. <br /> |
| `https://developer.android.com/reference/kotlin/androidx/media3/effect/StaticOverlaySettings` | A statically valued `https://developer.android.com/reference/kotlin/androidx/media3/common/OverlaySettings`. |
| `https://developer.android.com/reference/kotlin/androidx/media3/effect/StaticOverlaySettings.Builder` | A builder for `https://developer.android.com/reference/kotlin/androidx/media3/effect/StaticOverlaySettings` instances. |
| `https://developer.android.com/reference/kotlin/androidx/media3/effect/TextOverlay` | Creates a `https://developer.android.com/reference/kotlin/androidx/media3/effect/TextureOverlay` from text. |
| `https://developer.android.com/reference/kotlin/androidx/media3/effect/TextureOverlay` | Creates overlays from OpenGL textures. |
| `https://developer.android.com/reference/kotlin/androidx/media3/effect/TimestampAdjustment` | **This class is deprecated.** Use `EditedMediaItem.Builder#setSpeed(SpeedProvider)` instead. <br /> |
| `https://developer.android.com/reference/kotlin/androidx/media3/effect/TimestampAdjustmentShaderProgram` | **This class is deprecated.** Use `EditedMediaItem.Builder#setSpeed(SpeedProvider)` instead. <br /> |
| `https://developer.android.com/reference/kotlin/androidx/media3/effect/TimestampWrapper` | Applies a `https://developer.android.com/reference/kotlin/androidx/media3/effect/GlEffect` from `startTimeUs` to `endTimeUs`, and no change on all other timestamps. |

## Objects

|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/effect/PacketConsumer.Packet.EndOfStream` | A `https://developer.android.com/reference/kotlin/androidx/media3/effect/PacketConsumer.Packet` implementation to represent an end of stream (EOS) signal. |
| `https://developer.android.com/reference/kotlin/androidx/media3/effect/PacketConsumerUtil` |   |

## Annotations

|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/effect/DebugTraceUtil.Component` | Components logged by `https://developer.android.com/reference/kotlin/androidx/media3/effect/DebugTraceUtil#logEvent(java.lang.String,java.lang.String,long,java.lang.String,java.lang.Object...)`. |
| `https://developer.android.com/reference/kotlin/androidx/media3/effect/DebugTraceUtil.Event` | Events logged by `https://developer.android.com/reference/kotlin/androidx/media3/effect/DebugTraceUtil#logEvent(java.lang.String,java.lang.String,long,java.lang.String,java.lang.Object...)`. |
| `https://developer.android.com/reference/kotlin/androidx/media3/effect/DefaultVideoFrameProcessor.WorkingColorSpace` | Specifies the color space that frames passed to intermediate `https://developer.android.com/reference/kotlin/androidx/media3/effect/GlShaderProgram`s will be represented in. |
| `https://developer.android.com/reference/kotlin/androidx/media3/effect/Presentation.Layout` | Strategies controlling the layout of input pixels in the output frame. |