# Print output for @column tags ?>
Developers

- Design
- Develop
- Distribute

Developer Console

## Most visited

## Recently visited

## Results for

Summary: Nested Classes | Inherited Constants | Fields | Methods | Inherited Methods

# ApplicationMediaCapabilities

`public final class ApplicationMediaCapabilities`
`extends Object` `implements Parcelable`

java.lang.Object
↳ | android.media.ApplicationMediaCapabilities

ApplicationMediaCapabilities is an immutable class that encapsulates an application's capabilities for handling newer video codec format and media features.

Android 12 introduces Compatible media transcoding feature. See Compatible media transcoding. By default, Android assumes apps can support playback of all media formats. Apps that would like to request that media be transcoded into a more compatible format should declare their media capabilities in a media_capabilities.xml resource file and add it as a property tag in the AndroidManifest.xml file. Here is a example:

     <media-capabilities xmlns:android="http://schemas.android.com/apk/res/android">
        <format android:name="HEVC" supported="true"/>
        <format android:name="HDR10" supported="false"/>
        <format android:name="HDR10Plus" supported="false"/>
     </media-capabilities>

The ApplicationMediaCapabilities class is generated from this xml and used by the platform to represent an application's media capabilities in order to determine whether modern media files need to be transcoded for that application.

ApplicationMediaCapabilities objects can also be built by applications at runtime for use with `ContentResolver#openTypedAssetFileDescriptor(Uri, String, Bundle)` to provide more control over the transcoding that is built into the platform. ApplicationMediaCapabilities provided by applications at runtime like this override the default manifest capabilities for that media access.The object could be build either through `createFromXml(org.xmlpull.v1.XmlPullParser)` or through the builder class `ApplicationMediaCapabilities.Builder`

### Video Codec Support

Newer video codes include HEVC, VP9 and AV1. Application only needs to indicate their support for newer format with this class as they are assumed to support older format like h.264.

### Capability of handling HDR(high dynamic range) video

There are four types of HDR video(Dolby-Vision, HDR10, HDR10+, HLG) supported by the platform, application will only need to specify individual types they supported.

## Summary

### Nested classes
`class` | `ApplicationMediaCapabilities.Builder` Builder class for `ApplicationMediaCapabilities` objects.

### Inherited constants
From interface `android.os.Parcelable`
`int` | `CONTENTS_FILE_DESCRIPTOR` Descriptor bit used with `describeContents()`: indicates that the Parcelable object's flattened representation includes a file descriptor.
`int` | `PARCELABLE_WRITE_RETURN_VALUE` Flag for use with `writeToParcel(Parcel, int)`: the object being written is a return value, that is the result of a function such as "`Parcelable someFunction()`", "`void someFunction(out Parcelable)`", or "`void someFunction(inout Parcelable)`".

### Fields
`public static final Creator<ApplicationMediaCapabilities>` | `CREATOR`

### Public methods
`static ApplicationMediaCapabilities` | `createFromXml(XmlPullParser xmlParser)` Creates `ApplicationMediaCapabilities` from an xml.
`int` | `describeContents()` Describe the kinds of special objects contained in this Parcelable instance's marshaled representation.
`List<String>` | `getSupportedHdrTypes()` Query all hdr types that are supported by the application.
`List<String>` | `getSupportedVideoMimeTypes()` Query the video codec mime types supported by the application.
`List<String>` | `getUnsupportedHdrTypes()` Query all hdr types that are not supported by the application.
`List<String>` | `getUnsupportedVideoMimeTypes()` Query the video codec mime types that are not supported by the application.
`boolean` | `isFormatSpecified(String format)` Query if a format is specified by the application.
`boolean` | `isHdrTypeSupported(String hdrType)` Query if a HDR type is supported by the application.
`boolean` | `isVideoMimeTypeSupported(String videoMime)` Query if a video codec format is supported by the application.
`String` | `toString()` Returns a string representation of the object.
`void` | `writeToParcel(Parcel dest, int flags)` Flatten this object in to a Parcel.

### Inherited methods
From class `java.lang.Object`
`Object` | `clone()` Creates and returns a copy of this object.
`boolean` | `equals(Object obj)` Indicates whether some other object is "equal to" this one.
`void` | `finalize()` Called by the garbage collector on an object when garbage collection determines that there are no more references to the object.
`final Class<?>` | `getClass()` Returns the runtime class of this `Object`.
`int` | `hashCode()` Returns a hash code value for the object.
`final void` | `notify()` Wakes up a single thread that is waiting on this object's monitor.
`final void` | `notifyAll()` Wakes up all threads that are waiting on this object's monitor.
`String` | `toString()` Returns a string representation of the object.
`final void` | `wait(long timeout, int nanos)` Causes the current thread to wait until another thread invokes the `notify()` method or the `notifyAll()` method for this object, or some other thread interrupts the current thread, or a certain amount of real time has elapsed.
`final void` | `wait(long timeout)` Causes the current thread to wait until either another thread invokes the `notify()` method or the `notifyAll()` method for this object, or a specified amount of time has elapsed.
`final void` | `wait()` Causes the current thread to wait until another thread invokes the `notify()` method or the `notifyAll()` method for this object.
From interface `android.os.Parcelable`
`abstract int` | `describeContents()` Describe the kinds of special objects contained in this Parcelable instance's marshaled representation.
`abstract void` | `writeToParcel(Parcel dest, int flags)` Flatten this object in to a Parcel.

