Android APIs
public static final class

MediaCodecInfo.CodecCapabilities

extends Object
java.lang.Object
   ↳ android.media.MediaCodecInfo.CodecCapabilities

Class Overview

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 MediaCodecInfo object with getCapabilitiesForType(), passing a MIME type.

Summary

Constants
int COLOR_Format12bitRGB444 This constant was deprecated in API level 23. Use COLOR_Format24bitBGR888.
int COLOR_Format16bitARGB1555 This constant was deprecated in API level 23. Use COLOR_Format32bitABGR8888.
int COLOR_Format16bitARGB4444 This constant was deprecated in API level 23. Use COLOR_Format32bitABGR8888.
int COLOR_Format16bitBGR565 This constant was deprecated in API level 23. Use COLOR_Format16bitRGB565.
int COLOR_Format16bitRGB565 16 bits per pixel RGB color format, with 5-bit red & blue and 6-bit green component.
int COLOR_Format18BitBGR666 This constant was deprecated in API level 23. Use COLOR_Format24bitBGR888.
int COLOR_Format18bitARGB1665 This constant was deprecated in API level 23. Use COLOR_Format32bitABGR8888.
int COLOR_Format18bitRGB666 This constant was deprecated in API level 23. Use COLOR_Format24bitBGR888.
int COLOR_Format19bitARGB1666 This constant was deprecated in API level 23. Use COLOR_Format32bitABGR8888.
int COLOR_Format24BitABGR6666 This constant was deprecated in API level 23. Use COLOR_Format32bitABGR8888.
int COLOR_Format24BitARGB6666 This constant was deprecated in API level 23. Use COLOR_Format32bitABGR8888.
int COLOR_Format24bitARGB1887 This constant was deprecated in API level 23. Use COLOR_Format32bitABGR8888.
int COLOR_Format24bitBGR888 24 bits per pixel RGB color format, with 8-bit red, green & blue components.
int COLOR_Format24bitRGB888 This constant was deprecated in API level 23. Use COLOR_Format24bitBGR888 or COLOR_FormatRGBFlexible.
int COLOR_Format25bitARGB1888 This constant was deprecated in API level 23. Use COLOR_Format32bitABGR8888.
int COLOR_Format32bitABGR8888 32 bits per pixel RGBA color format, with 8-bit red, green, blue, and alpha components.
int COLOR_Format32bitARGB8888 This constant was deprecated in API level 23. Use COLOR_Format32bitABGR8888 Or COLOR_FormatRGBAFlexible.
int COLOR_Format32bitBGRA8888 This constant was deprecated in API level 23. Use COLOR_Format32bitABGR8888 Or COLOR_FormatRGBAFlexible.
int COLOR_Format8bitRGB332 This constant was deprecated in API level 23. Use COLOR_Format24bitBGR888.
int COLOR_FormatCbYCrY This constant was deprecated in API level 23. Use COLOR_FormatYUV422Flexible.
int COLOR_FormatCrYCbY This constant was deprecated in API level 23. Use COLOR_FormatYUV422Flexible.
int COLOR_FormatL16 16 bits per pixel, little-endian Y color format.
int COLOR_FormatL2 This constant was deprecated in API level 23. Use COLOR_FormatL8.
int COLOR_FormatL24 This constant was deprecated in API level 23. Use COLOR_FormatL16.
int COLOR_FormatL32 This constant was deprecated in API level 23. Use COLOR_FormatL16.
int COLOR_FormatL4 This constant was deprecated in API level 23. Use COLOR_FormatL8.
int COLOR_FormatL8 8 bits per pixel Y color format.
int COLOR_FormatMonochrome This constant was deprecated in API level 23. Use COLOR_Format24bitBGR888.
int COLOR_FormatRGBAFlexible Flexible 32 bits per pixel RGBA color format with 8-bit red, green, blue, and alpha components.
int COLOR_FormatRGBFlexible Flexible 24 bits per pixel RGB color format with 8-bit red, green and blue components.
int COLOR_FormatRawBayer10bit SMIA 10-bit Bayer format.
int COLOR_FormatRawBayer8bit SMIA 8-bit Bayer format.
int COLOR_FormatRawBayer8bitcompressed SMIA 8-bit compressed Bayer format.
int COLOR_FormatSurface
int COLOR_FormatYCbYCr This constant was deprecated in API level 23. Use COLOR_FormatYUV422Flexible.
int COLOR_FormatYCrYCb This constant was deprecated in API level 23. Use COLOR_FormatYUV422Flexible.
int COLOR_FormatYUV411PackedPlanar This constant was deprecated in API level 23. Use COLOR_FormatYUV420Flexible.
int COLOR_FormatYUV411Planar This constant was deprecated in API level 23. Use COLOR_FormatYUV420Flexible.
int COLOR_FormatYUV420Flexible Flexible 12 bits per pixel, subsampled YUV color format with 8-bit chroma and luma components.
int COLOR_FormatYUV420PackedPlanar This constant was deprecated in API level 23. Use COLOR_FormatYUV420Flexible.
int COLOR_FormatYUV420PackedSemiPlanar This constant was deprecated in API level 23. Use COLOR_FormatYUV420Flexible.
int COLOR_FormatYUV420Planar This constant was deprecated in API level 23. Use COLOR_FormatYUV420Flexible.
int COLOR_FormatYUV420SemiPlanar This constant was deprecated in API level 23. Use COLOR_FormatYUV420Flexible.
int COLOR_FormatYUV422Flexible Flexible 16 bits per pixel, subsampled YUV color format with 8-bit chroma and luma components.
int COLOR_FormatYUV422PackedPlanar This constant was deprecated in API level 23. Use COLOR_FormatYUV422Flexible.
int COLOR_FormatYUV422PackedSemiPlanar This constant was deprecated in API level 23. Use COLOR_FormatYUV422Flexible.
int COLOR_FormatYUV422Planar This constant was deprecated in API level 23. Use COLOR_FormatYUV422Flexible.
int COLOR_FormatYUV422SemiPlanar This constant was deprecated in API level 23. Use COLOR_FormatYUV422Flexible.
int COLOR_FormatYUV444Flexible Flexible 24 bits per pixel YUV color format with 8-bit chroma and luma components.
int COLOR_FormatYUV444Interleaved This constant was deprecated in API level 23. Use COLOR_FormatYUV444Flexible.
int COLOR_QCOM_FormatYUV420SemiPlanar This constant was deprecated in API level 23. Use COLOR_FormatYUV420Flexible.
int COLOR_TI_FormatYUV420PackedSemiPlanar This constant was deprecated in API level 23. Use COLOR_FormatYUV420Flexible.
String FEATURE_AdaptivePlayback video decoder only: codec supports seamless resolution changes.
String FEATURE_SecurePlayback video decoder only: codec supports secure decryption.
String FEATURE_TunneledPlayback video or audio decoder only: codec supports tunneled playback.
Fields
public int[] colorFormats Defined in the OpenMAX IL specs, color format values are drawn from OMX_COLOR_FORMATTYPE.
public CodecProfileLevel[] profileLevels
Public Constructors
MediaCodecInfo.CodecCapabilities()
Public Methods
static MediaCodecInfo.CodecCapabilities createFromProfileLevel(String mime, int profile, int level)
Retrieve the codec capabilities for a certain mime type, profile and level.
MediaCodecInfo.AudioCapabilities getAudioCapabilities()
Returns the audio capabilities or null if this is not an audio codec.
MediaFormat getDefaultFormat()
Returns a MediaFormat object with default values for configurations that have defaults.
MediaCodecInfo.EncoderCapabilities getEncoderCapabilities()
Returns the encoding capabilities or null if this is not an encoder.
int getMaxSupportedInstances()
Returns the max number of the supported concurrent codec instances.
String getMimeType()
Returns the mime type for which this codec-capability object was created.
MediaCodecInfo.VideoCapabilities getVideoCapabilities()
Returns the video capabilities or null if this is not a video codec.
final boolean isFeatureRequired(String name)
Query codec feature requirements.
final boolean isFeatureSupported(String name)
Query codec feature capabilities.
final boolean isFormatSupported(MediaFormat format)
Query whether codec supports a given MediaFormat.
[Expand]
Inherited Methods
From class java.lang.Object

