CodecCapabilities
class CodecCapabilities
kotlin.Any | |
↳ | android.media.MediaCodecInfo.CodecCapabilities |
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 | |
---|---|
static Int | |
static Int | |
static Int | |
static Int | |
static Int |
16 bits per pixel RGB color format, with 5-bit red & blue and 6-bit green component. |
static Int | |
static Int | |
static Int | |
static Int | |
static Int | |
static Int | |
static Int | |
static Int |
24 bits per pixel RGB color format, with 8-bit red, green & blue components. |
static Int | |
static Int | |
static Int |
32 bits per pixel RGBA color format, with 10-bit red, green, blue, and 2-bit alpha components. |
static Int |
32 bits per pixel RGBA color format, with 8-bit red, green, blue, and alpha components. |
static Int | |
static Int | |
static Int |
64 bits per pixel RGBA color format, with 16-bit signed floating point red, green, blue, and alpha components. |
static Int | |
static Int | |
static Int | |
static Int |
16 bits per pixel, little-endian Y color format. |
static Int | |
static Int | |
static Int |
32 bits per pixel, little-endian Y color format. |
static Int | |
static Int |
8 bits per pixel Y color format. |
static Int | |
static Int |
Flexible 32 bits per pixel RGBA color format with 8-bit red, green, blue, and alpha components. |
static Int |
Flexible 24 bits per pixel RGB color format with 8-bit red, green and blue components. |
static Int |
SMIA 10-bit Bayer format. |
static Int |
SMIA 8-bit Bayer format. |
static Int |
SMIA 8-bit compressed Bayer format. |
static Int | |
static Int | |
static Int | |
static Int | |
static Int | |
static Int |
Flexible 12 bits per pixel, subsampled YUV color format with 8-bit chroma and luma components. |
static Int | |
static Int | |
static Int | |
static Int | |
static Int |
Flexible 16 bits per pixel, subsampled YUV color format with 8-bit chroma and luma components. |
static Int | |
static Int | |
static Int | |
static Int | |
static Int |
Flexible 24 bits per pixel YUV color format with 8-bit chroma and luma components. |
static Int | |
static Int |
P010 is 10-bit-per component 4:2:0 YCbCr semiplanar format. |
static Int |
P210 is 10-bit-per component 4:2:2 YCbCr semiplanar format. |
static Int | |
static Int | |
static String |
video decoder only: codec supports seamless resolution changes. |
static String |
video decoder only: codec supports detaching the output surface when in Surface mode. |
static String |
video decoder only: codec supports dynamically changing color aspects. |
static String |
If true, the timestamp of each output buffer is derived from the timestamp of the input buffer that produced the output. |
static String |
video encoder only: codec supports exporting encoding statistics. |
static String |
decoder onlyIf true, the codec supports partial (including multiple) access units per input buffer. |
static String |
video encoder only: codec supports HDR editing. |
static String |
video encoder only: codec supports HLG editing. |
static String |
video encoder only: codec supports intra refresh. |
static String |
decoder only: codec supports low latency decoding. |
static String |
If true, the codec supports multiple access units (for decoding, or to output for encoders). |
static String |
video decoder only: codec supports queuing partial frames. |
static String |
video encoder only: codec supports quantization parameter bounds. |
static String |
video encoder only: codec supports region of interest encoding. |
static String |
video decoder only: codec supports secure decryption. |
static String |
video or audio decoder only: codec supports tunneled playback. |
Public constructors | |
---|---|
Public methods | |
---|---|
static MediaCodecInfo.CodecCapabilities! |
createFromProfileLevel(mime: String!, profile: Int, level: Int) Retrieve the codec capabilities for a certain |
MediaCodecInfo.AudioCapabilities! |
Returns the audio capabilities or |
MediaFormat! |
Returns a MediaFormat object with default values for configurations that have defaults. |
MediaCodecInfo.EncoderCapabilities! |
Returns the encoding capabilities or |
Int |
Returns the max number of the supported concurrent codec instances. |
String! |
Returns the mime type for which this codec-capability object was created. |
MediaCodecInfo.VideoCapabilities! |
Returns the video capabilities or |
Boolean |
isFeatureRequired(name: String!) Query codec feature requirements. |
Boolean |
isFeatureSupported(name: String!) Query codec feature capabilities. |
Boolean |
isFormatSupported(format: MediaFormat!) Query whether codec supports a given |
Properties | |
---|---|
IntArray! |
The color format for the media. |
Array<MediaCodecInfo.CodecProfileLevel!>! |
Constants
COLOR_Format12bitRGB444
static valCOLOR_Format12bitRGB444: Int
Deprecated: Use COLOR_Format24bitBGR888
.
Value: 3
COLOR_Format16bitARGB1555
static valCOLOR_Format16bitARGB1555: Int
Deprecated: Use COLOR_Format32bitABGR8888
.
Value: 5
COLOR_Format16bitARGB4444
static valCOLOR_Format16bitARGB4444: Int
Deprecated: Use COLOR_Format32bitABGR8888
.
Value: 4
COLOR_Format16bitBGR565
static valCOLOR_Format16bitBGR565: Int
Deprecated: Use COLOR_Format16bitRGB565
.
Value: 7
COLOR_Format16bitRGB565
static val COLOR_Format16bitRGB565: Int
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
android.graphics.PixelFormat#RGB_565
and android.graphics.ImageFormat#RGB_565
.
Value: 6
COLOR_Format18BitBGR666
static valCOLOR_Format18BitBGR666: Int
Deprecated: Use COLOR_Format24bitBGR888
.
Value: 41
COLOR_Format18bitARGB1665
static valCOLOR_Format18bitARGB1665: Int
Deprecated: Use COLOR_Format32bitABGR8888
.
Value: 9
COLOR_Format18bitRGB666
static valCOLOR_Format18bitRGB666: Int
Deprecated: Use COLOR_Format24bitBGR888
.
Value: 8
COLOR_Format19bitARGB1666
static valCOLOR_Format19bitARGB1666: Int
Deprecated: Use COLOR_Format32bitABGR8888
.
Value: 10
COLOR_Format24BitABGR6666
static valCOLOR_Format24BitABGR6666: Int
Deprecated: Use COLOR_Format32bitABGR8888
.
Value: 43
COLOR_Format24BitARGB6666
static valCOLOR_Format24BitARGB6666: Int
Deprecated: Use COLOR_Format32bitABGR8888
.
Value: 42
COLOR_Format24bitARGB1887
static valCOLOR_Format24bitARGB1887: Int
Deprecated: Use COLOR_Format32bitABGR8888
.
Value: 13
COLOR_Format24bitBGR888
static val COLOR_Format24bitBGR888: Int
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 | +-----------------+-----------------+-----------------+
android.graphics.PixelFormat#RGB_888
, and can also be represented as a flexible format by COLOR_FormatRGBFlexible
.
Value: 12
COLOR_Format24bitRGB888
static valCOLOR_Format24bitRGB888: Int
Deprecated: Use COLOR_Format24bitBGR888
or COLOR_FormatRGBFlexible
.
Value: 11
COLOR_Format25bitARGB1888
static valCOLOR_Format25bitARGB1888: Int
Deprecated: Use COLOR_Format32bitABGR8888
.
Value: 14
COLOR_Format32bitABGR2101010
static val COLOR_Format32bitABGR2101010: Int
32 bits per pixel RGBA color format, with 10-bit red, green, blue, and 2-bit alpha components.
Using 32-bit little-endian representation, colors stored as Red 9:0, Green 19:10, Blue 29:20, and Alpha 31:30.
byte byte byte byte <------ i -----> | <---- i+1 ----> | <---- i+2 ----> | <---- i+3 -----> +-----------------+---+-------------+-------+---------+-----------+-----+ | RED | GREEN | BLUE |ALPHA| +-----------------+---+-------------+-------+---------+-----------+-----+ 0 7 0 1 2 7 0 3 4 7 0 5 6 7
android.graphics.PixelFormat#RGBA_1010102
.
Value: 2130750114
COLOR_Format32bitABGR8888
static val COLOR_Format32bitABGR8888: Int
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 | +-----------------+-----------------+-----------------+-----------------+
android.graphics.PixelFormat#RGBA_8888
.
Value: 2130747392
COLOR_Format32bitARGB8888
static valCOLOR_Format32bitARGB8888: Int
Deprecated: Use COLOR_Format32bitABGR8888
Or COLOR_FormatRGBAFlexible
.
Value: 16
COLOR_Format32bitBGRA8888
static valCOLOR_Format32bitBGRA8888: Int
Deprecated: Use COLOR_Format32bitABGR8888
Or COLOR_FormatRGBAFlexible
.
Value: 15
COLOR_Format64bitABGRFloat
static val COLOR_Format64bitABGRFloat: Int
64 bits per pixel RGBA color format, with 16-bit signed floating point red, green, blue, and alpha components.
byte byte byte byte <-- i -->|<- i+1 ->|<- i+2 ->|<- i+3 ->|<- i+4 ->|<- i+5 ->|<- i+6 ->|<- i+7 -> +---------+---------+-------------------+---------+---------+---------+---------+ | RED | GREEN | BLUE | ALPHA | +---------+---------+-------------------+---------+---------+---------+---------+ 0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7
android.graphics.PixelFormat#RGBA_F16
.
Value: 2130710294
COLOR_Format8bitRGB332
static valCOLOR_Format8bitRGB332: Int
Deprecated: Use COLOR_Format24bitBGR888
.
Value: 2
COLOR_FormatCbYCrY
static valCOLOR_FormatCbYCrY: Int
Deprecated: Use COLOR_FormatYUV422Flexible
.
Value: 27
COLOR_FormatCrYCbY
static valCOLOR_FormatCrYCbY: Int
Deprecated: Use COLOR_FormatYUV422Flexible
.
Value: 28
COLOR_FormatL16
static val COLOR_FormatL16: Int
16 bits per pixel, little-endian Y color format.
byte byte <--------- i --------> | <------ i + 1 ------> +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | Y | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ 0 7 0 7 bit
Value: 36
COLOR_FormatL32
static valCOLOR_FormatL32: Int
Deprecated: 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
Value: 38
COLOR_FormatL8
static val COLOR_FormatL8: Int
8 bits per pixel Y color format.
Each byte contains a single pixel. This format corresponds to android.graphics.PixelFormat#L_8
.
Value: 35
COLOR_FormatMonochrome
static valCOLOR_FormatMonochrome: Int
Deprecated: Use COLOR_Format24bitBGR888
.
Value: 1
COLOR_FormatRGBAFlexible
static val COLOR_FormatRGBAFlexible: Int
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 android.graphics.ImageFormat#FLEX_RGBA_8888
, and can represent COLOR_Format32bitBGRA8888
, COLOR_Format32bitABGR8888
and COLOR_Format32bitARGB8888
formats.
Value: 2134288520
See Also
COLOR_FormatRGBFlexible
static val COLOR_FormatRGBFlexible: Int
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 android.graphics.ImageFormat#FLEX_RGB_888
, and can represent COLOR_Format24bitBGR888
and COLOR_Format24bitRGB888
formats.
Value: 2134292616
See Also
COLOR_FormatRawBayer10bit
static val COLOR_FormatRawBayer10bit: Int
SMIA 10-bit Bayer format.
Value: 31
COLOR_FormatRawBayer8bit
static val COLOR_FormatRawBayer8bit: Int
SMIA 8-bit Bayer format. Each byte represents the top 8-bits of a 10-bit signal.
Value: 30
COLOR_FormatRawBayer8bitcompressed
static val COLOR_FormatRawBayer8bitcompressed: Int
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.
Value: 32
COLOR_FormatYCbYCr
static valCOLOR_FormatYCbYCr: Int
Deprecated: Use COLOR_FormatYUV422Flexible
.
Value: 25
COLOR_FormatYCrYCb
static valCOLOR_FormatYCrYCb: Int
Deprecated: Use COLOR_FormatYUV422Flexible
.
Value: 26
COLOR_FormatYUV411PackedPlanar
static valCOLOR_FormatYUV411PackedPlanar: Int
Deprecated: Use COLOR_FormatYUV420Flexible
.
Value: 18
COLOR_FormatYUV411Planar
static valCOLOR_FormatYUV411Planar: Int
Deprecated: Use COLOR_FormatYUV420Flexible
.
Value: 17
COLOR_FormatYUV420Flexible
static val COLOR_FormatYUV420Flexible: Int
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 android.graphics.ImageFormat#YUV_420_888
, and can represent the COLOR_FormatYUV411Planar
, COLOR_FormatYUV411PackedPlanar
, COLOR_FormatYUV420Planar
, COLOR_FormatYUV420PackedPlanar
, COLOR_FormatYUV420SemiPlanar
and COLOR_FormatYUV420PackedSemiPlanar
formats.
Value: 2135033992
See Also
COLOR_FormatYUV420PackedPlanar
static valCOLOR_FormatYUV420PackedPlanar: Int
Deprecated: Use COLOR_FormatYUV420Flexible
.
Value: 20
COLOR_FormatYUV420PackedSemiPlanar
static valCOLOR_FormatYUV420PackedSemiPlanar: Int
Deprecated: Use COLOR_FormatYUV420Flexible
.
Value: 39
COLOR_FormatYUV420Planar
static valCOLOR_FormatYUV420Planar: Int
Deprecated: Use COLOR_FormatYUV420Flexible
.
Value: 19
COLOR_FormatYUV420SemiPlanar
static valCOLOR_FormatYUV420SemiPlanar: Int
Deprecated: Use COLOR_FormatYUV420Flexible
.
Value: 21
COLOR_FormatYUV422Flexible
static val COLOR_FormatYUV422Flexible: Int
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 android.graphics.ImageFormat#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.
Value: 2135042184
See Also
COLOR_FormatYUV422PackedPlanar
static valCOLOR_FormatYUV422PackedPlanar: Int
Deprecated: Use COLOR_FormatYUV422Flexible
.
Value: 23
COLOR_FormatYUV422PackedSemiPlanar
static valCOLOR_FormatYUV422PackedSemiPlanar: Int
Deprecated: Use COLOR_FormatYUV422Flexible
.
Value: 40
COLOR_FormatYUV422Planar
static valCOLOR_FormatYUV422Planar: Int
Deprecated: Use COLOR_FormatYUV422Flexible
.
Value: 22
COLOR_FormatYUV422SemiPlanar
static valCOLOR_FormatYUV422SemiPlanar: Int
Deprecated: Use COLOR_FormatYUV422Flexible
.
Value: 24
COLOR_FormatYUV444Flexible
static val COLOR_FormatYUV444Flexible: Int
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 android.graphics.ImageFormat#YUV_444_888
, and can represent the COLOR_FormatYUV444Interleaved
format.
Value: 2135181448
See Also
COLOR_FormatYUV444Interleaved
static valCOLOR_FormatYUV444Interleaved: Int
Deprecated: Use COLOR_FormatYUV444Flexible
.
Value: 29
COLOR_FormatYUVP010
static val COLOR_FormatYUVP010: Int
P010 is 10-bit-per component 4:2:0 YCbCr semiplanar format.
This format uses 24 allocated bits per pixel with 15 bits of data per pixel. Chroma planes are subsampled by 2 both horizontally and vertically. Each chroma and luma component has 16 allocated bits in little-endian configuration with 10 MSB of actual data.
byte byte <--------- i --------> | <------ i + 1 ------> +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | UNUSED | Y/Cb/Cr | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ 0 5 6 7 0 7 bit
Image
. This format corresponds to android.graphics.ImageFormat#YCBCR_P010
.
Value: 54
COLOR_FormatYUVP210
static val COLOR_FormatYUVP210: Int
P210 is 10-bit-per component 4:2:2 YCbCr semiplanar format.
This format uses 32 allocated bits per pixel with 20 bits of data per pixel. Chroma planes are subsampled by 2 both horizontally. Each chroma and luma component has 16 allocated bits in little-endian configuration with 10 MSB of actual data.
byte byte <--------- i --------> | <------ i + 1 ------> +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | UNUSED | Y/Cb/Cr | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ 0 5 6 7 0 7 bit
Image
. This format corresponds to android.graphics.ImageFormat#YCBCR_P210
.
Value: 60
COLOR_QCOM_FormatYUV420SemiPlanar
static valCOLOR_QCOM_FormatYUV420SemiPlanar: Int
Deprecated: Use COLOR_FormatYUV420Flexible
.
Value: 2141391872
COLOR_TI_FormatYUV420PackedSemiPlanar
static valCOLOR_TI_FormatYUV420PackedSemiPlanar: Int
Deprecated: Use COLOR_FormatYUV420Flexible
.
Value: 2130706688
FEATURE_AdaptivePlayback
static val FEATURE_AdaptivePlayback: String
video decoder only: codec supports seamless resolution changes.
Value: "adaptive-playback"
FEATURE_DetachedSurface
static val FEATURE_DetachedSurface: String
video decoder only: codec supports detaching the output surface when in Surface mode.
If true, the codec can be configured in Surface mode without an actual surface (in detached surface mode).
Value: "detached-surface"
FEATURE_DynamicColorAspects
static val FEATURE_DynamicColorAspects: String
video decoder only: codec supports dynamically changing color aspects.
If true, the codec can propagate color aspect changes during decoding. This is only meaningful at session boundaries, e.g. upon processing Picture Parameter Sets prior to a new IDR. The color aspects may come from the bitstream, or may be provided using MediaCodec.setParameters
calls.
If the codec supports both 8-bit and 10-bit profiles, this feature means that the codec can dynamically switch between 8 and 10-bit profiles, but this is restricted to Surface mode only.
If the device supports HDR transfer functions, switching between SDR and HDR transfer is also supported. Together with the previous clause this means that switching between SDR and HDR sessions are supported in Surface mode, as SDR is typically encoded at 8-bit and HDR at 10-bit.
Value: "dynamic-color-aspects"
FEATURE_DynamicTimestamp
static val FEATURE_DynamicTimestamp: String
If true, the timestamp of each output buffer is derived from the timestamp of the input buffer that produced the output. If false, the timestamp of each output buffer is derived from the timestamp of the first input buffer.
Value: "dynamic-timestamp"
FEATURE_EncodingStatistics
static val FEATURE_EncodingStatistics: String
video encoder only: codec supports exporting encoding statistics. Encoders with this feature can provide the App clients with the encoding statistics information about the frame. The scope of encoding statistics is controlled by MediaFormat.KEY_VIDEO_ENCODING_STATISTICS_LEVEL
.
Value: "encoding-statistics"
FEATURE_FrameParsing
static val FEATURE_FrameParsing: String
decoder onlyIf true, the codec supports partial (including multiple) access units per input buffer.
Value: "frame-parsing"
FEATURE_HdrEditing
static val FEATURE_HdrEditing: String
video encoder only: codec supports HDR editing.
HDR editing support means that the codec accepts 10-bit HDR input surface, and it is capable of generating any HDR metadata required from both YUV and RGB input when the metadata is not present. This feature is only meaningful when using an HDR capable profile (and 10-bit HDR input).
This feature implies that the codec is capable of encoding at least one HDR format, and that it supports RGBA_1010102 as well as P010, and optionally RGBA_FP16 input formats, and that the encoder can generate HDR metadata for all supported HDR input formats.
Value: "hdr-editing"
FEATURE_HlgEditing
static val FEATURE_HlgEditing: String
video encoder only: codec supports HLG editing.
HLG editing support means that the codec accepts 10-bit HDR input surface in both YUV and RGB pixel format. This feature is only meaningful when using a 10-bit (HLG) profile and 10-bit input.
This feature implies that the codec is capable of encoding 10-bit format, and that it supports RGBA_1010102 as well as P010, and optionally RGBA_FP16 input formats.
The difference between this feature and is that HLG does not require the generation of HDR metadata and does not use an explicit HDR profile.
Value: "hlg-editing"
FEATURE_IntraRefresh
static val FEATURE_IntraRefresh: String
video encoder only: codec supports intra refresh.
Value: "intra-refresh"
FEATURE_LowLatency
static val FEATURE_LowLatency: String
decoder only: codec supports low latency decoding. If supported, clients can enable the low latency mode for the decoder. When the mode is enabled, the decoder doesn't hold input and output data more than required by the codec standards.
Value: "low-latency"
FEATURE_MultipleFrames
static val FEATURE_MultipleFrames: String
If true, the codec supports multiple access units (for decoding, or to output for encoders). If false, the codec only supports single access units. Producing multiple access units for output is an optional feature.
Value: "multiple-frames"
FEATURE_PartialFrame
static val FEATURE_PartialFrame: String
video decoder only: codec supports queuing partial frames.
Value: "partial-frame"
FEATURE_QpBounds
static val FEATURE_QpBounds: String
video encoder only: codec supports quantization parameter bounds.
Value: "qp-bounds"
FEATURE_Roi
static val FEATURE_Roi: String
video encoder only: codec supports region of interest encoding.
RoI encoding support means the codec accepts information that specifies the relative importance of different portions of each video frame. This allows the encoder to separate a video frame into critical and non-critical regions, and use more bits (better quality) to represent the critical regions and de-prioritize non-critical regions. In other words, the encoder chooses a negative qp bias for the critical portions and a zero or positive qp bias for the non-critical portions.
At a basic level, if the encoder decides to encode each frame with a uniform quantization value 'qpFrame' and a 'qpBias' is chosen/suggested for an LCU of the frame, then the actual qp of the LCU will be 'qpFrame + qpBias', although this value can be clamped basing on the min-max configured qp bounds for the current encoding session.
In a shot, if a group of LCUs pan out quickly they can be marked as non-critical thereby enabling the encoder to reserve fewer bits during their encoding. Contrarily, LCUs that remain in shot for a prolonged duration can be encoded at better quality in one frame thereby setting-up an excellent long-term reference for all future frames.
Note that by offsetting the quantization of each LCU, the overall bit allocation will differ from the originally estimated bit allocation, and the encoder will adjust the frame quantization for subsequent frames to meet the bitrate target. An effective selection of critical regions can set-up a golden reference and this can compensate for the bit burden that was introduced due to encoding RoI's at better quality. On the other hand, an ineffective choice of critical regions might increase the quality of certain parts of the image but this can hamper quality in subsequent frames.
Value: "region-of-interest"
FEATURE_SecurePlayback
static val FEATURE_SecurePlayback: String
video decoder only: codec supports secure decryption.
Value: "secure-playback"
FEATURE_TunneledPlayback
static val FEATURE_TunneledPlayback: String
video or audio decoder only: codec supports tunneled playback.
Value: "tunneled-playback"
Public constructors
Public methods
createFromProfileLevel
static fun createFromProfileLevel(
mime: String!,
profile: Int,
level: Int
): MediaCodecInfo.CodecCapabilities!
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.
In android.os.Build.VERSION_CODES#M
, calling this method without calling any method of the MediaCodecList
class beforehand results in a NullPointerException
.
getAudioCapabilities
fun getAudioCapabilities(): MediaCodecInfo.AudioCapabilities!
Returns the audio capabilities or null
if this is not an audio codec.
getDefaultFormat
fun getDefaultFormat(): MediaFormat!
Returns a MediaFormat object with default values for configurations that have defaults.
getEncoderCapabilities
fun getEncoderCapabilities(): MediaCodecInfo.EncoderCapabilities!
Returns the encoding capabilities or null
if this is not an encoder.
getMaxSupportedInstances
fun getMaxSupportedInstances(): Int
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.
getMimeType
fun getMimeType(): String!
Returns the mime type for which this codec-capability object was created.
getVideoCapabilities
fun getVideoCapabilities(): MediaCodecInfo.VideoCapabilities!
Returns the video capabilities or null
if this is not a video codec.
isFeatureRequired
fun isFeatureRequired(name: String!): Boolean
Query codec feature requirements.
These features are required to be used by the codec, and as such, they are always turned on.
isFeatureSupported
fun isFeatureSupported(name: String!): Boolean
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.
isFormatSupported
fun isFormatSupported(format: MediaFormat!): Boolean
Query whether codec supports a given MediaFormat
.
Note: On android.os.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.
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.
Parameters | |
---|---|
format |
MediaFormat!: media format with optional feature directives. |
Return | |
---|---|
Boolean |
whether the codec capabilities support the given format and feature requests. |
Exceptions | |
---|---|
java.lang.IllegalArgumentException |
if format is not a valid media format. |
Properties
colorFormats
var colorFormats: IntArray!
The color format for the media. This is one of the color constants defined in this class.