## Fields

### CREATOR

    public static final Creator<ApplicationMediaCapabilities> CREATOR

## Public methods

### createFromXml

    public static ApplicationMediaCapabilities createFromXml (XmlPullParser xmlParser)

Creates `ApplicationMediaCapabilities` from an xml. The xml's syntax is the same as the media_capabilities.xml used by the AndroidManifest.xml.

Here is an example:

     <media-capabilities xmlns:android="http://schemas.android.com/apk/res/android">
         <format android:name="HEVC" supported="true"/>
         <format android:name="HDR10" supported="false"/>
         <format android:name="HDR10Plus" supported="false"/>
     </media-capabilities>

Parameters
`xmlParser` | `XmlPullParser`: The underlying `XmlPullParser` that will read the xml. This value cannot be `null`.

Returns
`ApplicationMediaCapabilities` | An ApplicationMediaCapabilities object. This value cannot be `null`.

Throws
`UnsupportedOperationException` | if the capabilities in xml config are invalid or incompatible.

### describeContents

    public int describeContents ()

Describe the kinds of special objects contained in this Parcelable instance's marshaled representation. For example, if the object will include a file descriptor in the output of `writeToParcel(android.os.Parcel, int)`, the return value of this method must include the `CONTENTS_FILE_DESCRIPTOR` bit.

Returns
`int` | a bitmask indicating the set of special object types marshaled by this Parcelable object instance. Value is either `0` or `CONTENTS_FILE_DESCRIPTOR`

### getSupportedHdrTypes

    public List<String> getSupportedHdrTypes ()

Query all hdr types that are supported by the application.

Returns
`List<String>` | List of supported hdr types. The list will be empty if there are none. This value cannot be `null`.

### getSupportedVideoMimeTypes

    public List<String> getSupportedVideoMimeTypes ()

Query the video codec mime types supported by the application.

Returns
`List<String>` | List of supported video codec mime types. The list will be empty if there are none. This value cannot be `null`.

### getUnsupportedHdrTypes

    public List<String> getUnsupportedHdrTypes ()

Query all hdr types that are not supported by the application.

Returns
`List<String>` | List of unsupported hdr types. The list will be empty if there are none. This value cannot be `null`.

### getUnsupportedVideoMimeTypes

    public List<String> getUnsupportedVideoMimeTypes ()

Query the video codec mime types that are not supported by the application.

Returns
`List<String>` | List of unsupported video codec mime types. The list will be empty if there are none. This value cannot be `null`.

### isFormatSpecified

    public boolean isFormatSpecified (String format)

Query if a format is specified by the application.

The format could be either the video format or the hdr format.

Parameters
`format` | `String`: The name of the format. This value cannot be `null`.

Returns
`boolean` | true if application specifies the format, false otherwise.

### isHdrTypeSupported

    public boolean isHdrTypeSupported (String hdrType)

Query if a HDR type is supported by the application.

If the application has not specified supporting the format or not, this will return false. Use `isFormatSpecified(java.lang.String)` to query if a format is specified or not.

Parameters
`hdrType` | `String`: The type of the HDR format. This value cannot be `null`. Value is `MediaFeature.HdrType.DOLBY_VISION`, `MediaFeature.HdrType.HDR10`, `MediaFeature.HdrType.HDR10_PLUS`, or `MediaFeature.HdrType.HLG`

Returns
`boolean` | true if application supports the HDR format, false otherwise.

### isVideoMimeTypeSupported

    public boolean isVideoMimeTypeSupported (String videoMime)

Query if a video codec format is supported by the application.

If the application has not specified supporting the format or not, this will return false. Use `isFormatSpecified(java.lang.String)` to query if a format is specified or not.

Parameters
`videoMime` | `String`: The mime type of the video codec format. Must be the one used in `MediaFormat#KEY_MIME`. This value cannot be `null`.

Returns
`boolean` | true if application supports the video codec format, false otherwise.

### toString

    public String toString ()

Returns a string representation of the object. In general, the `toString` method returns a string that "textually represents" this object. The result should be a concise but informative representation that is easy for a person to read. It is recommended that all subclasses override this method.

The `toString` method for class `Object` returns a string consisting of the name of the class of which the object is an instance, the at-sign character ``@`', and the unsigned hexadecimal representation of the hash code of the object. In other words, this method returns a string equal to the value of:

>      getClass().getName() + '@' + Integer.toHexString(hashCode())

Returns
`String` | a string representation of the object.

### writeToParcel

    public void writeToParcel (Parcel dest,
                    int flags)

Flatten this object in to a Parcel.

Parameters
`dest` | `Parcel`: This value cannot be `null`.
`flags` | `int`: Additional flags about how the object should be written. May be 0 or `Parcelable.PARCELABLE_WRITE_RETURN_VALUE`. Value is either `0` or a combination of `Parcelable.PARCELABLE_WRITE_RETURN_VALUE`, and android.os.Parcelable.PARCELABLE_ELIDE_DUPLICATES

Full name *
Email address *
Company / developer name
One of your Play Store app URLs *
Which best describes your business:*
Apps
Games
Apps & Games
*
*