AVCapability

Overview

The AVCapability module provides functions for querying the codec capability.

@syscap SystemCapability.Multimedia.Media.CodecBase

Since

10

Summary

Files

Name Description
native_avcapability.h Declares the native APIs used to query the codec capability.
File to include: <multimedia/player_framework/native_avcapability.h>
Library: libnative_media_codecbase.so

Structs

Name Description
OH_AVRange Defines the value range, which contains the minimum value and maximum value.

Types

Name Description
OH_BitrateMode Defines an enum that enumerates the bit rate modes of an encoder.
OH_AVRange Defines a struct for the value range, which contains the minimum value and maximum value.
OH_AVCodecCategory Defines an enum that enumerates the codec categories.

Enums

Name Description
OH_BitrateMode { BITRATE_MODE_CBR = 0, BITRATE_MODE_VBR = 1, BITRATE_MODE_CQ = 2 } Enumerates the bit rate modes of an encoder.
OH_AVCodecCategory { HARDWARE = 0, SOFTWARE } Enumerates the codec categories.

Functions

Name Description
*OH_AVCodec_GetCapability (const char *mime, bool isEncoder) Obtains the codec capability recommended by the system.
*OH_AVCodec_GetCapabilityByCategory (const char *mime, bool isEncoder, OH_AVCodecCategory category) Obtains the codec capability by category, which can be a hardware codec or software codec.
OH_AVCapability_IsHardware (OH_AVCapability *capability) Checks whether a codec capability instance describes a hardware codec.
*OH_AVCapability_GetName (OH_AVCapability *capability) Obtains the codec name.
OH_AVCapability_GetMaxSupportedInstances (OH_AVCapability *capability) Obtains the maximum number of codec instances supported by a codec.
OH_AVCapability_GetEncoderBitrateRange (OH_AVCapability *capability, OH_AVRange *bitrateRange) Obtains the bit rate range supported by an encoder.
OH_AVCapability_IsEncoderBitrateModeSupported (OH_AVCapability *capability, OH_BitrateMode bitrateMode) Checks whether an encoder supports a specific bit rate mode.
OH_AVCapability_GetEncoderQualityRange (OH_AVCapability *capability, OH_AVRange *qualityRange) Obtains the quality range supported by an encoder.
OH_AVCapability_GetEncoderComplexityRange (OH_AVCapability *capability, OH_AVRange *complexityRange) Obtains the complexity range supported by an encoder.
OH_AVCapability_GetAudioSupportedSampleRates (OH_AVCapability *capability, const int32_t **sampleRates, uint32_t *sampleRateNum) Obtains the sampling rates supported by an audio codec.
OH_AVCapability_GetAudioChannelCountRange (OH_AVCapability *capability, OH_AVRange *channelCountRange) Obtains the count range of audio channels supported by an audio codec.
OH_AVCapability_GetVideoWidthAlignment (OH_AVCapability *capability, int32_t *widthAlignment) Obtains the video width alignment supported by a video codec.
OH_AVCapability_GetVideoHeightAlignment (OH_AVCapability *capability, int32_t *heightAlignment) Obtains the video height alignment supported by a video codec.
OH_AVCapability_GetVideoWidthRangeForHeight (OH_AVCapability *capability, int32_t height, OH_AVRange *widthRange) Obtains the video width range supported by a video codec based on a given height.
OH_AVCapability_GetVideoHeightRangeForWidth (OH_AVCapability *capability, int32_t width, OH_AVRange *heightRange) Obtains the video height range supported by a video codec based on a given width.
OH_AVCapability_GetVideoWidthRange (OH_AVCapability *capability, OH_AVRange *widthRange) Obtains the video width range supported by a video codec.
OH_AVCapability_GetVideoHeightRange (OH_AVCapability *capability, OH_AVRange *heightRange) Obtains the video height range supported by a video codec.
OH_AVCapability_IsVideoSizeSupported (OH_AVCapability *capability, int32_t width, int32_t height) Checks whether a video codec supports a specific video size.
OH_AVCapability_GetVideoFrameRateRange (OH_AVCapability *capability, OH_AVRange *frameRateRange) Obtains the video frame rate range supported by a video codec.
OH_AVCapability_GetVideoFrameRateRangeForSize (OH_AVCapability *capability, int32_t width, int32_t height, OH_AVRange *frameRateRange) Obtains the video frame rate range supported by a video codec based on a given video size.
OH_AVCapability_AreVideoSizeAndFrameRateSupported (OH_AVCapability *capability, int32_t width, int32_t height, int32_t frameRate) Checks whether a video codec supports the combination of a video size and frame rate.
OH_AVCapability_GetVideoSupportedPixelFormats (OH_AVCapability *capability, const int32_t **pixelFormats, uint32_t *pixelFormatNum) Obtains the video pixel formats supported by a video codec.
OH_AVCapability_GetSupportedProfiles (OH_AVCapability *capability, const int32_t **profiles, uint32_t *profileNum) Obtains the profiles supported by a codec.
OH_AVCapability_GetSupportedLevelsForProfile (OH_AVCapability *capability, int32_t profile, const int32_t **levels, uint32_t *levelNum) Obtains the codec levels supported by a profile.
OH_AVCapability_AreProfileAndLevelSupported (OH_AVCapability *capability, int32_t profile, int32_t level) Checks whether a codec supports the combination of a profile and level.