Constants

public static final int COLOR_Format12bitRGB444

Added in API level 16

This constant was deprecated in API level 23.
Use COLOR_Format24bitBGR888.

Constant Value: 3 (0x00000003)

public static final int COLOR_Format16bitARGB1555

Added in API level 16

This constant was deprecated in API level 23.
Use COLOR_Format32bitABGR8888.

Constant Value: 5 (0x00000005)

public static final int COLOR_Format16bitARGB4444

Added in API level 16

This constant was deprecated in API level 23.
Use COLOR_Format32bitABGR8888.

Constant Value: 4 (0x00000004)

public static final int COLOR_Format16bitBGR565

Added in API level 16

This constant was deprecated in API level 23.
Use COLOR_Format16bitRGB565.

Constant Value: 7 (0x00000007)

public static final int COLOR_Format16bitRGB565

Added in API level 16

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 RGB_565 and RGB_565.

Constant Value: 6 (0x00000006)

public static final int COLOR_Format18BitBGR666

Added in API level 16

This constant was deprecated in API level 23.
Use COLOR_Format24bitBGR888.

Constant Value: 41 (0x00000029)

public static final int COLOR_Format18bitARGB1665

Added in API level 16

This constant was deprecated in API level 23.
Use COLOR_Format32bitABGR8888.

