Added in [API level 16](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels) Summary: [Constants](https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#constants) \| [Fields](https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#lfields) \| [Ctors](https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#pubctors) \| [Methods](https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#pubmethods) \| [Inherited Methods](https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#inhmethods)

# MediaCodecInfo.CodecCapabilities

*** ** * ** ***

` public static final class MediaCodecInfo.CodecCapabilities `   
` extends https://developer.android.com/reference/java/lang/Object ` ` `

|---|---|
| [java.lang.Object](https://developer.android.com/reference/java/lang/Object) ||
| ↳ | android.media.MediaCodecInfo.CodecCapabilities |

<br />

*** ** * ** ***

Encapsulates the capabilities of a given codec component. For example, what profile/level combinations it supports and what colorspaces it is capable of providing the decoded data in, as well as some codec-type specific capability flags.

You can get an instance for a given `https://developer.android.com/reference/android/media/MediaCodecInfo` object with `https://developer.android.com/reference/android/media/MediaCodecInfo#getCapabilitiesForType(java.lang.String)`, passing a MIME type.

## Summary

| ### Constants ||
|---|---|
| `int` | `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_Format12bitRGB444` *This constant was deprecated in API level 23. Use `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_Format24bitBGR888`.* |
| `int` | `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_Format16bitARGB1555` *This constant was deprecated in API level 23. Use `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_Format32bitABGR8888`.* |
| `int` | `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_Format16bitARGB4444` *This constant was deprecated in API level 23. Use `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_Format32bitABGR8888`.* |
| `int` | `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_Format16bitBGR565` *This constant was deprecated in API level 23. Use `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_Format16bitRGB565`.* |
| `int` | `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_Format16bitRGB565` 16 bits per pixel RGB color format, with 5-bit red \& blue and 6-bit green component. |
| `int` | `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_Format18BitBGR666` *This constant was deprecated in API level 23. Use `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_Format24bitBGR888`.* |
| `int` | `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_Format18bitARGB1665` *This constant was deprecated in API level 23. Use `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_Format32bitABGR8888`.* |
| `int` | `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_Format18bitRGB666` *This constant was deprecated in API level 23. Use `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_Format24bitBGR888`.* |
| `int` | `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_Format19bitARGB1666` *This constant was deprecated in API level 23. Use `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_Format32bitABGR8888`.* |
| `int` | `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_Format24BitABGR6666` *This constant was deprecated in API level 23. Use `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_Format32bitABGR8888`.* |
| `int` | `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_Format24BitARGB6666` *This constant was deprecated in API level 23. Use `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_Format32bitABGR8888`.* |
| `int` | `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_Format24bitARGB1887` *This constant was deprecated in API level 23. Use `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_Format32bitABGR8888`.* |
| `int` | `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_Format24bitBGR888` 24 bits per pixel RGB color format, with 8-bit red, green \& blue components. |
| `int` | `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_Format24bitRGB888` *This constant was deprecated in API level 23. Use `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_Format24bitBGR888` or `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_FormatRGBFlexible`.* |
| `int` | `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_Format25bitARGB1888` *This constant was deprecated in API level 23. Use `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_Format32bitABGR8888`.* |
| `int` | `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_Format32bitABGR2101010` 32 bits per pixel RGBA color format, with 10-bit red, green, blue, and 2-bit alpha components. |
| `int` | `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_Format32bitABGR8888` 32 bits per pixel RGBA color format, with 8-bit red, green, blue, and alpha components. |
| `int` | `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_Format32bitARGB8888` *This constant was deprecated in API level 23. Use `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_Format32bitABGR8888` Or `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_FormatRGBAFlexible`.* |
| `int` | `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_Format32bitBGRA8888` *This constant was deprecated in API level 23. Use `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_Format32bitABGR8888` Or `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_FormatRGBAFlexible`.* |
| `int` | `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_Format64bitABGRFloat` 64 bits per pixel RGBA color format, with 16-bit signed floating point red, green, blue, and alpha components. |
| `int` | `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_Format8bitRGB332` *This constant was deprecated in API level 23. Use `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_Format24bitBGR888`.* |
| `int` | `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_FormatCbYCrY` *This constant was deprecated in API level 23. Use `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_FormatYUV422Flexible`.* |
| `int` | `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_FormatCrYCbY` *This constant was deprecated in API level 23. Use `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_FormatYUV422Flexible`.* |
| `int` | `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_FormatL16` 16 bits per pixel, little-endian Y color format. |
| `int` | `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_FormatL2` *This constant was deprecated in API level 23. Use `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_FormatL8`.* |
| `int` | `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_FormatL24` *This constant was deprecated in API level 23. Use `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_FormatL16`.* |
| `int` | `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_FormatL32` *This constant was deprecated in API level 23. Use `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_FormatL16`.* |
| `int` | `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_FormatL4` *This constant was deprecated in API level 23. Use `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_FormatL8`.* |
| `int` | `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_FormatL8` 8 bits per pixel Y color format. |
| `int` | `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_FormatMonochrome` *This constant was deprecated in API level 23. Use `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_Format24bitBGR888`.* |
| `int` | `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_FormatRGBAFlexible` Flexible 32 bits per pixel RGBA color format with 8-bit red, green, blue, and alpha components. |
| `int` | `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_FormatRGBFlexible` Flexible 24 bits per pixel RGB color format with 8-bit red, green and blue components. |
| `int` | `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_FormatRawBayer10bit` SMIA 10-bit Bayer format. |
| `int` | `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_FormatRawBayer8bit` SMIA 8-bit Bayer format. |
| `int` | `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_FormatRawBayer8bitcompressed` SMIA 8-bit compressed Bayer format. |
| `int` | `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_FormatSurface` <br /> |
| `int` | `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_FormatYCbYCr` *This constant was deprecated in API level 23. Use `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_FormatYUV422Flexible`.* |
| `int` | `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_FormatYCrYCb` *This constant was deprecated in API level 23. Use `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_FormatYUV422Flexible`.* |
| `int` | `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_FormatYUV411PackedPlanar` *This constant was deprecated in API level 23. Use `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_FormatYUV420Flexible`.* |
| `int` | `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_FormatYUV411Planar` *This constant was deprecated in API level 23. Use `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_FormatYUV420Flexible`.* |
| `int` | `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_FormatYUV420Flexible` Flexible 12 bits per pixel, subsampled YUV color format with 8-bit chroma and luma components. |
| `int` | `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_FormatYUV420PackedPlanar` *This constant was deprecated in API level 23. Use `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_FormatYUV420Flexible`.* |
| `int` | `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_FormatYUV420PackedSemiPlanar` *This constant was deprecated in API level 23. Use `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_FormatYUV420Flexible`.* |
| `int` | `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_FormatYUV420Planar` *This constant was deprecated in API level 23. Use `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_FormatYUV420Flexible`.* |
| `int` | `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_FormatYUV420SemiPlanar` *This constant was deprecated in API level 23. Use `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_FormatYUV420Flexible`.* |
| `int` | `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_FormatYUV422Flexible` Flexible 16 bits per pixel, subsampled YUV color format with 8-bit chroma and luma components. |
| `int` | `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_FormatYUV422PackedPlanar` *This constant was deprecated in API level 23. Use `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_FormatYUV422Flexible`.* |
| `int` | `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_FormatYUV422PackedSemiPlanar` *This constant was deprecated in API level 23. Use `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_FormatYUV422Flexible`.* |
| `int` | `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_FormatYUV422Planar` *This constant was deprecated in API level 23. Use `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_FormatYUV422Flexible`.* |
| `int` | `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_FormatYUV422SemiPlanar` *This constant was deprecated in API level 23. Use `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_FormatYUV422Flexible`.* |
| `int` | `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_FormatYUV444Flexible` Flexible 24 bits per pixel YUV color format with 8-bit chroma and luma components. |
| `int` | `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_FormatYUV444Interleaved` *This constant was deprecated in API level 23. Use `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_FormatYUV444Flexible`.* |
| `int` | `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_FormatYUVP010` P010 is 10-bit-per component 4:2:0 YCbCr semiplanar format. |
| `int` | `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_FormatYUVP210` P210 is 10-bit-per component 4:2:2 YCbCr semiplanar format. |
| `int` | `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_QCOM_FormatYUV420SemiPlanar` *This constant was deprecated in API level 23. Use `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_FormatYUV420Flexible`.* |
| `int` | `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_TI_FormatYUV420PackedSemiPlanar` *This constant was deprecated in API level 23. Use `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_FormatYUV420Flexible`.* |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#FEATURE_AdaptivePlayback` **video decoder only**: codec supports seamless resolution changes. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#FEATURE_DetachedSurface` **video decoder only**: codec supports detaching the output surface when in Surface mode. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#FEATURE_DynamicColorAspects` **video decoder only**: codec supports dynamically changing color aspects. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#FEATURE_DynamicTimestamp` If true, the timestamp of each output buffer is derived from the timestamp of the input buffer that produced the output. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#FEATURE_EncodingStatistics` **video encoder only**: codec supports exporting encoding statistics. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#FEATURE_FrameParsing` **decoder only**If true, the codec supports partial (including multiple) access units per input buffer. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#FEATURE_HdrEditing` **video encoder only**: codec supports HDR editing. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#FEATURE_HlgEditing` **video encoder only**: codec supports HLG editing. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#FEATURE_IntraRefresh` **video encoder only**: codec supports intra refresh. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#FEATURE_LowLatency` **decoder only**: codec supports low latency decoding. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#FEATURE_MultipleFrames` If true, the codec supports multiple access units (for decoding, or to output for encoders). |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#FEATURE_PartialFrame` **video decoder only**: codec supports queuing partial frames. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#FEATURE_QpBounds` **video encoder only**: codec supports quantization parameter bounds. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#FEATURE_Roi` **video encoder only**: codec supports region of interest encoding. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#FEATURE_SecurePlayback` **video decoder only**: codec supports secure decryption. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#FEATURE_TunneledPlayback` **video or audio decoder only**: codec supports tunneled playback. |

| ### Fields ||
|---|---|
| ` public int[]` | `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#colorFormats` The color format for the media. |
| ` public https://developer.android.com/reference/android/media/MediaCodecInfo.CodecProfileLevel` | `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#profileLevels` <br /> |

| ### Public constructors ||
|---|---|
| ` https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#CodecCapabilities()() ` |

| ### Public methods ||
|---|---|
| ` static https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities` | ` https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#createFromProfileLevel(java.lang.String,%20int,%20int)(https://developer.android.com/reference/java/lang/String mime, int profile, int level) ` Retrieve the codec capabilities for a certain `mime type`, `profile` and `level`. |
| ` https://developer.android.com/reference/android/media/MediaCodecInfo.AudioCapabilities` | ` https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#getAudioCapabilities()() ` Returns the audio capabilities or `null` if this is not an audio codec. |
| ` https://developer.android.com/reference/android/media/MediaFormat` | ` https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#getDefaultFormat()() ` Returns a MediaFormat object with default values for configurations that have defaults. |
| ` https://developer.android.com/reference/android/media/MediaCodecInfo.EncoderCapabilities` | ` https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#getEncoderCapabilities()() ` Returns the encoding capabilities or `null` if this is not an encoder. |
| ` int` | ` https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#getMaxSupportedInstances()() ` Returns the max number of the supported concurrent codec instances. |
| ` https://developer.android.com/reference/java/lang/String` | ` https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#getMimeType()() ` Returns the mime type for which this codec-capability object was created. |
| ` https://developer.android.com/reference/android/media/MediaCodecInfo.VideoCapabilities` | ` https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#getVideoCapabilities()() ` Returns the video capabilities or `null` if this is not a video codec. |
| ` boolean` | ` https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#isFeatureRequired(java.lang.String)(https://developer.android.com/reference/java/lang/String name) ` Query codec feature requirements. |
| ` boolean` | ` https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#isFeatureSupported(java.lang.String)(https://developer.android.com/reference/java/lang/String name) ` Query codec feature capabilities. |
| ` boolean` | ` https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#isFormatSupported(android.media.MediaFormat)(https://developer.android.com/reference/android/media/MediaFormat format) ` Query whether codec supports a given `https://developer.android.com/reference/android/media/MediaFormat`. |

### Inherited methods

From class ` https://developer.android.com/reference/java/lang/Object ` ` https://developer.android.com/reference/java/lang/Object` ` https://developer.android.com/reference/java/lang/Object#clone()() `

Creates and returns a copy of this object.
` boolean` ` https://developer.android.com/reference/java/lang/Object#equals(java.lang.Object)(https://developer.android.com/reference/java/lang/Object obj) `

Indicates whether some other object is "equal to" this one.
` void` ` https://developer.android.com/reference/java/lang/Object#finalize()() `

Called by the garbage collector on an object when garbage collection determines that there are no more references to the object.
` final https://developer.android.com/reference/java/lang/Class<?>` ` https://developer.android.com/reference/java/lang/Object#getClass()() `

Returns the runtime class of this `Object`.
` int` ` https://developer.android.com/reference/java/lang/Object#hashCode()() `

Returns a hash code value for the object.
` final void` ` https://developer.android.com/reference/java/lang/Object#notify()() `

Wakes up a single thread that is waiting on this object's monitor.
` final void` ` https://developer.android.com/reference/java/lang/Object#notifyAll()() `

Wakes up all threads that are waiting on this object's monitor.
` https://developer.android.com/reference/java/lang/String` ` https://developer.android.com/reference/java/lang/Object#toString()() `

Returns a string representation of the object.
` final void` ` https://developer.android.com/reference/java/lang/Object#wait(long,%20int)(long timeoutMillis, int nanos) `

Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*, or until a certain amount of real time has elapsed.
` final void` ` https://developer.android.com/reference/java/lang/Object#wait(long)(long timeoutMillis) `

Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*, or until a certain amount of real time has elapsed.
` final void` ` https://developer.android.com/reference/java/lang/Object#wait()() `

Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*.

## Constants

### COLOR_Format12bitRGB444

Added in [API level 16](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)   
Deprecated in [API level 23](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int COLOR_Format12bitRGB444
```

<br />

**This constant was deprecated in API level 23.**   

Use `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_Format24bitBGR888`.

<br />

<br />

Constant Value: 3 (0x00000003)

### COLOR_Format16bitARGB1555

Added in [API level 16](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)   
Deprecated in [API level 23](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int COLOR_Format16bitARGB1555
```

<br />

**This constant was deprecated in API level 23.**   

Use `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_Format32bitABGR8888`.

<br />

<br />

Constant Value: 5 (0x00000005)

### COLOR_Format16bitARGB4444

Added in [API level 16](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)   
Deprecated in [API level 23](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int COLOR_Format16bitARGB4444
```

<br />

**This constant was deprecated in API level 23.**   

Use `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_Format32bitABGR8888`.

<br />

<br />

Constant Value: 4 (0x00000004)

### COLOR_Format16bitBGR565

Added in [API level 16](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)   
Deprecated in [API level 23](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int COLOR_Format16bitBGR565
```

<br />

**This constant was deprecated in API level 23.**   

Use `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_Format16bitRGB565`.

<br />

<br />

Constant Value: 7 (0x00000007)

### COLOR_Format16bitRGB565

Added in [API level 16](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int COLOR_Format16bitRGB565
```

16 bits per pixel RGB color format, with 5-bit red \& blue and 6-bit green component.

Using 16-bit little-endian representation, colors stored as Red 15:11, Green 10:5, Blue 4:0.

```
           byte                   byte
 <--- i ---> | <--- i + 1 --->
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
|     BLUE     |      GREEN      |     RED      |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
 0           4  5     7   0     2  3           7
bit
```
This format corresponds to `https://developer.android.com/reference/android/graphics/PixelFormat#RGB_565` and `https://developer.android.com/reference/android/graphics/ImageFormat#RGB_565`.

<br />

<br />

Constant Value: 6 (0x00000006)

### COLOR_Format18BitBGR666

Added in [API level 16](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)   
Deprecated in [API level 23](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int COLOR_Format18BitBGR666
```

<br />

**This constant was deprecated in API level 23.**   

Use `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_Format24bitBGR888`.

<br />

<br />

Constant Value: 41 (0x00000029)

### COLOR_Format18bitARGB1665

Added in [API level 16](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)   
Deprecated in [API level 23](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int COLOR_Format18bitARGB1665
```

<br />

**This constant was deprecated in API level 23.**   

Use `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_Format32bitABGR8888`.

<br />

<br />

Constant Value: 9 (0x00000009)

### COLOR_Format18bitRGB666

Added in [API level 16](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)   
Deprecated in [API level 23](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int COLOR_Format18bitRGB666
```

<br />

**This constant was deprecated in API level 23.**   

Use `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_Format24bitBGR888`.

<br />

<br />

Constant Value: 8 (0x00000008)

### COLOR_Format19bitARGB1666

Added in [API level 16](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)   
Deprecated in [API level 23](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int COLOR_Format19bitARGB1666
```

<br />

**This constant was deprecated in API level 23.**   

Use `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_Format32bitABGR8888`.

<br />

<br />

Constant Value: 10 (0x0000000a)

### COLOR_Format24BitABGR6666

Added in [API level 16](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)   
Deprecated in [API level 23](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int COLOR_Format24BitABGR6666
```

<br />

**This constant was deprecated in API level 23.**   

Use `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_Format32bitABGR8888`.

<br />

<br />

Constant Value: 43 (0x0000002b)

### COLOR_Format24BitARGB6666

Added in [API level 16](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)   
Deprecated in [API level 23](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int COLOR_Format24BitARGB6666
```

<br />

**This constant was deprecated in API level 23.**   

Use `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_Format32bitABGR8888`.

<br />

<br />

Constant Value: 42 (0x0000002a)

### COLOR_Format24bitARGB1887

Added in [API level 16](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)   
Deprecated in [API level 23](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int COLOR_Format24bitARGB1887
```

<br />

**This constant was deprecated in API level 23.**   

Use `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_Format32bitABGR8888`.

<br />

<br />

Constant Value: 13 (0x0000000d)

### COLOR_Format24bitBGR888

Added in [API level 16](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int COLOR_Format24bitBGR888
```

24 bits per pixel RGB color format, with 8-bit red, green \& blue components.

Using 24-bit little-endian representation, colors stored as Red 7:0, Green 15:8, Blue 23:16.

```
        byte              byte             byte
 <--- i ---> | <--- i+1 ---> | <--- i+2 --->
+---+---+---+
|       RED       |      GREEN      |       BLUE      |
+---+---+---+
```
This format corresponds to `https://developer.android.com/reference/android/graphics/PixelFormat#RGB_888`, and can also be represented as a flexible format by `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_FormatRGBFlexible`.

<br />

<br />

Constant Value: 12 (0x0000000c)

### COLOR_Format24bitRGB888

Added in [API level 16](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)   
Deprecated in [API level 23](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int COLOR_Format24bitRGB888
```

<br />

**This constant was deprecated in API level 23.**   

Use `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_Format24bitBGR888` or `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_FormatRGBFlexible`.

<br />

<br />

Constant Value: 11 (0x0000000b)

### COLOR_Format25bitARGB1888

Added in [API level 16](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)   
Deprecated in [API level 23](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int COLOR_Format25bitARGB1888
```

<br />

**This constant was deprecated in API level 23.**   

Use `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_Format32bitABGR8888`.

<br />

<br />

Constant Value: 14 (0x0000000e)

### COLOR_Format32bitABGR2101010

Added in [API level 33](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int COLOR_Format32bitABGR2101010
```

32 bits per pixel RGBA color format, with 10-bit red, green, blue, and 2-bit alpha components.

Using 32-bit little-endian representation, colors stored as Red 9:0, Green 19:10, Blue 29:20, and Alpha 31:30.

```
        byte              byte             byte              byte
 <--- i ---> | <--- i+1 ---> | <--- i+2 ---> | <--- i+3 --->
+---+---+---+---+---+---+---+
|       RED           |      GREEN          |       BLUE          |ALPHA|
+---+---+---+---+---+---+---+
 0               7 0 1 2           7 0     3 4       7 0         5 6   7
```
This corresponds to `https://developer.android.com/reference/android/graphics/PixelFormat#RGBA_1010102`.

<br />

<br />

Constant Value: 2130750114 (0x7f00aaa2)

### COLOR_Format32bitABGR8888

Added in [API level 23](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int COLOR_Format32bitABGR8888
```

32 bits per pixel RGBA color format, with 8-bit red, green, blue, and alpha components.

Using 32-bit little-endian representation, colors stored as Red 7:0, Green 15:8, Blue 23:16, and Alpha 31:24.

```
        byte              byte             byte              byte
 <--- i ---> | <--- i+1 ---> | <--- i+2 ---> | <--- i+3 --->
+---+---+---+---+
|       RED       |      GREEN      |       BLUE      |      ALPHA      |
+---+---+---+---+
```
This corresponds to `https://developer.android.com/reference/android/graphics/PixelFormat#RGBA_8888`.

<br />

<br />

Constant Value: 2130747392 (0x7f00a000)

### COLOR_Format32bitARGB8888

Added in [API level 16](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)   
Deprecated in [API level 23](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int COLOR_Format32bitARGB8888
```

<br />

**This constant was deprecated in API level 23.**   

Use `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_Format32bitABGR8888` Or `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_FormatRGBAFlexible`.

<br />

<br />

Constant Value: 16 (0x00000010)

### COLOR_Format32bitBGRA8888

Added in [API level 16](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)   
Deprecated in [API level 23](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int COLOR_Format32bitBGRA8888
```

<br />

**This constant was deprecated in API level 23.**   

Use `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_Format32bitABGR8888` Or `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_FormatRGBAFlexible`.

<br />

<br />

Constant Value: 15 (0x0000000f)

### COLOR_Format64bitABGRFloat

Added in [API level 33](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int COLOR_Format64bitABGRFloat
```

64 bits per pixel RGBA color format, with 16-bit signed floating point red, green, blue, and alpha components.

<br />

```
        byte              byte             byte              byte
 <-- i -->|<- i+1 ->|<- i+2 ->|<- i+3 ->|<- i+4 ->|<- i+5 ->|<- i+6 ->|<- i+7 ->
+---+---+---+---+---+---+---+
|        RED        |       GREEN       |       BLUE        |       ALPHA       |
+---+---+---+---+---+---+---+
 0       7 0       7 0       7 0       7 0       7 0       7 0       7 0       7
```
This corresponds to `https://developer.android.com/reference/android/graphics/PixelFormat#RGBA_F16`.

<br />

<br />

Constant Value: 2130710294 (0x7f000f16)

### COLOR_Format8bitRGB332

Added in [API level 16](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)   
Deprecated in [API level 23](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int COLOR_Format8bitRGB332
```

<br />

**This constant was deprecated in API level 23.**   

Use `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_Format24bitBGR888`.

<br />

<br />

Constant Value: 2 (0x00000002)

### COLOR_FormatCbYCrY

Added in [API level 16](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)   
Deprecated in [API level 23](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int COLOR_FormatCbYCrY
```

<br />

**This constant was deprecated in API level 23.**   

Use `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_FormatYUV422Flexible`.

<br />

<br />

Constant Value: 27 (0x0000001b)

### COLOR_FormatCrYCbY

Added in [API level 16](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)   
Deprecated in [API level 23](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int COLOR_FormatCrYCbY
```

<br />

**This constant was deprecated in API level 23.**   

Use `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_FormatYUV422Flexible`.

<br />

<br />

Constant Value: 28 (0x0000001c)

### COLOR_FormatL16

Added in [API level 16](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int COLOR_FormatL16
```

16 bits per pixel, little-endian Y color format.

<br />

```
           byte                   byte
 <--- i ---> | <--- i + 1 --->
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
|                       Y                       |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
 0                    7   0                    7
bit
```

<br />

<br />

Constant Value: 36 (0x00000024)

### COLOR_FormatL2

Added in [API level 16](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)   
Deprecated in [API level 23](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int COLOR_FormatL2
```

<br />

**This constant was deprecated in API level 23.**   

Use `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_FormatL8`.

<br />

<br />

Constant Value: 33 (0x00000021)

### COLOR_FormatL24

Added in [API level 16](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)   
Deprecated in [API level 23](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int COLOR_FormatL24
```

<br />

**This constant was deprecated in API level 23.**   

Use `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_FormatL16`.

<br />

<br />

Constant Value: 37 (0x00000025)

### COLOR_FormatL32

Added in [API level 16](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)   
Deprecated in [API level 23](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int COLOR_FormatL32
```

<br />

**This constant was deprecated in API level 23.**   

Use `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_FormatL16`.

32 bits per pixel, little-endian Y color format.

<br />

```
        byte              byte             byte              byte
 <--- i ---> | <--- i+1 ---> | <--- i+2 ---> | <--- i+3 --->
+---+---+---+---+
|                                   Y                                   |
+---+---+---+---+
 0               7 0               7 0               7 0               7
bit
```

<br />

<br />

Constant Value: 38 (0x00000026)

### COLOR_FormatL4

Added in [API level 16](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)   
Deprecated in [API level 23](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int COLOR_FormatL4
```

<br />

**This constant was deprecated in API level 23.**   

Use `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_FormatL8`.

<br />

<br />

Constant Value: 34 (0x00000022)

### COLOR_FormatL8

Added in [API level 16](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int COLOR_FormatL8
```

8 bits per pixel Y color format.

Each byte contains a single pixel. This format corresponds to `https://developer.android.com/reference/android/graphics/PixelFormat#L_8`.

<br />

Constant Value: 35 (0x00000023)

### COLOR_FormatMonochrome

Added in [API level 16](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)   
Deprecated in [API level 23](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int COLOR_FormatMonochrome
```

<br />

**This constant was deprecated in API level 23.**   

Use `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_Format24bitBGR888`.

<br />

<br />

Constant Value: 1 (0x00000001)

### COLOR_FormatRGBAFlexible

Added in [API level 23](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int COLOR_FormatRGBAFlexible
```

Flexible 32 bits per pixel RGBA color format with 8-bit red, green, blue, and alpha components.

Use this format with `https://developer.android.com/reference/android/media/Image`. This format corresponds to `https://developer.android.com/reference/android/graphics/ImageFormat#FLEX_RGBA_8888`, and can represent `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_Format32bitBGRA8888`, `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_Format32bitABGR8888` and `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_Format32bitARGB8888` formats.

<br />

**See also:**

- `https://developer.android.com/reference/android/media/Image#getFormat()`

Constant Value: 2134288520 (0x7f36a888)

### COLOR_FormatRGBFlexible

Added in [API level 23](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int COLOR_FormatRGBFlexible
```

Flexible 24 bits per pixel RGB color format with 8-bit red, green and blue components.

Use this format with `https://developer.android.com/reference/android/media/Image`. This format corresponds to `https://developer.android.com/reference/android/graphics/ImageFormat#FLEX_RGB_888`, and can represent `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_Format24bitBGR888` and `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_Format24bitRGB888` formats.

<br />

**See also:**

- `https://developer.android.com/reference/android/media/Image#getFormat()`

Constant Value: 2134292616 (0x7f36b888)

### COLOR_FormatRawBayer10bit

Added in [API level 16](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int COLOR_FormatRawBayer10bit
```

SMIA 10-bit Bayer format.

<br />

Constant Value: 31 (0x0000001f)

### COLOR_FormatRawBayer8bit

Added in [API level 16](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int COLOR_FormatRawBayer8bit
```

SMIA 8-bit Bayer format. Each byte represents the top 8-bits of a 10-bit signal.

<br />

Constant Value: 30 (0x0000001e)

### COLOR_FormatRawBayer8bitcompressed

Added in [API level 16](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int COLOR_FormatRawBayer8bitcompressed
```

SMIA 8-bit compressed Bayer format. Each byte represents a sample from the 10-bit signal that is compressed into 8-bits using DPCM/PCM compression, as defined by the SMIA Functional Specification.

<br />

Constant Value: 32 (0x00000020)

### COLOR_FormatSurface

Added in [API level 18](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int COLOR_FormatSurface
```

<br />

<br />

Constant Value: 2130708361 (0x7f000789)

### COLOR_FormatYCbYCr

Added in [API level 16](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)   
Deprecated in [API level 23](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int COLOR_FormatYCbYCr
```

<br />

**This constant was deprecated in API level 23.**   

Use `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_FormatYUV422Flexible`.

<br />

<br />

Constant Value: 25 (0x00000019)

### COLOR_FormatYCrYCb

Added in [API level 16](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)   
Deprecated in [API level 23](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int COLOR_FormatYCrYCb
```

<br />

**This constant was deprecated in API level 23.**   

Use `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_FormatYUV422Flexible`.

<br />

<br />

Constant Value: 26 (0x0000001a)

### COLOR_FormatYUV411PackedPlanar

Added in [API level 16](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)   
Deprecated in [API level 23](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int COLOR_FormatYUV411PackedPlanar
```

<br />

**This constant was deprecated in API level 23.**   

Use `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_FormatYUV420Flexible`.

<br />

<br />

Constant Value: 18 (0x00000012)

### COLOR_FormatYUV411Planar

Added in [API level 16](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)   
Deprecated in [API level 23](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int COLOR_FormatYUV411Planar
```

<br />

**This constant was deprecated in API level 23.**   

Use `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_FormatYUV420Flexible`.

<br />

<br />

Constant Value: 17 (0x00000011)

### COLOR_FormatYUV420Flexible

Added in [API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int COLOR_FormatYUV420Flexible
```

Flexible 12 bits per pixel, subsampled YUV color format with 8-bit chroma and luma components.

Chroma planes are subsampled by 2 both horizontally and vertically. Use this format with `https://developer.android.com/reference/android/media/Image`. This format corresponds to `https://developer.android.com/reference/android/graphics/ImageFormat#YUV_420_888`, and can represent the `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_FormatYUV411Planar`, `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_FormatYUV411PackedPlanar`, `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_FormatYUV420Planar`, `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_FormatYUV420PackedPlanar`, `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_FormatYUV420SemiPlanar` and `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_FormatYUV420PackedSemiPlanar` formats.

<br />

**See also:**

- `https://developer.android.com/reference/android/media/Image#getFormat()`

Constant Value: 2135033992 (0x7f420888)

### COLOR_FormatYUV420PackedPlanar

Added in [API level 16](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)   
Deprecated in [API level 23](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int COLOR_FormatYUV420PackedPlanar
```

<br />

**This constant was deprecated in API level 23.**   

Use `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_FormatYUV420Flexible`.

<br />

<br />

Constant Value: 20 (0x00000014)

### COLOR_FormatYUV420PackedSemiPlanar

Added in [API level 16](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)   
Deprecated in [API level 23](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int COLOR_FormatYUV420PackedSemiPlanar
```

<br />

**This constant was deprecated in API level 23.**   

Use `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_FormatYUV420Flexible`.

<br />

<br />

Constant Value: 39 (0x00000027)

### COLOR_FormatYUV420Planar

Added in [API level 16](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)   
Deprecated in [API level 23](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int COLOR_FormatYUV420Planar
```

<br />

**This constant was deprecated in API level 23.**   

Use `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_FormatYUV420Flexible`.

<br />

<br />

Constant Value: 19 (0x00000013)

### COLOR_FormatYUV420SemiPlanar

Added in [API level 16](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)   
Deprecated in [API level 23](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int COLOR_FormatYUV420SemiPlanar
```

<br />

**This constant was deprecated in API level 23.**   

Use `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_FormatYUV420Flexible`.

<br />

<br />

Constant Value: 21 (0x00000015)

### COLOR_FormatYUV422Flexible

Added in [API level 23](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int COLOR_FormatYUV422Flexible
```

Flexible 16 bits per pixel, subsampled YUV color format with 8-bit chroma and luma components.

Chroma planes are horizontally subsampled by 2. Use this format with `https://developer.android.com/reference/android/media/Image`. This format corresponds to `https://developer.android.com/reference/android/graphics/ImageFormat#YUV_422_888`, and can represent the `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_FormatYCbYCr`, `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_FormatYCrYCb`, `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_FormatCbYCrY`, `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_FormatCrYCbY`, `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_FormatYUV422Planar`, `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_FormatYUV422PackedPlanar`, `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_FormatYUV422SemiPlanar` and `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_FormatYUV422PackedSemiPlanar` formats.

<br />

**See also:**

- `https://developer.android.com/reference/android/media/Image#getFormat()`

Constant Value: 2135042184 (0x7f422888)

### COLOR_FormatYUV422PackedPlanar

Added in [API level 16](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)   
Deprecated in [API level 23](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int COLOR_FormatYUV422PackedPlanar
```

<br />

**This constant was deprecated in API level 23.**   

Use `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_FormatYUV422Flexible`.

<br />

<br />

Constant Value: 23 (0x00000017)

### COLOR_FormatYUV422PackedSemiPlanar

Added in [API level 16](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)   
Deprecated in [API level 23](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int COLOR_FormatYUV422PackedSemiPlanar
```

<br />

**This constant was deprecated in API level 23.**   

Use `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_FormatYUV422Flexible`.

<br />

<br />

Constant Value: 40 (0x00000028)

### COLOR_FormatYUV422Planar

Added in [API level 16](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)   
Deprecated in [API level 23](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int COLOR_FormatYUV422Planar
```

<br />

**This constant was deprecated in API level 23.**   

Use `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_FormatYUV422Flexible`.

<br />

<br />

Constant Value: 22 (0x00000016)

### COLOR_FormatYUV422SemiPlanar

Added in [API level 16](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)   
Deprecated in [API level 23](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int COLOR_FormatYUV422SemiPlanar
```

<br />

**This constant was deprecated in API level 23.**   

Use `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_FormatYUV422Flexible`.

<br />

<br />

Constant Value: 24 (0x00000018)

### COLOR_FormatYUV444Flexible

Added in [API level 23](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int COLOR_FormatYUV444Flexible
```

Flexible 24 bits per pixel YUV color format with 8-bit chroma and luma components.

Chroma planes are not subsampled. Use this format with `https://developer.android.com/reference/android/media/Image`. This format corresponds to `https://developer.android.com/reference/android/graphics/ImageFormat#YUV_444_888`, and can represent the `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_FormatYUV444Interleaved` format.

<br />

**See also:**

- `https://developer.android.com/reference/android/media/Image#getFormat()`

Constant Value: 2135181448 (0x7f444888)

### COLOR_FormatYUV444Interleaved

Added in [API level 16](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)   
Deprecated in [API level 23](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int COLOR_FormatYUV444Interleaved
```

<br />

**This constant was deprecated in API level 23.**   

Use `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_FormatYUV444Flexible`.

<br />

<br />

Constant Value: 29 (0x0000001d)

### COLOR_FormatYUVP010

Added in [API level 33](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int COLOR_FormatYUVP010
```

P010 is 10-bit-per component 4:2:0 YCbCr semiplanar format.

This format uses 24 allocated bits per pixel with 15 bits of data per pixel. Chroma planes are subsampled by 2 both horizontally and vertically. Each chroma and luma component has 16 allocated bits in little-endian configuration with 10 MSB of actual data.

```
           byte                   byte
 <--- i ---> | <--- i + 1 --->
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
|     UNUSED      |      Y/Cb/Cr                |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
 0               5 6   7 0                    7
bit
```
Use this format with `https://developer.android.com/reference/android/media/Image`. This format corresponds to `https://developer.android.com/reference/android/graphics/ImageFormat#YCBCR_P010`.

<br />

<br />

Constant Value: 54 (0x00000036)

### COLOR_FormatYUVP210

Added in [API level 36](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int COLOR_FormatYUVP210
```

P210 is 10-bit-per component 4:2:2 YCbCr semiplanar format.

This format uses 32 allocated bits per pixel with 20 bits of data per pixel. Chroma planes are subsampled by 2 both horizontally. Each chroma and luma component has 16 allocated bits in little-endian configuration with 10 MSB of actual data.

```
           byte                   byte
 <--- i ---> | <--- i + 1 --->
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
|     UNUSED      |      Y/Cb/Cr                |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
 0               5 6   7 0                    7
bit
```
Use this format with `https://developer.android.com/reference/android/media/Image`. This format corresponds to `https://developer.android.com/reference/android/graphics/ImageFormat#YCBCR_P210`.

<br />

<br />

Constant Value: 60 (0x0000003c)

### COLOR_QCOM_FormatYUV420SemiPlanar

Added in [API level 16](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)   
Deprecated in [API level 23](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int COLOR_QCOM_FormatYUV420SemiPlanar
```

<br />

**This constant was deprecated in API level 23.**   

Use `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_FormatYUV420Flexible`.

<br />

<br />

Constant Value: 2141391872 (0x7fa30c00)

### COLOR_TI_FormatYUV420PackedSemiPlanar

Added in [API level 16](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)   
Deprecated in [API level 23](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int COLOR_TI_FormatYUV420PackedSemiPlanar
```

<br />

**This constant was deprecated in API level 23.**   

Use `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#COLOR_FormatYUV420Flexible`.

<br />

<br />

Constant Value: 2130706688 (0x7f000100)

### FEATURE_AdaptivePlayback

Added in [API level 19](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String FEATURE_AdaptivePlayback
```

**video decoder only**: codec supports seamless resolution changes.

<br />

Constant Value: "adaptive-playback"

### FEATURE_DetachedSurface

Added in [API level 35](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String FEATURE_DetachedSurface
```

**video decoder only**: codec supports detaching the output surface when in Surface mode.

If true, the codec can be configured in Surface mode without an actual surface (in detached surface mode).

<br />

**See also:**

- `https://developer.android.com/reference/android/media/MediaCodec#CONFIGURE_FLAG_DETACHED_SURFACE`

Constant Value: "detached-surface"

### FEATURE_DynamicColorAspects

Added in [API level 35](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String FEATURE_DynamicColorAspects
```

**video decoder only**: codec supports dynamically changing color aspects.

If true, the codec can propagate color aspect changes during decoding. This is only meaningful at session boundaries, e.g. upon processing Picture Parameter Sets prior to a new IDR. The color aspects may come from the bitstream, or may be provided using `https://developer.android.com/reference/android/media/MediaCodec#setParameters(android.os.Bundle)` calls.

If the codec supports both 8-bit and 10-bit profiles, this feature means that the codec can dynamically switch between 8 and 10-bit profiles, but this is restricted to Surface mode only.

If the device supports HDR transfer functions, switching between SDR and HDR transfer is also supported. Together with the previous clause this means that switching between SDR and HDR sessions are supported in Surface mode, as SDR is typically encoded at 8-bit and HDR at 10-bit.

<br />

Constant Value: "dynamic-color-aspects"

### FEATURE_DynamicTimestamp

Added in [API level 29](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String FEATURE_DynamicTimestamp
```

If true, the timestamp of each output buffer is derived from the timestamp of the input buffer that produced the output. If false, the timestamp of each output buffer is derived from the timestamp of the first input buffer.

<br />

Constant Value: "dynamic-timestamp"

### FEATURE_EncodingStatistics

Added in [API level 33](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String FEATURE_EncodingStatistics
```

**video encoder only** : codec supports exporting encoding statistics. Encoders with this feature can provide the App clients with the encoding statistics information about the frame. The scope of encoding statistics is controlled by `https://developer.android.com/reference/android/media/MediaFormat#KEY_VIDEO_ENCODING_STATISTICS_LEVEL`.

<br />

**See also:**

- `https://developer.android.com/reference/android/media/MediaFormat#KEY_VIDEO_ENCODING_STATISTICS_LEVEL`

Constant Value: "encoding-statistics"

### FEATURE_FrameParsing

Added in [API level 29](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String FEATURE_FrameParsing
```

**decoder only**If true, the codec supports partial (including multiple) access units per input buffer.

<br />

Constant Value: "frame-parsing"

### FEATURE_HdrEditing

Added in [API level 33](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String FEATURE_HdrEditing
```

**video encoder only**: codec supports HDR editing.

HDR editing support means that the codec accepts 10-bit HDR input surface, and it is capable of generating any HDR metadata required from both YUV and RGB input when the metadata is not present. This feature is only meaningful when using an HDR capable profile (and 10-bit HDR input).

This feature implies that the codec is capable of encoding at least one HDR format, and that it supports RGBA_1010102 as well as P010, and optionally RGBA_FP16 input formats, and that the encoder can generate HDR metadata for all supported HDR input formats.

<br />

Constant Value: "hdr-editing"

### FEATURE_HlgEditing

Added in [API level 35](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String FEATURE_HlgEditing
```

**video encoder only**: codec supports HLG editing.

HLG editing support means that the codec accepts 10-bit HDR input surface in both YUV and RGB pixel format. This feature is only meaningful when using a 10-bit (HLG) profile and 10-bit input.

This feature implies that the codec is capable of encoding 10-bit format, and that it supports RGBA_1010102 as well as P010, and optionally RGBA_FP16 input formats.

The difference between this feature and `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#FEATURE_HdrEditing` is that HLG does not require the generation of HDR metadata and does not use an explicit HDR profile.

<br />

Constant Value: "hlg-editing"

### FEATURE_IntraRefresh

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String FEATURE_IntraRefresh
```

**video encoder only**: codec supports intra refresh.

<br />

Constant Value: "intra-refresh"

### FEATURE_LowLatency

Added in [API level 30](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String FEATURE_LowLatency
```

**decoder only**: codec supports low latency decoding. If supported, clients can enable the low latency mode for the decoder. When the mode is enabled, the decoder doesn't hold input and output data more than required by the codec standards.

<br />

Constant Value: "low-latency"

### FEATURE_MultipleFrames

Added in [API level 29](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String FEATURE_MultipleFrames
```

If true, the codec supports multiple access units (for decoding, or to output for encoders). If false, the codec only supports single access units. Producing multiple access units for output is an optional feature.

<br />

Constant Value: "multiple-frames"

### FEATURE_PartialFrame

Added in [API level 26](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String FEATURE_PartialFrame
```

**video decoder only**: codec supports queuing partial frames.

<br />

Constant Value: "partial-frame"

### FEATURE_QpBounds

Added in [API level 31](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String FEATURE_QpBounds
```

**video encoder only**: codec supports quantization parameter bounds.

<br />

**See also:**

- `https://developer.android.com/reference/android/media/MediaFormat#KEY_VIDEO_QP_MAX`
- `https://developer.android.com/reference/android/media/MediaFormat#KEY_VIDEO_QP_MIN`

Constant Value: "qp-bounds"

### FEATURE_Roi

Added in [API level 35](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String FEATURE_Roi
```

**video encoder only**: codec supports region of interest encoding.

RoI encoding support means the codec accepts information that specifies the relative importance of different portions of each video frame. This allows the encoder to separate a video frame into critical and non-critical regions, and use more bits (better quality) to represent the critical regions and de-prioritize non-critical regions. In other words, the encoder chooses a negative qp bias for the critical portions and a zero or positive qp bias for the non-critical portions.

At a basic level, if the encoder decides to encode each frame with a uniform quantization value 'qpFrame' and a 'qpBias' is chosen/suggested for an LCU of the frame, then the actual qp of the LCU will be 'qpFrame + qpBias', although this value can be clamped basing on the min-max configured qp bounds for the current encoding session.

In a shot, if a group of LCUs pan out quickly they can be marked as non-critical thereby enabling the encoder to reserve fewer bits during their encoding. Contrarily, LCUs that remain in shot for a prolonged duration can be encoded at better quality in one frame thereby setting-up an excellent long-term reference for all future frames.

Note that by offsetting the quantization of each LCU, the overall bit allocation will differ from the originally estimated bit allocation, and the encoder will adjust the frame quantization for subsequent frames to meet the bitrate target. An effective selection of critical regions can set-up a golden reference and this can compensate for the bit burden that was introduced due to encoding RoI's at better quality. On the other hand, an ineffective choice of critical regions might increase the quality of certain parts of the image but this can hamper quality in subsequent frames.

<br />

<br />

**See also:**

- `https://developer.android.com/reference/android/media/MediaCodec#PARAMETER_KEY_QP_OFFSET_MAP`
- `https://developer.android.com/reference/android/media/MediaCodec#PARAMETER_KEY_QP_OFFSET_RECTS`

Constant Value: "region-of-interest"

### FEATURE_SecurePlayback

Added in [API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String FEATURE_SecurePlayback
```

**video decoder only**: codec supports secure decryption.

<br />

Constant Value: "secure-playback"

### FEATURE_TunneledPlayback

Added in [API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String FEATURE_TunneledPlayback
```

**video or audio decoder only**: codec supports tunneled playback.

<br />

Constant Value: "tunneled-playback"

## Fields

### colorFormats

Added in [API level 16](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public int[] colorFormats
```

The color format for the media. This is one of the color constants defined in this class.

<br />

### profileLevels

Added in [API level 16](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public CodecProfileLevel[] profileLevels
```

<br />

<br />

## Public constructors

### CodecCapabilities

Added in [API level 16](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public CodecCapabilities ()
```

<br />

<br />

## Public methods

### createFromProfileLevel

Added in [API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static MediaCodecInfo.CodecCapabilities createFromProfileLevel (String mime, 
                int profile, 
                int level)
```

Retrieve the codec capabilities for a certain `mime type`, `profile` and `level`. If the type, or profile-level combination is not understood by the framework, it returns null.

In `https://developer.android.com/reference/android/os/Build.VERSION_CODES#M`, calling this method without calling any method of the `https://developer.android.com/reference/android/media/MediaCodecList` class beforehand results in a `https://developer.android.com/reference/java/lang/NullPointerException`.

<br />

<br />

| Parameters ||
|---|---|
| `mime` | `String` <br /> |
| `profile` | `int` <br /> |
| `level` | `int` <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities` | <br /> |

### getAudioCapabilities

Added in [API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public MediaCodecInfo.AudioCapabilities getAudioCapabilities ()
```

Returns the audio capabilities or `null` if this is not an audio codec.

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/media/MediaCodecInfo.AudioCapabilities` | <br /> |

### getDefaultFormat

Added in [API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public MediaFormat getDefaultFormat ()
```

Returns a MediaFormat object with default values for configurations that have defaults.

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/media/MediaFormat` | <br /> |

### getEncoderCapabilities

Added in [API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public MediaCodecInfo.EncoderCapabilities getEncoderCapabilities ()
```

Returns the encoding capabilities or `null` if this is not an encoder.

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/media/MediaCodecInfo.EncoderCapabilities` | <br /> |

### getMaxSupportedInstances

Added in [API level 23](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public int getMaxSupportedInstances ()
```

Returns the max number of the supported concurrent codec instances.

This is a hint for an upper bound. Applications should not expect to successfully operate more instances than the returned value, but the actual number of concurrently operable instances may be less as it depends on the available resources at time of use.

<br />

| Returns ||
|---|---|
| `int` | <br /> |

### getMimeType

Added in [API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public String getMimeType ()
```

Returns the mime type for which this codec-capability object was created.

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/java/lang/String` | <br /> |

### getVideoCapabilities

Added in [API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public MediaCodecInfo.VideoCapabilities getVideoCapabilities ()
```

Returns the video capabilities or `null` if this is not a video codec.

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/media/MediaCodecInfo.VideoCapabilities` | <br /> |

### isFeatureRequired

Added in [API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public boolean isFeatureRequired (String name)
```

Query codec feature requirements.

These features are required to be used by the codec, and as such, they are always turned on.

<br />

| Parameters ||
|---|---|
| `name` | `String` <br /> |

| Returns ||
|---|---|
| `boolean` | <br /> |

### isFeatureSupported

Added in [API level 19](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public boolean isFeatureSupported (String name)
```

Query codec feature capabilities.

These features are supported to be used by the codec. These include optional features that can be turned on, as well as features that are always on.

<br />

| Parameters ||
|---|---|
| `name` | `String` <br /> |

| Returns ||
|---|---|
| `boolean` | <br /> |

### isFormatSupported

Added in [API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public boolean isFormatSupported (MediaFormat format)
```

Query whether codec supports a given `https://developer.android.com/reference/android/media/MediaFormat`.

**Note:** On `https://developer.android.com/reference/android/os/Build.VERSION_CODES#LOLLIPOP`, `format` must not contain a [frame rate](https://developer.android.com/reference/android/media/MediaFormat#KEY_FRAME_RATE). Use `format.setString(MediaFormat.KEY_FRAME_RATE, null)` to clear any existing frame rate setting in the format.

The following table summarizes the format keys considered by this method. This is especially important to consider when targeting a higher SDK version than the minimum SDK version, as this method will disregard some keys on devices below the target SDK version.

| OS Version(s) | `MediaFormat` keys considered for |||
| OS Version(s) | Audio Codecs | Video Codecs | Encoders |
| OS Version(s) |
|---|---|---|---|
| `https://developer.android.com/reference/android/os/Build.VERSION_CODES#LOLLIPOP` | `https://developer.android.com/reference/android/media/MediaFormat#KEY_MIME`^\*^, `https://developer.android.com/reference/android/media/MediaFormat#KEY_SAMPLE_RATE`, `https://developer.android.com/reference/android/media/MediaFormat#KEY_CHANNEL_COUNT`, | `https://developer.android.com/reference/android/media/MediaFormat#KEY_MIME`^\*^, `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#FEATURE_AdaptivePlayback`^D^, `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#FEATURE_SecurePlayback`^D^, `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#FEATURE_TunneledPlayback`^D^, `https://developer.android.com/reference/android/media/MediaFormat#KEY_WIDTH`, `https://developer.android.com/reference/android/media/MediaFormat#KEY_HEIGHT`, **no** `KEY_FRAME_RATE` | as to the left, plus `https://developer.android.com/reference/android/media/MediaFormat#KEY_BITRATE_MODE`, `https://developer.android.com/reference/android/media/MediaFormat#KEY_PROFILE` (and/or `https://developer.android.com/reference/android/media/MediaFormat#KEY_AAC_PROFILE`^\~^), `https://developer.android.com/reference/android/media/MediaFormat#KEY_COMPLEXITY` (and/or `https://developer.android.com/reference/android/media/MediaFormat#KEY_FLAC_COMPRESSION_LEVEL`^\~^) |
| `https://developer.android.com/reference/android/os/Build.VERSION_CODES#LOLLIPOP_MR1` | `https://developer.android.com/reference/android/media/MediaFormat#KEY_MIME`^\*^, `https://developer.android.com/reference/android/media/MediaFormat#KEY_SAMPLE_RATE`, `https://developer.android.com/reference/android/media/MediaFormat#KEY_CHANNEL_COUNT`, | as above, plus `https://developer.android.com/reference/android/media/MediaFormat#KEY_FRAME_RATE` | as to the left, plus `https://developer.android.com/reference/android/media/MediaFormat#KEY_BITRATE_MODE`, `https://developer.android.com/reference/android/media/MediaFormat#KEY_PROFILE` (and/or `https://developer.android.com/reference/android/media/MediaFormat#KEY_AAC_PROFILE`^\~^), `https://developer.android.com/reference/android/media/MediaFormat#KEY_COMPLEXITY` (and/or `https://developer.android.com/reference/android/media/MediaFormat#KEY_FLAC_COMPRESSION_LEVEL`^\~^) |
| `https://developer.android.com/reference/android/os/Build.VERSION_CODES#M` | `https://developer.android.com/reference/android/media/MediaFormat#KEY_MIME`^\*^, `https://developer.android.com/reference/android/media/MediaFormat#KEY_SAMPLE_RATE`, `https://developer.android.com/reference/android/media/MediaFormat#KEY_CHANNEL_COUNT`, | as above, plus `https://developer.android.com/reference/android/media/MediaFormat#KEY_FRAME_RATE` | as to the left, plus `https://developer.android.com/reference/android/media/MediaFormat#KEY_BITRATE_MODE`, `https://developer.android.com/reference/android/media/MediaFormat#KEY_PROFILE` (and/or `https://developer.android.com/reference/android/media/MediaFormat#KEY_AAC_PROFILE`^\~^), `https://developer.android.com/reference/android/media/MediaFormat#KEY_COMPLEXITY` (and/or `https://developer.android.com/reference/android/media/MediaFormat#KEY_FLAC_COMPRESSION_LEVEL`^\~^) |
| `https://developer.android.com/reference/android/os/Build.VERSION_CODES#N` | as above, plus `https://developer.android.com/reference/android/media/MediaFormat#KEY_PROFILE`, `https://developer.android.com/reference/android/media/MediaFormat#KEY_BIT_RATE` | as above, plus `https://developer.android.com/reference/android/media/MediaFormat#KEY_PROFILE`, `https://developer.android.com/reference/android/media/MediaFormat#KEY_LEVEL`^+^, `https://developer.android.com/reference/android/media/MediaFormat#KEY_BIT_RATE`, `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#FEATURE_IntraRefresh`^E^ | as to the left, plus `https://developer.android.com/reference/android/media/MediaFormat#KEY_BITRATE_MODE`, `https://developer.android.com/reference/android/media/MediaFormat#KEY_PROFILE` (and/or `https://developer.android.com/reference/android/media/MediaFormat#KEY_AAC_PROFILE`^\~^), `https://developer.android.com/reference/android/media/MediaFormat#KEY_COMPLEXITY` (and/or `https://developer.android.com/reference/android/media/MediaFormat#KEY_FLAC_COMPRESSION_LEVEL`^\~^) |
| `https://developer.android.com/reference/android/os/Build.VERSION_CODES#N_MR1` | as above, plus `https://developer.android.com/reference/android/media/MediaFormat#KEY_PROFILE`, `https://developer.android.com/reference/android/media/MediaFormat#KEY_BIT_RATE` | as above, plus `https://developer.android.com/reference/android/media/MediaFormat#KEY_PROFILE`, `https://developer.android.com/reference/android/media/MediaFormat#KEY_LEVEL`^+^, `https://developer.android.com/reference/android/media/MediaFormat#KEY_BIT_RATE`, `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#FEATURE_IntraRefresh`^E^ | as to the left, plus `https://developer.android.com/reference/android/media/MediaFormat#KEY_BITRATE_MODE`, `https://developer.android.com/reference/android/media/MediaFormat#KEY_PROFILE` (and/or `https://developer.android.com/reference/android/media/MediaFormat#KEY_AAC_PROFILE`^\~^), `https://developer.android.com/reference/android/media/MediaFormat#KEY_COMPLEXITY` (and/or `https://developer.android.com/reference/android/media/MediaFormat#KEY_FLAC_COMPRESSION_LEVEL`^\~^) |
| `https://developer.android.com/reference/android/os/Build.VERSION_CODES#O` | as above, plus `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#FEATURE_PartialFrame`^D^ || as to the left, plus `https://developer.android.com/reference/android/media/MediaFormat#KEY_BITRATE_MODE`, `https://developer.android.com/reference/android/media/MediaFormat#KEY_PROFILE` (and/or `https://developer.android.com/reference/android/media/MediaFormat#KEY_AAC_PROFILE`^\~^), `https://developer.android.com/reference/android/media/MediaFormat#KEY_COMPLEXITY` (and/or `https://developer.android.com/reference/android/media/MediaFormat#KEY_FLAC_COMPRESSION_LEVEL`^\~^) |
| `https://developer.android.com/reference/android/os/Build.VERSION_CODES#O_MR1` | as above, plus `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#FEATURE_PartialFrame`^D^ || as to the left, plus `https://developer.android.com/reference/android/media/MediaFormat#KEY_BITRATE_MODE`, `https://developer.android.com/reference/android/media/MediaFormat#KEY_PROFILE` (and/or `https://developer.android.com/reference/android/media/MediaFormat#KEY_AAC_PROFILE`^\~^), `https://developer.android.com/reference/android/media/MediaFormat#KEY_COMPLEXITY` (and/or `https://developer.android.com/reference/android/media/MediaFormat#KEY_FLAC_COMPRESSION_LEVEL`^\~^) |
| `https://developer.android.com/reference/android/os/Build.VERSION_CODES#P` | as above, plus `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#FEATURE_PartialFrame`^D^ || as to the left, plus `https://developer.android.com/reference/android/media/MediaFormat#KEY_BITRATE_MODE`, `https://developer.android.com/reference/android/media/MediaFormat#KEY_PROFILE` (and/or `https://developer.android.com/reference/android/media/MediaFormat#KEY_AAC_PROFILE`^\~^), `https://developer.android.com/reference/android/media/MediaFormat#KEY_COMPLEXITY` (and/or `https://developer.android.com/reference/android/media/MediaFormat#KEY_FLAC_COMPRESSION_LEVEL`^\~^) |
| `https://developer.android.com/reference/android/os/Build.VERSION_CODES#Q` | as above, plus `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#FEATURE_FrameParsing`^D^, `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#FEATURE_MultipleFrames`, `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#FEATURE_DynamicTimestamp` || as to the left, plus `https://developer.android.com/reference/android/media/MediaFormat#KEY_BITRATE_MODE`, `https://developer.android.com/reference/android/media/MediaFormat#KEY_PROFILE` (and/or `https://developer.android.com/reference/android/media/MediaFormat#KEY_AAC_PROFILE`^\~^), `https://developer.android.com/reference/android/media/MediaFormat#KEY_COMPLEXITY` (and/or `https://developer.android.com/reference/android/media/MediaFormat#KEY_FLAC_COMPRESSION_LEVEL`^\~^) |
| `https://developer.android.com/reference/android/os/Build.VERSION_CODES#R` | as above, plus `https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities#FEATURE_LowLatency`^D^ || as to the left, plus `https://developer.android.com/reference/android/media/MediaFormat#KEY_BITRATE_MODE`, `https://developer.android.com/reference/android/media/MediaFormat#KEY_PROFILE` (and/or `https://developer.android.com/reference/android/media/MediaFormat#KEY_AAC_PROFILE`^\~^), `https://developer.android.com/reference/android/media/MediaFormat#KEY_COMPLEXITY` (and/or `https://developer.android.com/reference/android/media/MediaFormat#KEY_FLAC_COMPRESSION_LEVEL`^\~^) |
| **Notes:** \*: must be specified; otherwise, method returns `false`. +: method does not verify that the format parameters are supported by the specified level. D: decoders only E: encoders only \~: if both keys are provided values must match ||||

<br />

<br />

| Parameters ||
|---|---|
| `format` | `MediaFormat`: media format with optional feature directives. <br /> |

| Returns ||
|---|---|
| `boolean` | whether the codec capabilities support the given format and feature requests. <br /> |

| Throws ||
|---|---|
| `https://developer.android.com/reference/java/lang/IllegalArgumentException` | if format is not a valid media format. |