Variables

Name Description
OH_AVRange::minVal Defines the minimum value.
OH_AVRange::maxVal Defines the maximum value.

Type Description

OH_AVCodecCategory

typedef enum OH_AVCodecCategory OH_AVCodecCategory

Description

Defines an enum that enumerates the codec categories.

@syscap SystemCapability.Multimedia.Media.CodecBase

Since

10

OH_AVRange

typedef struct OH_AVRange OH_AVRange

Description

Defines a struct for the value range, which contains the minimum value and maximum value.

@syscap SystemCapability.Multimedia.Media.CodecBase

Since

10

OH_BitrateMode

typedef enum OH_BitrateMode OH_BitrateMode

Description

Defines an enum that enumerates the bit rate modes of an encoder.

@syscap SystemCapability.Multimedia.Media.CodecBase

Since

10

Enum Description

OH_AVCodecCategory

enum OH_AVCodecCategory

Description

Defines an enum that enumerates the codec categories.

@syscap SystemCapability.Multimedia.Media.CodecBase

Since

10

Value Description
HARDWARE Hardware codec.
SOFTWARE Software codec.

OH_BitrateMode

enum OH_BitrateMode

Description

Defines an enum that enumerates the bit rate modes of an encoder.

@syscap SystemCapability.Multimedia.Media.CodecBase

Since

10

Value Description
BITRATE_MODE_CBR Constant bit rate.
BITRATE_MODE_VBR Variable bit rate.
BITRATE_MODE_CQ Constant quality.

Function Description

OH_AVCapability_AreProfileAndLevelSupported()

bool OH_AVCapability_AreProfileAndLevelSupported (OH_AVCapability *capability, int32_t profile, int32_t level)

Description

Checks whether a codec supports the combination of a profile and level.

@syscap SystemCapability.Multimedia.Media.CodecBase

Parameters

Name Description
capability Pointer to the codec capability.
profile Profile of the codec.
level Level of the codec.

Returns

Returns true if the combination of the profile and level is supported; returns false otherwise.

Since

10

OH_AVCapability_AreVideoSizeAndFrameRateSupported()

bool OH_AVCapability_AreVideoSizeAndFrameRateSupported (OH_AVCapability *capability, int32_t width, int32_t height, int32_t frameRate)

Description

Checks whether a video codec supports the combination of a video size and frame rate.

@syscap SystemCapability.Multimedia.Media.CodecBase

Parameters

Name Description
capability Pointer to the video codec capability. A pointer to the audio codec capability cannot be filled in.
width Number of horizontal video pixels.
height Number of vertical video pixels.
frameRate Number of frames per second.

Returns

Returns true if the combination of the video size and frame rate is supported; returns false otherwise.

Since

10

OH_AVCapability_GetAudioChannelCountRange()

OH_AVErrCode OH_AVCapability_GetAudioChannelCountRange (OH_AVCapability *capability, OH_AVRange *channelCountRange)

Description

Obtains the count range of audio channels supported by an audio codec.

@syscap SystemCapability.Multimedia.Media.CodecBase

Parameters

Name Description
capability Pointer to the audio codec capability. A pointer to the video codec capability cannot be filled in.
channelCountRange Output parameter. Pointer to the count range of audio channels supported.

Returns

Returns AV_ERR_OK if the operation is successful; returns an error code defined in OH_AVErrCode otherwise.

Since

10

OH_AVCapability_GetAudioSupportedSampleRates()

OH_AVErrCode OH_AVCapability_GetAudioSupportedSampleRates (OH_AVCapability *capability, const int32_t **sampleRates, uint32_t *sampleRateNum)