Constant Value: 9 (0x00000009)

public static final int COLOR_Format18bitRGB666

Added in API level 16

This constant was deprecated in API level 23.
Use COLOR_Format24bitBGR888.

Constant Value: 8 (0x00000008)

public static final int COLOR_Format19bitARGB1666

Added in API level 16

This constant was deprecated in API level 23.
Use COLOR_Format32bitABGR8888.

Constant Value: 10 (0x0000000a)

public static final int COLOR_Format24BitABGR6666

Added in API level 16

This constant was deprecated in API level 23.
Use COLOR_Format32bitABGR8888.

Constant Value: 43 (0x0000002b)

public static final int COLOR_Format24BitARGB6666

Added in API level 16

This constant was deprecated in API level 23.
Use COLOR_Format32bitABGR8888.

Constant Value: 42 (0x0000002a)

public static final int COLOR_Format24bitARGB1887

Added in API level 16

This constant was deprecated in API level 23.
Use COLOR_Format32bitABGR8888.

Constant Value: 13 (0x0000000d)

public static final int COLOR_Format24bitBGR888

Added in API level 16

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 RGB_888, and can also be represented as a flexible format by COLOR_FormatRGBFlexible.

Constant Value: 12 (0x0000000c)

public static final int COLOR_Format24bitRGB888

Added in API level 16

This constant was deprecated in API level 23.
Use COLOR_Format24bitBGR888 or COLOR_FormatRGBFlexible.

Constant Value: 11 (0x0000000b)

public static final int COLOR_Format25bitARGB1888

Added in API level 16

This constant was deprecated in API level 23.
Use COLOR_Format32bitABGR8888.

Constant Value: 14 (0x0000000e)

public static final int COLOR_Format32bitABGR8888

Added in API level 23

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

Constant Value: 2130747392 (0x7f00a000)

public static final int COLOR_Format32bitARGB8888

Added in API level 16

This constant was deprecated in API level 23.
Use COLOR_Format32bitABGR8888 Or COLOR_FormatRGBAFlexible.

Constant Value: 16 (0x00000010)

public static final int COLOR_Format32bitBGRA8888

Added in API level 16

This constant was deprecated in API level 23.
Use COLOR_Format32bitABGR8888 Or COLOR_FormatRGBAFlexible.

Constant Value: 15 (0x0000000f)

public static final int COLOR_Format8bitRGB332

Added in API level 16

This constant was deprecated in API level 23.
Use COLOR_Format24bitBGR888.

Constant Value: 2 (0x00000002)

public static final int COLOR_FormatCbYCrY

Added in API level 16

This constant was deprecated in API level 23.
Use COLOR_FormatYUV422Flexible.

Constant Value: 27 (0x0000001b)

public static final int COLOR_FormatCrYCbY

Added in API level 16

This constant was deprecated in API level 23.
Use COLOR_FormatYUV422Flexible.

Constant Value: 28 (0x0000001c)

public static final int COLOR_FormatL16

Added in API level 16

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

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

Constant Value: 36 (0x00000024)

public static final int COLOR_FormatL2

Added in API level 16

This constant was deprecated in API level 23.
Use COLOR_FormatL8.

Constant Value: 33 (0x00000021)

public static final int COLOR_FormatL24

