MediaCodecInfo.CodecCapabilities.IsFormatSupported(MediaFormat) Method
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Query whether codec supports a given MediaFormat
.
[Android.Runtime.Register("isFormatSupported", "(Landroid/media/MediaFormat;)Z", "")]
public bool IsFormatSupported (Android.Media.MediaFormat? format);
[<Android.Runtime.Register("isFormatSupported", "(Landroid/media/MediaFormat;)Z", "")>]
member this.IsFormatSupported : Android.Media.MediaFormat -> bool
Parameters
- format
- MediaFormat
media format with optional feature directives.
Returns
whether the codec capabilities support the given format and feature requests.
- Attributes
Remarks
Query whether codec supports a given MediaFormat
.
<p class=note> <strong>Note:</strong> On android.os.Build.VERSION_CODES#LOLLIPOP
, format
must not contain a MediaFormat#KEY_FRAME_RATE 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.
<table style="width: 0%"> <thead> <tr> <th rowspan=3>OS Version(s)</th> <td colspan=3>MediaFormat
keys considered for</th> </tr><tr> <th>Audio Codecs</th> <th>Video Codecs</th> <th>Encoders</th> </tr> </thead> <tbody> <tr> <td>android.os.Build.VERSION_CODES#LOLLIPOP
</td> <td rowspan=3>MediaFormat#KEY_MIME
<sup>*</sup>,<br> MediaFormat#KEY_SAMPLE_RATE
,<br> MediaFormat#KEY_CHANNEL_COUNT
,</td> <td>MediaFormat#KEY_MIME
<sup>*</sup>,<br> CodecCapabilities#FEATURE_AdaptivePlayback
<sup>D</sup>,<br> CodecCapabilities#FEATURE_SecurePlayback
<sup>D</sup>,<br> CodecCapabilities#FEATURE_TunneledPlayback
<sup>D</sup>,<br> MediaFormat#KEY_WIDTH
,<br> MediaFormat#KEY_HEIGHT
,<br> <strong>no</strong> KEY_FRAME_RATE
</td> <td rowspan=10>as to the left, plus<br> MediaFormat#KEY_BITRATE_MODE
,<br> MediaFormat#KEY_PROFILE
(and/or MediaFormat#KEY_AAC_PROFILE
<sup>~</sup>),<br> <!-- {link MediaFormat#KEY_QUALITY},<br> --> MediaFormat#KEY_COMPLEXITY
(and/or MediaFormat#KEY_FLAC_COMPRESSION_LEVEL
<sup>~</sup>)</td> </tr><tr> <td>android.os.Build.VERSION_CODES#LOLLIPOP_MR1
</td> <td rowspan=2>as above, plus<br> MediaFormat#KEY_FRAME_RATE
</td> </tr><tr> <td>android.os.Build.VERSION_CODES#M
</td> </tr><tr> <td>android.os.Build.VERSION_CODES#N
</td> <td rowspan=2>as above, plus<br> MediaFormat#KEY_PROFILE
,<br> <!-- {link MediaFormat#KEY_MAX_BIT_RATE},<br> --> MediaFormat#KEY_BIT_RATE
</td> <td rowspan=2>as above, plus<br> MediaFormat#KEY_PROFILE
,<br> MediaFormat#KEY_LEVEL
<sup>+</sup>,<br> <!-- {link MediaFormat#KEY_MAX_BIT_RATE},<br> --> MediaFormat#KEY_BIT_RATE
,<br> CodecCapabilities#FEATURE_IntraRefresh
<sup>E</sup></td> </tr><tr> <td>android.os.Build.VERSION_CODES#N_MR1
</td> </tr><tr> <td>android.os.Build.VERSION_CODES#O
</td> <td rowspan=3 colspan=2>as above, plus<br> CodecCapabilities#FEATURE_PartialFrame
<sup>D</sup></td> </tr><tr> <td>android.os.Build.VERSION_CODES#O_MR1
</td> </tr><tr> <td>android.os.Build.VERSION_CODES#P
</td> </tr><tr> <td>android.os.Build.VERSION_CODES#Q
</td> <td colspan=2>as above, plus<br> CodecCapabilities#FEATURE_FrameParsing
<sup>D</sup>,<br> CodecCapabilities#FEATURE_MultipleFrames
,<br> CodecCapabilities#FEATURE_DynamicTimestamp
</td> </tr><tr> <td>android.os.Build.VERSION_CODES#R
</td> <td colspan=2>as above, plus<br> CodecCapabilities#FEATURE_LowLatency
<sup>D</sup></td> </tr> <tr> <td colspan=4> <p class=note><strong>Notes:</strong><br> *: must be specified; otherwise, method returns false
.<br> +: method does not verify that the format parameters are supported by the specified level.<br> D: decoders only<br> E: encoders only<br> ~: if both keys are provided values must match </td> </tr> </tbody> </table>
Portions of this page are modifications based on work created and shared by the Android Open Source Project and used according to terms described in the Creative Commons 2.5 Attribution License.