Description

Obtains the sampling rates supported by an audio codec.

@syscap SystemCapability.Multimedia.Media.CodecBase

Parameters

Name Description
capability Pointer to the audio codec capability. A pointer to the video codec capability cannot be filled in.
sampleRates Output parameter. Double pointer to the sampling rate array.
sampleRateNum Output parameter. Pointer to the number of elements in the array.

Returns

Returns AV_ERR_OK if the operation is successful; returns an error code defined in OH_AVErrCode otherwise.

Since

10

OH_AVCapability_GetEncoderBitrateRange()

OH_AVErrCode OH_AVCapability_GetEncoderBitrateRange (OH_AVCapability *capability, OH_AVRange *bitrateRange)

Description

Obtains the bit rate range supported by an encoder.

@syscap SystemCapability.Multimedia.Media.CodecBase

Parameters

Name Description
capability Pointer to the encoder capability. A pointer to the decoder capability cannot be filled in.
bitrateRange Output parameter. Pointer to the bit rate range supported.

Returns

Returns AV_ERR_OK if the operation is successful; returns an error code defined in OH_AVErrCode otherwise.

Since

10

OH_AVCapability_GetEncoderComplexityRange()

OH_AVErrCode OH_AVCapability_GetEncoderComplexityRange (OH_AVCapability *capability, OH_AVRange *complexityRange)

Description

Obtains the complexity range supported by an encoder.

@syscap SystemCapability.Multimedia.Media.CodecBase

Parameters

Name Description
capability Pointer to the encoder capability. A pointer to the decoder capability cannot be filled in.
complexityRange Output parameter. Pointer to the complexity range supported.

Returns

Returns AV_ERR_OK if the operation is successful; returns an error code defined in OH_AVErrCode otherwise.

Since

10

OH_AVCapability_GetEncoderQualityRange()

OH_AVErrCode OH_AVCapability_GetEncoderQualityRange (OH_AVCapability *capability, OH_AVRange *qualityRange)

Description

Obtains the quality range supported by an encoder.

@syscap SystemCapability.Multimedia.Media.CodecBase

Parameters

Name Description
capability Pointer to the encoder capability. A pointer to the decoder capability cannot be filled in.
qualityRange Output parameter. Pointer to the quality range supported.

Returns

Returns AV_ERR_OK if the operation is successful; returns an error code defined in OH_AVErrCode otherwise.

Since

10

OH_AVCapability_GetMaxSupportedInstances()

int32_t OH_AVCapability_GetMaxSupportedInstances (OH_AVCapability *capability)

Description

Obtains the maximum number of codec instances supported by a codec.

@syscap SystemCapability.Multimedia.Media.CodecBase

Parameters

Name Description
capability Pointer to the codec capability.

Returns

Returns the maximum number of codec instances supported.

Since

10

OH_AVCapability_GetName()

const char* OH_AVCapability_GetName (OH_AVCapability *capability)

Description

Obtains the codec name.

@syscap SystemCapability.Multimedia.Media.CodecBase

Parameters

Name Description
capability Pointer to the codec capability.

Returns

Returns the codec name string.

Since

10

OH_AVCapability_GetSupportedLevelsForProfile()

OH_AVErrCode OH_AVCapability_GetSupportedLevelsForProfile (OH_AVCapability *capability, int32_t profile, const int32_t **levels, uint32_t *levelNum)

Description

Obtains the codec levels supported by a profile.

@syscap SystemCapability.Multimedia.Media.CodecBase

Parameters

Name Description
capability Pointer to the codec capability.
profile Profile of the codec.
levels Output parameter. Double pointer to the codec level array.
levelNum Output parameter. Pointer to the number of elements in the array.

Returns

Returns AV_ERR_OK if the operation is successful; returns an error code defined in OH_AVErrCode otherwise.

Since

10

OH_AVCapability_GetSupportedProfiles()

OH_AVErrCode OH_AVCapability_GetSupportedProfiles (OH_AVCapability *capability, const int32_t **profiles, uint32_t *profileNum)

Description

Obtains the profiles supported by a codec.

@syscap SystemCapability.Multimedia.Media.CodecBase

Parameters

Name Description
capability Pointer to the codec capability.
profiles Output parameter. Double pointer to the profile array.
profileNum Output parameter. Pointer to the number of elements in the array.

Returns

