public static final class MediaCodecInfo.CodecCapabilities
extends Object
java.lang.Object | |
↳ | android.media.MediaCodecInfo.CodecCapabilities |
封装给定编解码器组件的功能。 例如,它支持哪些配置文件/级别组合,以及它能够提供解码数据的颜色空间,以及一些编解码器类型特定的功能标志。
您可以使用 getCapabilitiesForType()
为给定的 MediaCodecInfo
对象获取实例,并传递MIME类型。
Fields |
|
---|---|
public int[] |
colorFormats 在OpenMAX IL规范中定义的颜色格式值来自OMX_COLOR_FORMATTYPE。 |
public CodecProfileLevel[] |
profileLevels |
Public constructors |
|
---|---|
MediaCodecInfo.CodecCapabilities() |
Public methods |
|
---|---|
static MediaCodecInfo.CodecCapabilities |
createFromProfileLevel(String mime, int profile, int level) 获取一定的编解码能力 |
MediaCodecInfo.AudioCapabilities |
getAudioCapabilities() 如果这不是音频编解码器,则返回音频功能或 |
MediaFormat |
getDefaultFormat() 返回具有默认值的配置的默认值的MediaFormat对象。 |
MediaCodecInfo.EncoderCapabilities |
getEncoderCapabilities() 如果不是编码器,则返回编码能力或 |
int |
getMaxSupportedInstances() 返回支持的并发编解码器实例的最大数量。 |
String |
getMimeType() 返回为此编解码器功能对象创建的MIME类型。 |
MediaCodecInfo.VideoCapabilities |
getVideoCapabilities() 如果这不是视频编解码器,则返回视频功能或 |
final boolean |
isFeatureRequired(String name) 查询编解码器功能要求。 |
final boolean |
isFeatureSupported(String name) 查询编解码器功能功能。 |
final boolean |
isFormatSupported(MediaFormat format) 查询编解码器是否支持给定的 |
Inherited methods |
|
---|---|
From class java.lang.Object
|
int COLOR_Format12bitRGB444
此常数在API级别23中已弃用。
使用COLOR_Format24bitBGR888
。
常量值:3(0x00000003)
int COLOR_Format16bitARGB1555
此常数在API级别23中已弃用。
使用COLOR_Format32bitABGR8888
。
常量值:5(0x00000005)
int COLOR_Format16bitARGB4444
此常数在API级别23中已弃用。
使用COLOR_Format32bitABGR8888
。
常量值:4(0x00000004)
int COLOR_Format16bitBGR565
此常数在API级别23中已弃用。
使用COLOR_Format16bitRGB565
。
常量值:7(0x00000007)
int COLOR_Format16bitRGB565
每像素RGB颜色格式16位,红色和蓝色5位,绿色6位。
使用16位小尾数表示法,颜色以红色15:11,绿色10:5,蓝色4:0存储。
byte byte <--------- i --------> | <------ i + 1 ------> +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | BLUE | GREEN | RED | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ 0 4 5 7 0 2 3 7 bitThis format corresponds to
RGB_565
and
RGB_565
.
常数值:6(0x00000006)
int COLOR_Format18BitBGR666
此常数在API级别23中已弃用。
使用COLOR_Format24bitBGR888
。
常量值:41(0x00000029)
int COLOR_Format18bitARGB1665
此常数在API级别23中已弃用。
使用COLOR_Format32bitABGR8888
。
常量值:9(0x00000009)
int COLOR_Format18bitRGB666
This constant was deprecated in API level 23.
Use COLOR_Format24bitBGR888
.
常量值:8(0x00000008)
int COLOR_Format19bitARGB1666
此常数在API级别23中已弃用。
使用COLOR_Format32bitABGR8888
。
常量值:10(0x0000000a)
int COLOR_Format24BitABGR6666
This constant was deprecated in API level 23.
Use COLOR_Format32bitABGR8888
.
常量值:43(0x0000002b)
int COLOR_Format24BitARGB6666
此常数在API级别23中已弃用。
使用COLOR_Format32bitABGR8888
。
常量值:42(0x0000002a)
int COLOR_Format24bitARGB1887
此常数在API级别23中已弃用。
使用COLOR_Format32bitABGR8888
。
常量值:13(0x0000000d)
int COLOR_Format24bitBGR888
每像素RGB颜色格式24位,带有8位红色,绿色和蓝色分量。
使用24位小端表示法,颜色以红色7:0,绿色15:8,蓝色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
.
常量值:12(0x0000000c)
int COLOR_Format24bitRGB888
此常数在API级别23中已弃用。
使用COLOR_Format24bitBGR888
或COLOR_FormatRGBFlexible
。
常量值:11(0x0000000b)
int COLOR_Format25bitARGB1888
此常数在API级别23中已弃用。
使用COLOR_Format32bitABGR8888
。
常量值:14(0x0000000e)
int COLOR_Format32bitABGR8888
每像素RGBA颜色格式32位,8位红色,绿色,蓝色和alpha分量。
使用32位小端表示法,颜色以红色7:0,绿色15:8,蓝色23:16和Alpha 31:24存储。
byte byte byte byte <------ i -----> | <---- i+1 ----> | <---- i+2 ----> | <---- i+3 -----> +-----------------+-----------------+-----------------+-----------------+ | RED | GREEN | BLUE | ALPHA | +-----------------+-----------------+-----------------+-----------------+This corresponds to
RGBA_8888
.
常量值:2130747392(0x7f00a000)
int COLOR_Format32bitARGB8888
此常数在API级别23中已弃用。
使用COLOR_Format32bitABGR8888
或COLOR_FormatRGBAFlexible
。
常量值:16(0x00000010)
int COLOR_Format32bitBGRA8888
此常数在API级别23中已弃用。
使用COLOR_Format32bitABGR8888
或COLOR_FormatRGBAFlexible
。
常量值:15(0x0000000f)
int COLOR_Format8bitRGB332
此常数在API级别23中已弃用。
使用COLOR_Format24bitBGR888
。
常量值:2(0x00000002)
int COLOR_FormatCbYCrY
此常数在API级别23中已弃用。
使用COLOR_FormatYUV422Flexible
。
常量值:27(0x0000001b)
int COLOR_FormatCrYCbY
此常数在API级别23中已弃用。
使用COLOR_FormatYUV422Flexible
。
常量值:28(0x0000001c)
int COLOR_FormatL16
每像素16位,小端Y色彩格式。
byte byte <--------- i --------> | <------ i + 1 ------> +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | Y | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ 0 7 0 7 bit
常量值:36(0x00000024)
int COLOR_FormatL2
此常数在API级别23中已弃用。
使用COLOR_FormatL8
。
常量值:33(0x00000021)
int COLOR_FormatL24
此常数在API级别23中已弃用。
使用COLOR_FormatL16
。
常量值:37(0x00000025)
int COLOR_FormatL32
此常数在API级别23中已弃用。
使用COLOR_FormatL16
。
每像素32位,小端Y颜色格式。
byte byte byte byte <------ i -----> | <---- i+1 ----> | <---- i+2 ----> | <---- i+3 -----> +-----------------+-----------------+-----------------+-----------------+ | Y | +-----------------+-----------------+-----------------+-----------------+ 0 7 0 7 0 7 0 7 bit
常量值:38(0x00000026)
int COLOR_FormatL4
此常数在API级别23中已弃用。
使用COLOR_FormatL8
。
常量值:34(0x00000022)
int COLOR_FormatL8
每像素8位色彩格式。
每个字节包含一个像素。 这种格式对应于L_8
。
常量值:35(0x00000023)
int COLOR_FormatMonochrome
This constant was deprecated in API level 23.
Use COLOR_Format24bitBGR888
.
常数值:1(0x00000001)
int COLOR_FormatRGBAFlexible
灵活的32位每像素RGBA颜色格式,具有8位红色,绿色,蓝色和alpha分量。
与Image
一起使用此格式。 此格式对应于FLEX_RGBA_8888
,并且可以表示COLOR_Format32bitBGRA8888
, COLOR_Format32bitABGR8888
和COLOR_Format32bitARGB8888
格式。
也可以看看:
常量值:2134288520(0x7f36a888)
int COLOR_FormatRGBFlexible
灵活的24位/像素RGB颜色格式,带有8位红色,绿色和蓝色分量。
与Image
一起使用此格式。 该格式对应于FLEX_RGB_888
,可以表示COLOR_Format24bitBGR888
和COLOR_Format24bitRGB888
格式。
也可以看看:
常量值:2134292616(0x7f36b888)
int COLOR_FormatRawBayer10bit
SMIA 10位拜耳格式。
常量值:31(0x0000001f)
int COLOR_FormatRawBayer8bit
SMIA 8位拜耳格式。 每个字节代表10位信号的前8位。
常量值:30(0x0000001e)
int COLOR_FormatRawBayer8bitcompressed
SMIA 8位压缩拜耳格式。 每个字节表示来自10位信号的采样,该采样使用DPCM / PCM压缩被压缩成8位,如SMIA功能规范所定义。
常量值:32(0x00000020)
int COLOR_FormatYCbYCr
此常数在API级别23中已弃用。
使用COLOR_FormatYUV422Flexible
。
常量值:25(0x00000019)
int COLOR_FormatYCrYCb
此常数在API级别23中已弃用。
使用COLOR_FormatYUV422Flexible
。
常量值:26(0x0000001a)
int COLOR_FormatYUV411PackedPlanar
此常数在API级别23中已弃用。
使用COLOR_FormatYUV420Flexible
。
常量值:18(0x00000012)
int COLOR_FormatYUV411Planar
此常数在API级别23中已弃用。
使用COLOR_FormatYUV420Flexible
。
常量值:17(0x00000011)
int COLOR_FormatYUV420Flexible
每像素灵活12位,采用8位色度和亮度分量的二次采样YUV色彩格式。
色度平面在水平和垂直方向上均以2进行二次采样。 与Image
一起使用此格式。 此格式对应于YUV_420_888
,并且可以代表COLOR_FormatYUV411Planar
, COLOR_FormatYUV411PackedPlanar
, COLOR_FormatYUV420Planar
, COLOR_FormatYUV420PackedPlanar
, COLOR_FormatYUV420SemiPlanar
和COLOR_FormatYUV420PackedSemiPlanar
格式。
也可以看看:
常量值:2135033992(0x7f420888)
int COLOR_FormatYUV420PackedPlanar
此常数在API级别23中已弃用。
使用COLOR_FormatYUV420Flexible
。
常量值:20(0x00000014)
int COLOR_FormatYUV420PackedSemiPlanar
此常数在API级别23中已弃用。
使用COLOR_FormatYUV420Flexible
。
常量值:39(0x00000027)
int COLOR_FormatYUV420Planar
此常数在API级别23中已弃用。
使用COLOR_FormatYUV420Flexible
。
常量值:19(0x00000013)
int COLOR_FormatYUV420SemiPlanar
此常数在API级别23中已弃用。
使用COLOR_FormatYUV420Flexible
。
常量值:21(0x00000015)
int COLOR_FormatYUV422Flexible
每像素灵活16位,采用8位色度和亮度分量的二次采样YUV色彩格式。
对色度平面进行水平二次采样2.使用此格式与Image
。 此格式对应于YUV_422_888
,并且可以代表COLOR_FormatYCbYCr
, COLOR_FormatYCrYCb
, COLOR_FormatCbYCrY
, COLOR_FormatCrYCbY
, COLOR_FormatYUV422Planar
, COLOR_FormatYUV422PackedPlanar
, COLOR_FormatYUV422SemiPlanar
和COLOR_FormatYUV422PackedSemiPlanar
格式。
也可以看看:
常量值:2135042184(0x7f422888)
int COLOR_FormatYUV422PackedPlanar
此常数在API级别23中已弃用。
使用COLOR_FormatYUV422Flexible
。
常量值:23(0x00000017)
int COLOR_FormatYUV422PackedSemiPlanar
此常数在API级别23中已弃用。
使用COLOR_FormatYUV422Flexible
。
常量值:40(0x00000028)
int COLOR_FormatYUV422Planar
此常数在API级别23中已弃用。
使用COLOR_FormatYUV422Flexible
。
常量值:22(0x00000016)
int COLOR_FormatYUV422SemiPlanar
此常数在API级别23中已弃用。
使用COLOR_FormatYUV422Flexible
。
常量值:24(0x00000018)
int COLOR_FormatYUV444Flexible
具有8位色度和亮度分量的每像素灵活24位YUV色彩格式。
色度平面不被二次抽样。 与Image
一起使用此格式。 此格式对应于YUV_444_888
,并且可以表示COLOR_FormatYUV444Interleaved
格式。
也可以看看:
常量值:2135181448(0x7f444888)
int COLOR_FormatYUV444Interleaved
此常数在API级别23中已弃用。
使用COLOR_FormatYUV444Flexible
。
常量值:29(0x0000001d)
int COLOR_QCOM_FormatYUV420SemiPlanar
此常数在API级别23中已弃用。
使用COLOR_FormatYUV420Flexible
。
常量值:2141391872(0x7fa30c00)
int COLOR_TI_FormatYUV420PackedSemiPlanar
This constant was deprecated in API level 23.
Use COLOR_FormatYUV420Flexible
.
常量值:2130706688(0x7f000100)
String FEATURE_AdaptivePlayback
仅限视频解码器 :编解码器支持无缝分辨率更改。
常数值:“自适应回放”
String FEATURE_IntraRefresh
仅限视频编码器 :编解码器支持帧内刷新。
常数值:“内部刷新”
String FEATURE_SecurePlayback
仅视频解码器 :编解码器支持安全解密。
常量值:“安全回放”
String FEATURE_TunneledPlayback
视频或音频解码器 :编解码器支持隧道播放。
常数值:“隧道回放”
MediaCodecInfo.CodecCapabilities createFromProfileLevel (String mime, int profile, int level)
获取一定的编解码能力mime type
, profile
和level
。 如果框架不能理解类型或配置文件级别的组合,它将返回null。
在 M
,调用此方法时未事先调用 MediaCodecList
类的任何方法,结果为 NullPointerException
。
Parameters | |
---|---|
mime |
String
|
profile |
int
|
level |
int
|
Returns | |
---|---|
MediaCodecInfo.CodecCapabilities |
MediaCodecInfo.AudioCapabilities getAudioCapabilities ()
如果不是音频编解码器,则返回音频功能或 null
。
Returns | |
---|---|
MediaCodecInfo.AudioCapabilities |
MediaFormat getDefaultFormat ()
返回具有默认值的配置的默认值的MediaFormat对象。
Returns | |
---|---|
MediaFormat |
MediaCodecInfo.EncoderCapabilities getEncoderCapabilities ()
如果不是编码器,则返回编码能力或 null
。
Returns | |
---|---|
MediaCodecInfo.EncoderCapabilities |
int getMaxSupportedInstances ()
返回支持的并发编解码器实例的最大数量。
这是一个上限的暗示。 应用程序不应期望成功操作比返回值更多的实例,但实际并发操作实例的数量可能更少,因为它取决于使用时的可用资源。
Returns | |
---|---|
int |
MediaCodecInfo.VideoCapabilities getVideoCapabilities ()
如果这不是视频编解码器,则返回视频功能或 null
。
Returns | |
---|---|
MediaCodecInfo.VideoCapabilities |
boolean isFeatureRequired (String name)
查询编解码器功能要求。
编解码器需要使用这些功能,因此它们始终处于打开状态。
Parameters | |
---|---|
name |
String
|
Returns | |
---|---|
boolean |
boolean isFeatureSupported (String name)
查询编解码器功能功能。
这些功能支持编解码器使用。 其中包括可打开的可选功能以及始终打开的功能。
Parameters | |
---|---|
name |
String
|
Returns | |
---|---|
boolean |
boolean isFormatSupported (MediaFormat format)
查询编解码器是否支持给定的 MediaFormat
。
注意:在LOLLIPOP
, format
不能包含frame rate 。 使用format.setString(MediaFormat.KEY_FRAME_RATE, null)
清除格式中的任何现有帧速率设置。
下表总结了此方法考虑的格式键。
OS Version(s) | MediaFormat keys considered for |
||
---|---|---|---|
Audio Codecs | Video Codecs | Encoders | |
LOLLIPOP |
KEY_MIME *,KEY_SAMPLE_RATE ,KEY_CHANNEL_COUNT , |
KEY_MIME *,FEATURE_AdaptivePlayback D,FEATURE_SecurePlayback D,FEATURE_TunneledPlayback D,KEY_WIDTH ,KEY_HEIGHT ,no KEY_FRAME_RATE |
KEY_BITRATE_MODE ,KEY_PROFILE (and/or KEY_AAC_PROFILE ~),KEY_COMPLEXITY (and/or KEY_FLAC_COMPRESSION_LEVEL ~) |
LOLLIPOP_MR1 |
as above, plusKEY_FRAME_RATE |
||
M |
|||
N |
as above, plusKEY_PROFILE ,KEY_BIT_RATE |
as above, plusKEY_PROFILE ,KEY_LEVEL +,KEY_BIT_RATE ,FEATURE_IntraRefresh E |
|
笔记: |
Parameters | |
---|---|
format |
MediaFormat : media format with optional feature directives. |
Returns | |
---|---|
boolean |
whether the codec capabilities support the given format and feature requests. |
Throws | |
---|---|
IllegalArgumentException |
if format is not a valid media format. |