@UnstableApi
public interface Effect

Known direct subclasses
GlEffect

Interface for a video frame effect with a GlShaderProgram implementation.

Known indirect subclasses
AlphaScale

Scales the alpha value (i.e. the translucency) of a frame.

Brightness

Modifies brightness of an input frame.

ByteBufferGlEffect

A GlEffect implementation that runs an asynchronous Processor on video frame data passed in as a ByteBufferGlEffect.Image.

ColorLut

Specifies color transformations using color lookup tables to apply to each frame in the fragment shader.

Contrast

A RgbMatrix to control the contrast of video frames.

Crop

Specifies a crop to apply in the vertex shader.

FrameCache

Caches the input frames.

FrameDropEffect

Drops frames to lower average frame rate to around targetFrameRate.

GaussianBlurWithFrameOverlaid

A SeparableConvolution to apply a Gaussian blur on image data.

GaussianBlur

A SeparableConvolution to apply a Gaussian blur on image data.

GlMatrixTransformation

Specifies a 4x4 transformation Matrix to apply in the vertex shader for each input frame.

HslAdjustment

Adjusts the HSL (Hue, Saturation, and Lightness) of a frame.

LanczosResample

A GlEffect that applies a Lanczos-windowed sinc function when resampling an image.

MatrixTransformation

Specifies a 3x3 transformation Matrix to apply in the vertex shader for each frame.

OverlayEffect

Applies a list of TextureOverlays to a frame in FIFO order (the last overlay in the list is displayed on top).

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).

RgbAdjustment

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

RgbFilter

Provides common color filters.

RgbMatrix

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

ScaleAndRotateTransformation

Specifies a simple rotation and/or scale to apply in the vertex shader.

SeparableConvolution

A GlEffect for performing separable convolutions.

SingleColorLut

Transforms the colors of a frame by applying the same color lookup table to each frame.

SpeedChangeEffect

Applies a speed change by updating the frame timestamps.

TimestampAdjustment

Changes the frame timestamps using the TimestampMap.

TimestampWrapper

Applies a GlEffect from startTimeUs to endTimeUs, and no change on all other timestamps.


Marker interface for a video frame effect.

Summary

Public methods

default long

Returns the expected duration of the output stream when the effect is applied given a input durationUs.

Public methods

getDurationAfterEffectApplied

default long getDurationAfterEffectApplied(long durationUs)

Returns the expected duration of the output stream when the effect is applied given a input durationUs.