Returns AV_ERR_OK if the operation is successful; returns an error code defined in OH_AVErrCode otherwise.

Since

10

OH_AVCapability_GetVideoFrameRateRange()

OH_AVErrCode OH_AVCapability_GetVideoFrameRateRange (OH_AVCapability *capability, OH_AVRange *frameRateRange)

Description

Obtains the video frame rate range supported by a video codec.

@syscap SystemCapability.Multimedia.Media.CodecBase

Parameters

Name Description
capability Pointer to the video codec capability. A pointer to the audio codec capability cannot be filled in.
frameRateRange Output parameter. Pointer to the video frame rate range supported.

Returns

Returns AV_ERR_OK if the operation is successful; returns an error code defined in OH_AVErrCode otherwise.

Since

10

OH_AVCapability_GetVideoFrameRateRangeForSize()

OH_AVErrCode OH_AVCapability_GetVideoFrameRateRangeForSize (OH_AVCapability *capability, int32_t width, int32_t height, OH_AVRange *frameRateRange)

Description

Obtains the video frame rate range supported by a video codec based on a given video size.

@syscap SystemCapability.Multimedia.Media.CodecBase

Parameters

Name Description
capability Pointer to the video codec capability. A pointer to the audio codec capability cannot be filled in.
width Number of horizontal video pixels.
height Number of vertical video pixels.
frameRateRange Output parameter. Pointer to the video frame rate range supported.

Returns

Returns AV_ERR_OK if the operation is successful; returns an error code defined in OH_AVErrCode otherwise.

Since

10

OH_AVCapability_GetVideoHeightAlignment()

OH_AVErrCode OH_AVCapability_GetVideoHeightAlignment (OH_AVCapability *capability, int32_t *heightAlignment)

Description

Obtains the video height alignment supported by a video codec.

@syscap SystemCapability.Multimedia.Media.CodecBase

Parameters

Name Description
capability Pointer to the video codec capability. A pointer to the audio codec capability cannot be filled in.
heightAlignment Output parameter. Pointer to the video height alignment supported.

Returns

Returns AV_ERR_OK if the operation is successful; returns an error code defined in OH_AVErrCode otherwise.

Since

10

OH_AVCapability_GetVideoHeightRange()

OH_AVErrCode OH_AVCapability_GetVideoHeightRange (OH_AVCapability *capability, OH_AVRange *heightRange)

Description

Obtains the video height range supported by a video codec.

@syscap SystemCapability.Multimedia.Media.CodecBase

Parameters

Name Description
capability Pointer to the video codec capability. A pointer to the audio codec capability cannot be filled in.
heightRange Output parameter. Pointer to the video height range supported.

Returns

Returns AV_ERR_OK if the operation is successful; returns an error code defined in OH_AVErrCode otherwise.

Since

10

OH_AVCapability_GetVideoHeightRangeForWidth()

OH_AVErrCode OH_AVCapability_GetVideoHeightRangeForWidth (OH_AVCapability *capability, int32_t width, OH_AVRange *heightRange)

Description

Obtains the video height range supported by a video codec based on a given width.

@syscap SystemCapability.Multimedia.Media.CodecBase

Parameters

Name Description
capability Pointer to the video codec capability. A pointer to the audio codec capability cannot be filled in.
width Number of horizontal video pixels.
heightRange Output parameter. Pointer to the video height range supported.

Returns

Returns AV_ERR_OK if the operation is successful; returns an error code defined in OH_AVErrCode otherwise.

Since

10

OH_AVCapability_GetVideoSupportedPixelFormats()

OH_AVErrCode OH_AVCapability_GetVideoSupportedPixelFormats (OH_AVCapability *capability, const int32_t **pixelFormats, uint32_t *pixelFormatNum)

Description

Obtains the video pixel formats supported by a video codec.

@syscap SystemCapability.Multimedia.Media.CodecBase

Parameters

Name Description
capability Pointer to the video codec capability. A pointer to the audio codec capability cannot be filled in.
pixelFormats Output parameter. Double pointer to the video pixel format array.
pixelFormatNum Output parameter. Pointer to the number of elements in the array.

Returns

Returns AV_ERR_OK if the operation is successful; returns an error code defined in OH_AVErrCode otherwise.

Since

10

OH_AVCapability_GetVideoWidthAlignment()

OH_AVErrCode OH_AVCapability_GetVideoWidthAlignment (OH_AVCapability *capability, int32_t *widthAlignment)

Description

Obtains the video width alignment supported by a video codec.