Added in API level 16

This constant was deprecated in API level 23.
Use COLOR_FormatL16.

Constant Value: 37 (0x00000025)

public static final int COLOR_FormatL32

Added in API level 16

This constant was deprecated in API level 23.
Use COLOR_FormatL16.

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

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

Constant Value: 38 (0x00000026)

public static final int COLOR_FormatL4

Added in API level 16

This constant was deprecated in API level 23.
Use COLOR_FormatL8.

Constant Value: 34 (0x00000022)

public static final int COLOR_FormatL8

Added in API level 16

8 bits per pixel Y color format.

Each byte contains a single pixel. This format corresponds to L_8.

Constant Value: 35 (0x00000023)

public static final int COLOR_FormatMonochrome

Added in API level 16

This constant was deprecated in API level 23.
Use COLOR_Format24bitBGR888.

Constant Value: 1 (0x00000001)

public static final int COLOR_FormatRGBAFlexible

Added in API level 23

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

Use this format with Image. This format corresponds to FLEX_RGBA_8888, and can represent COLOR_Format32bitBGRA8888, COLOR_Format32bitABGR8888 and COLOR_Format32bitARGB8888 formats.

See Also
Constant Value: 2134288520 (0x7f36a888)

public static final int COLOR_FormatRGBFlexible

Added in API level 23

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

Use this format with Image. This format corresponds to FLEX_RGB_888, and can represent COLOR_Format24bitBGR888 and COLOR_Format24bitRGB888 formats.

Constant Value: 2134292616 (0x7f36b888)

public static final int COLOR_FormatRawBayer10bit

Added in API level 16

SMIA 10-bit Bayer format.

Constant Value: 31 (0x0000001f)

public static final int COLOR_FormatRawBayer8bit

Added in API level 16

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

Constant Value: 30 (0x0000001e)

public static final int COLOR_FormatRawBayer8bitcompressed

Added in API level 16

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.

Constant Value: 32 (0x00000020)

public static final int COLOR_FormatSurface

Added in API level 18

Constant Value: 2130708361 (0x7f000789)

public static final int COLOR_FormatYCbYCr

Added in API level 16

This constant was deprecated in API level 23.
Use COLOR_FormatYUV422Flexible.

Constant Value: 25 (0x00000019)

public static final int COLOR_FormatYCrYCb

Added in API level 16

This constant was deprecated in API level 23.
Use COLOR_FormatYUV422Flexible.

Constant Value: 26 (0x0000001a)

public static final int COLOR_FormatYUV411PackedPlanar

Added in API level 16

This constant was deprecated in API level 23.
Use COLOR_FormatYUV420Flexible.

Constant Value: 18 (0x00000012)

public static final int COLOR_FormatYUV411Planar

Added in API level 16

This constant was deprecated in API level 23.
Use COLOR_FormatYUV420Flexible.

Constant Value: 17 (0x00000011)

public static final int COLOR_FormatYUV420Flexible

Added in API level 21

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 Image. This format corresponds to YUV_420_888, and can represent the COLOR_FormatYUV411Planar, COLOR_FormatYUV411PackedPlanar, COLOR_FormatYUV420Planar, COLOR_FormatYUV420PackedPlanar, COLOR_FormatYUV420SemiPlanar and COLOR_FormatYUV420PackedSemiPlanar formats.

See Also
Constant Value: 2135033992 (0x7f420888)

public static final int COLOR_FormatYUV420PackedPlanar

Added in API level 16

This constant was deprecated in API level 23.
Use COLOR_FormatYUV420Flexible.

Constant Value: 20 (0x00000014)

public static final int COLOR_FormatYUV420PackedSemiPlanar

Added in API level 16

This constant was deprecated in API level 23.
Use COLOR_FormatYUV420Flexible.

Constant Value: 39 (0x00000027)

public static final int COLOR_FormatYUV420Planar

Added in API level 16

This constant was deprecated in API level 23.
Use COLOR_FormatYUV420Flexible.

Constant Value: 19 (0x00000013)

public static final int COLOR_FormatYUV420SemiPlanar

Added in API level 16

This constant was deprecated in API level 23.
Use COLOR_FormatYUV420Flexible.

Constant Value: 21 (0x00000015)

public static final int COLOR_FormatYUV422Flexible

