MediaCodecList

public final class MediaCodecList
extends Object

java.lang.Object
   ↳ android.media.MediaCodecList


Allows you to enumerate available codecs, each specified as a MediaCodecInfo object, find a codec supporting a given format and query the capabilities of a given codec.

See MediaCodecInfo for sample usage.

Summary

Constants

int ALL_CODECS

Use in MediaCodecList(int) to enumerate all codecs, even ones that are not suitable for regular (buffer-to-buffer) decoding or encoding.

int REGULAR_CODECS

Use in MediaCodecList(int) to enumerate only codecs that are suitable for regular (buffer-to-buffer) decoding or encoding.

Public constructors

MediaCodecList(int kind)

Create a list of media-codecs of a specific kind.

Public methods

String findDecoderForFormat(MediaFormat format)

Find a decoder supporting a given MediaFormat in the list of media-codecs.

String findEncoderForFormat(MediaFormat format)

Find an encoder supporting a given MediaFormat in the list of media-codecs.

static int getCodecCount()

This method was deprecated in API level 21. Use getCodecInfos() instead.

static MediaCodecInfo getCodecInfoAt(int index)

This method was deprecated in API level 21. Use getCodecInfos() instead.

MediaCodecInfo[] getCodecInfos()

Returns the list of MediaCodecInfo objects for the list of media-codecs.

Inherited methods

Constants

ALL_CODECS

Added in API level 21
public static final int ALL_CODECS

Use in MediaCodecList(int) to enumerate all codecs, even ones that are not suitable for regular (buffer-to-buffer) decoding or encoding. These include codecs, for example, that only work with special input or output surfaces, such as secure-only or tunneled-only codecs.

Constant Value: 1 (0x00000001)

REGULAR_CODECS

Added in API level 21
public static final int REGULAR_CODECS

Use in MediaCodecList(int) to enumerate only codecs that are suitable for regular (buffer-to-buffer) decoding or encoding. NOTE: These are the codecs that are returned prior to API 21, using the now deprecated static methods.

Constant Value: 0 (0x00000000)

Public constructors

MediaCodecList

Added in API level 16
public MediaCodecList (int kind)

Create a list of media-codecs of a specific kind.

Parameters
kind int: Either MediaCodecList#REGULAR_CODECS or MediaCodecList#ALL_CODECS.

Public methods

findDecoderForFormat

Added in API level 21
public String findDecoderForFormat (MediaFormat format)

Find a decoder supporting a given MediaFormat in the list of media-codecs.

Note: On Build.VERSION_CODES.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 MediaFormat: A decoder media format with optional feature directives.

Returns
String the name of a decoder that supports the given format and feature requests, or null if no such codec has been found.

Throws
IllegalArgumentException if format is not a valid media format.
NullPointerException if format is null.

findEncoderForFormat

Added in API level 21
public String findEncoderForFormat (MediaFormat format)

Find an encoder supporting a given MediaFormat in the list of media-codecs.

Note: On Build.VERSION_CODES.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 MediaFormat: An encoder media format with optional feature directives.

Returns
String the name of an encoder that supports the given format and feature requests, or null if no such codec has been found.

Throws
IllegalArgumentException if format is not a valid media format.
NullPointerException if format is null.

getCodecCount

Added in API level 16
Deprecated in API level 21
public static int getCodecCount ()

This method was deprecated in API level 21.
Use getCodecInfos() instead.

Count the number of available (regular) codecs.

Returns
int

See also:

getCodecInfoAt

Added in API level 16
Deprecated in API level 21
public static MediaCodecInfo getCodecInfoAt (int index)

This method was deprecated in API level 21.
Use getCodecInfos() instead.

Return the MediaCodecInfo object for the codec at the given index in the regular list.

Parameters
index int

Returns
MediaCodecInfo

See also:

getCodecInfos

Added in API level 21
public MediaCodecInfo[] getCodecInfos ()

Returns the list of MediaCodecInfo objects for the list of media-codecs.

Returns
MediaCodecInfo[]