@syscap SystemCapability.Multimedia.Media.CodecBase

Parameters

Name Description
capability Pointer to the video codec capability. A pointer to the audio codec capability cannot be filled in.
widthAlignment Output parameter. Pointer to the video width alignment supported.

Returns

Returns AV_ERR_OK if the operation is successful; returns an error code defined in OH_AVErrCode otherwise.

Since

10

OH_AVCapability_GetVideoWidthRange()

OH_AVErrCode OH_AVCapability_GetVideoWidthRange (OH_AVCapability *capability, OH_AVRange *widthRange)

Description

Obtains the video width range supported by a video codec.

@syscap SystemCapability.Multimedia.Media.CodecBase

Parameters

Name Description
capability Pointer to the video codec capability. A pointer to the audio codec capability cannot be filled in.
widthRange Output parameter. Pointer to the video width range supported.

Returns

Returns AV_ERR_OK if the operation is successful; returns an error code defined in OH_AVErrCode otherwise.

Since

10

OH_AVCapability_GetVideoWidthRangeForHeight()

OH_AVErrCode OH_AVCapability_GetVideoWidthRangeForHeight (OH_AVCapability *capability, int32_t height, OH_AVRange *widthRange)

Description

Obtains the video width range supported by a video codec based on a given height.

@syscap SystemCapability.Multimedia.Media.CodecBase

Parameters

Name Description
capability Pointer to the video codec capability. A pointer to the audio codec capability cannot be filled in.
height Number of vertical video pixels.
widthRange Output parameter. Pointer to the video width range supported.

Returns

Returns AV_ERR_OK if the operation is successful; returns an error code defined in OH_AVErrCode otherwise.

Since

10

OH_AVCapability_IsEncoderBitrateModeSupported()

bool OH_AVCapability_IsEncoderBitrateModeSupported (OH_AVCapability *capability, OH_BitrateMode bitrateMode)

Description

Checks whether an encoder supports a specific bit rate mode.

@syscap SystemCapability.Multimedia.Media.CodecBase

Parameters

Name Description
capability Pointer to the encoder capability. A pointer to the decoder capability cannot be filled in.
bitrateMode Bit rate mode.

Returns

Returns true if the bit rate mode is supported; returns false otherwise.

Since

10

OH_AVCapability_IsHardware()

bool OH_AVCapability_IsHardware (OH_AVCapability *capability)

Description

Checks whether a codec capability instance describes a hardware codec.

@syscap SystemCapability.Multimedia.Media.CodecBase

Parameters

Name Description
capability Pointer to the codec capability.

Returns

Returns true if the codec capability instance describes a hardware codec; returns false.

Since

10

OH_AVCapability_IsVideoSizeSupported()

bool OH_AVCapability_IsVideoSizeSupported (OH_AVCapability *capability, int32_t width, int32_t height)

Description

Checks whether a video codec supports a specific video size.

@syscap SystemCapability.Multimedia.Media.CodecBase

Parameters

Name Description
capability Pointer to the video codec capability. A pointer to the audio codec capability cannot be filled in.
width Number of horizontal video pixels.
height Number of vertical video pixels.

Returns

Returns true if the video size is supported; returns false otherwise.

Since

10

OH_AVCodec_GetCapability()

OH_AVCapability* OH_AVCodec_GetCapability (const char *mime, bool isEncoder)

Description

Obtains the codec capability recommended by the system.

@syscap SystemCapability.Multimedia.Media.CodecBase

Parameters

Name Description
mime Pointer to a string that describes the MIME type. For details, see AVCODEC_MIMETYPE.
isEncoder Whether the instance is an encoder. The value true means an encoder and false means a decoder.

Returns

Returns a pointer to the codec capability instance if an existing codec matches; returns NULL otherwise.

Since

10

OH_AVCodec_GetCapabilityByCategory()

OH_AVCapability* OH_AVCodec_GetCapabilityByCategory (const char *mime, bool isEncoder, OH_AVCodecCategory category)

Description

Obtains the codec capability by category,

which can be a hardware codec or software codec.

@syscap SystemCapability.Multimedia.Media.CodecBase

Parameters

Name Description
mime Pointer to a string that describes the MIME type. For details, see AVCODEC_MIMETYPE.
isEncoder Whether the instance is an encoder. The value true means an encoder and false means a decoder.
category Codec category.

Returns

Returns a pointer to the codec capability instance if an existing codec matches; returns NULL otherwise.

Since

10