# Contrast

Artifact: [androidx.media3:media3-effect](https://developer.android.com/jetpack/androidx/releases/media3) [View Source](https://cs.android.com/search?q=file:androidx/media3/effect/Contrast.java+class:androidx.media3.effect.Contrast)

*** ** * ** ***


```
@UnstableApi
public final class Contrast implements RgbMatrix
```

<br />

*** ** * ** ***

A `https://developer.android.com/reference/androidx/media3/effect/RgbMatrix` to control the contrast of video frames.

## Summary

| ### Public constructors |
|---|
| `https://developer.android.com/reference/androidx/media3/effect/Contrast#Contrast(float)(@https://developer.android.com/reference/androidx/annotation/FloatRange(from = "-1", to = 1) float contrast)` Creates a new instance for the given contrast value. |

| ### Public methods |
|---|---|
| `float[]` | `https://developer.android.com/reference/androidx/media3/effect/Contrast#getMatrix(long,boolean)(long presentationTimeUs, boolean useHdr)` Returns the 4x4 RGB transformation `https://developer.android.com/reference/android/opengl/Matrix.html` to apply to the color values of each pixel in the frame with the given timestamp. |
| `boolean` | `https://developer.android.com/reference/androidx/media3/effect/Contrast#isNoOp(int,int)(int inputWidth, int inputHeight)` Returns whether a `https://developer.android.com/reference/androidx/media3/effect/GlEffect` applies no change at every timestamp. |

| ### Inherited methods |
|---|
| From [androidx.media3.common.Effect](https://developer.android.com/reference/androidx/media3/common/Effect) |---|---| | `long` | `https://developer.android.com/reference/androidx/media3/common/Effect#getDurationAfterEffectApplied(long)(long durationUs)` Returns the expected duration of the output stream when the effect is applied given a input `durationUs`. | |
| From [androidx.media3.effect.GlEffect](https://developer.android.com/reference/androidx/media3/effect/GlEffect) |---|---| | `abstract https://developer.android.com/reference/androidx/media3/effect/GlShaderProgram` | `https://developer.android.com/reference/androidx/media3/effect/GlEffect#toGlShaderProgram(android.content.Context,boolean)(https://developer.android.com/reference/android/content/Context.html context, boolean useHdr)` Returns a `https://developer.android.com/reference/androidx/media3/effect/GlShaderProgram` that applies the effect. | |
| From [androidx.media3.effect.RgbMatrix](https://developer.android.com/reference/androidx/media3/effect/RgbMatrix) |---|---| | `https://developer.android.com/reference/androidx/media3/effect/BaseGlShaderProgram` | `https://developer.android.com/reference/androidx/media3/effect/RgbMatrix#toGlShaderProgram(android.content.Context,boolean)(https://developer.android.com/reference/android/content/Context.html context, boolean useHdr)` Returns a `https://developer.android.com/reference/androidx/media3/effect/GlShaderProgram` that applies the effect. | |

## Public constructors

### Contrast

```
public Contrast(@FloatRange(from = "-1", to = 1) float contrast)
```

Creates a new instance for the given contrast value.

Contrast values range from -1 (all gray pixels) to 1 (maximum difference of colors). 0 means to add no contrast and leaves the frames unchanged.

## Public methods

### getMatrix

```
public float[] getMatrix(long presentationTimeUs, boolean useHdr)
```

Returns the 4x4 RGB transformation `https://developer.android.com/reference/android/opengl/Matrix.html` 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 `https://developer.android.com/reference/androidx/media3/effect/RgbMatrix#toGlShaderProgram(android.content.Context,boolean)`. |

| Returns |
|---|---|
| `float[]` | The `RgbMatrix` to apply to the frame. |

### isNoOp

```
public boolean isNoOp(int inputWidth, int inputHeight)
```

Returns whether a `https://developer.android.com/reference/androidx/media3/effect/GlEffect` applies no change at every timestamp.

This can be used as a hint to skip this instance.

| Parameters |
|---|---|
| `int inputWidth` | The input frame width, in pixels. |
| `int inputHeight` | The input frame height, in pixels. |