Added in API level 23

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 Image. This format corresponds to YUV_422_888, and can represent the COLOR_FormatYCbYCr, COLOR_FormatYCrYCb, COLOR_FormatCbYCrY, COLOR_FormatCrYCbY, COLOR_FormatYUV422Planar, COLOR_FormatYUV422PackedPlanar, COLOR_FormatYUV422SemiPlanar and COLOR_FormatYUV422PackedSemiPlanar formats.

See Also
Constant Value: 2135042184 (0x7f422888)

public static final int COLOR_FormatYUV422PackedPlanar

Added in API level 16

This constant was deprecated in API level 23.
Use COLOR_FormatYUV422Flexible.

Constant Value: 23 (0x00000017)

public static final int COLOR_FormatYUV422PackedSemiPlanar

Added in API level 16

This constant was deprecated in API level 23.
Use COLOR_FormatYUV422Flexible.

Constant Value: 40 (0x00000028)

public static final int COLOR_FormatYUV422Planar

Added in API level 16

This constant was deprecated in API level 23.
Use COLOR_FormatYUV422Flexible.

Constant Value: 22 (0x00000016)

public static final int COLOR_FormatYUV422SemiPlanar

Added in API level 16

This constant was deprecated in API level 23.
Use COLOR_FormatYUV422Flexible.

Constant Value: 24 (0x00000018)

public static final int COLOR_FormatYUV444Flexible

Added in API level 23

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

Chroma planes are not subsampled. Use this format with Image. This format corresponds to YUV_444_888, and can represent the COLOR_FormatYUV444Interleaved format.

See Also
Constant Value: 2135181448 (0x7f444888)

public static final int COLOR_FormatYUV444Interleaved

Added in API level 16

This constant was deprecated in API level 23.
Use COLOR_FormatYUV444Flexible.

Constant Value: 29 (0x0000001d)

public static final int COLOR_QCOM_FormatYUV420SemiPlanar

Added in API level 16

This constant was deprecated in API level 23.
Use COLOR_FormatYUV420Flexible.

Constant Value: 2141391872 (0x7fa30c00)

public static final int COLOR_TI_FormatYUV420PackedSemiPlanar

Added in API level 16

This constant was deprecated in API level 23.
Use COLOR_FormatYUV420Flexible.

Constant Value: 2130706688 (0x7f000100)

public static final String FEATURE_AdaptivePlayback

Added in API level 19

video decoder only: codec supports seamless resolution changes.

Constant Value: "adaptive-playback"

public static final String FEATURE_SecurePlayback

Added in API level 21

video decoder only: codec supports secure decryption.

Constant Value: "secure-playback"

public static final String FEATURE_TunneledPlayback

Added in API level 21

video or audio decoder only: codec supports tunneled playback.

Constant Value: "tunneled-playback"

Fields

public int[] colorFormats

Added in API level 16

Defined in the OpenMAX IL specs, color format values are drawn from OMX_COLOR_FORMATTYPE.

public CodecProfileLevel[] profileLevels

Added in API level 16

Public Constructors

public MediaCodecInfo.CodecCapabilities ()

Added in API level 16

Public Methods

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

Added in API level 21

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.

public MediaCodecInfo.AudioCapabilities getAudioCapabilities ()

Added in API level 21

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

public MediaFormat getDefaultFormat ()

Added in API level 21

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

public MediaCodecInfo.EncoderCapabilities getEncoderCapabilities ()

Added in API level 21

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

public int getMaxSupportedInstances ()

Added in API level 23

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.

public String getMimeType ()

Added in API level 21

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

public MediaCodecInfo.VideoCapabilities getVideoCapabilities ()

Added in API level 21

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

public final boolean isFeatureRequired (String name)

Added in API level 21

Query codec feature requirements.

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

public final boolean isFeatureSupported (String name)

Added in API level 19

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.

public final boolean isFormatSupported (MediaFormat format)

Added in API level 21

Query whether codec supports a given MediaFormat.

Note: On LOLLIPOP, format must not contain a frame rate. Use format.setString(MediaFormat.KEY_FRAME_RATE, null) to clear any existing frame rate setting in the format.

Parameters
format media format with optional feature directives.
Returns
  • whether the codec capabilities support the given format and feature requests.
Throws
IllegalArgumentException if format is not a valid media format.