Core

概述

Core模块提供用于播放框架的基础骨干能力,包含内存、错误码、格式载体、媒体数据结构等相关函数。

系统能力: SystemCapability.Multimedia.Media.Core

起始版本: 9

汇总

文件

名称 描述
native_audio_channel_layout.h 用声道布局来表示在录制或播放时扬声器的外观和顺序。
native_avbuffer.h 声明了媒体数据结构AVBuffer的函数接口。
native_avbuffer_info.h 声明了媒体数据结构AVBuffer属性的定义。
native_averrors.h 声明了播放框架的错误码OH_AVErrCode的定义。
native_avformat.h 声明了格式相关的函数和枚举。
native_avmemory.h 声明了媒体数据结构AVMemory的定义。

结构体

名称 描述
struct  OH_AVCodecBufferAttr 定义OH_AVCodec的缓冲区描述信息。

类型定义

名称 描述
typedef enum OH_AudioChannelSet OH_AudioChannelSet 音频声道集合。
typedef enum OH_AmbAttributeSet OH_AmbAttributeSet 高保真立体声混响设置。
typedef enum OH_AudioChannelLayout OH_AudioChannelLayout 音频声道布局。
typedef struct OH_AVBuffer OH_AVBuffer 为媒体内存接口定义native层对象。
typedef struct OH_NativeBuffer OH_NativeBuffer 为图形内存接口定义native层对象。
typedef enum OH_AVCodecBufferFlags OH_AVCodecBufferFlags 枚举OH_AVCodec缓冲区标记的类别。
typedef struct OH_AVCodecBufferAttr OH_AVCodecBufferAttr 定义OH_AVCodec的缓冲区描述信息。
typedef enum OH_AVErrCode OH_AVErrCode 音视频错误码。
typedef struct OH_AVFormat OH_AVFormat 为媒体格式接口定义native层对象。
typedef enum OH_AVPixelFormat OH_AVPixelFormat 视频像素格式的枚举类。
typedef struct OH_AVMemory OH_AVMemory 为音视频内存接口定义native层对象。

枚举

名称 描述
OH_AudioChannelSet {
CH_SET_FRONT_LEFT = 1ULL << 0U,
CH_SET_FRONT_RIGHT = 1ULL << 1U,
CH_SET_FRONT_CENTER = 1ULL << 2U,
CH_SET_LOW_FREQUENCY = 1ULL << 3U,
CH_SET_BACK_LEFT = 1ULL << 4U,
CH_SET_BACK_RIGHT = 1ULL << 5U,
CH_SET_FRONT_LEFT_OF_CENTER = 1ULL << 6U,
CH_SET_FRONT_RIGHT_OF_CENTER = 1ULL << 7U,
CH_SET_BACK_CENTER = 1ULL << 8U,
CH_SET_SIDE_LEFT = 1ULL << 9U,
CH_SET_SIDE_RIGHT = 1ULL << 10U,
CH_SET_TOP_CENTER = 1ULL << 11U,
CH_SET_TOP_FRONT_LEFT = 1ULL << 12U,
CH_SET_TOP_FRONT_CENTER = 1ULL << 13U,
CH_SET_TOP_FRONT_RIGHT = 1ULL << 14U,
CH_SET_TOP_BACK_LEFT = 1ULL << 15U,
CH_SET_TOP_BACK_CENTER = 1ULL << 16U,
CH_SET_TOP_BACK_RIGHT = 1ULL << 17U,
CH_SET_STEREO_LEFT = 1ULL << 29U,
CH_SET_STEREO_RIGHT = 1ULL << 30U,
CH_SET_WIDE_LEFT = 1ULL << 31U,
CH_SET_WIDE_RIGHT = 1ULL << 32U,
CH_SET_SURROUND_DIRECT_LEFT = 1ULL << 33U,
CH_SET_SURROUND_DIRECT_RIGHT = 1ULL << 34U,
CH_SET_LOW_FREQUENCY_2 = 1ULL << 35U,
CH_SET_TOP_SIDE_LEFT = 1ULL << 36U,
CH_SET_TOP_SIDE_RIGHT = 1ULL << 37U,
CH_SET_BOTTOM_FRONT_CENTER = 1ULL << 38U,
CH_SET_BOTTOM_FRONT_LEFT = 1ULL << 39U,
CH_SET_BOTTOM_FRONT_RIGHT = 1ULL << 40U
}
音频声道集合。
OH_AmbAttributeSet {
AMB_ORD_1 = 1ULL << 0U,
AMB_ORD_2 = 2ULL << 0U,
AMB_ORD_3 = 3ULL << 0U,
AMB_COM_ACN = 0ULL << 8U,
AMB_COM_FUMA = 1ULL << 8U,
AMB_NOR_N3D = 0ULL << 12U,
AMB_NOR_SN3D = 1ULL << 12U,
AMB_MODE = 1ULL << 44U
}
高保真立体声混响设置。
OH_AudioChannelLayout {
CH_LAYOUT_UNKNOWN = 0ULL,
CH_LAYOUT_MONO = CH_SET_FRONT_CENTER,
CH_LAYOUT_STEREO = CH_SET_FRONT_LEFT | CH_SET_FRONT_RIGHT,
CH_LAYOUT_STEREO_DOWNMIX = CH_SET_STEREO_LEFT | CH_SET_STEREO_RIGHT,
CH_LAYOUT_2POINT1 = CH_LAYOUT_STEREO | CH_SET_LOW_FREQUENCY,
CH_LAYOUT_3POINT0 = CH_LAYOUT_STEREO | CH_SET_BACK_CENTER,
CH_LAYOUT_SURROUND = CH_LAYOUT_STEREO | CH_SET_FRONT_CENTER,
CH_LAYOUT_3POINT1 = CH_LAYOUT_SURROUND | CH_SET_LOW_FREQUENCY,
CH_LAYOUT_4POINT0 = CH_LAYOUT_SURROUND | CH_SET_BACK_CENTER,
CH_LAYOUT_QUAD_SIDE = CH_LAYOUT_STEREO | CH_SET_SIDE_LEFT | CH_SET_SIDE_RIGHT,
CH_LAYOUT_QUAD = CH_LAYOUT_STEREO | CH_SET_BACK_LEFT | CH_SET_BACK_RIGHT,
CH_LAYOUT_2POINT0POINT2 = CH_LAYOUT_STEREO | CH_SET_TOP_SIDE_LEFT | CH_SET_TOP_SIDE_RIGHT,
CH_LAYOUT_AMB_ORDER1_ACN_N3D = AMB_MODE | AMB_ORD_1 | AMB_COM_ACN | AMB_NOR_N3D, CH_LAYOUT_AMB_ORDER1_ACN_SN3D = AMB_MODE | AMB_ORD_1 | AMB_COM_ACN | AMB_NOR_SN3D,
CH_LAYOUT_AMB_ORDER1_FUMA = AMB_MODE | AMB_ORD_1 | AMB_COM_FUMA,
CH_LAYOUT_4POINT1 = CH_LAYOUT_4POINT0 | CH_SET_LOW_FREQUENCY,
CH_LAYOUT_5POINT0 = CH_LAYOUT_SURROUND | CH_SET_SIDE_LEFT | CH_SET_SIDE_RIGHT,
CH_LAYOUT_5POINT0_BACK = CH_LAYOUT_SURROUND | CH_SET_BACK_LEFT | CH_SET_BACK_RIGHT,
CH_LAYOUT_2POINT1POINT2 = CH_LAYOUT_2POINT0POINT2 | CH_SET_LOW_FREQUENCY,
CH_LAYOUT_3POINT0POINT2 = CH_LAYOUT_2POINT0POINT2 | CH_SET_FRONT_CENTER,
CH_LAYOUT_5POINT1 = CH_LAYOUT_5POINT0 | CH_SET_LOW_FREQUENCY,
CH_LAYOUT_5POINT1_BACK = CH_LAYOUT_5POINT0_BACK | CH_SET_LOW_FREQUENCY,
CH_LAYOUT_6POINT0 = CH_LAYOUT_5POINT0 | CH_SET_BACK_CENTER,
CH_LAYOUT_3POINT1POINT2 = CH_LAYOUT_3POINT1 | CH_SET_TOP_FRONT_LEFT | CH_SET_TOP_FRONT_RIGHT,
CH_LAYOUT_6POINT0_FRONT = CH_LAYOUT_QUAD_SIDE | CH_SET_FRONT_LEFT_OF_CENTER | CH_SET_FRONT_RIGHT_OF_CENTER,
CH_LAYOUT_HEXAGONAL = CH_LAYOUT_5POINT0_BACK | CH_SET_BACK_CENTER,
CH_LAYOUT_6POINT1 = CH_LAYOUT_5POINT1 | CH_SET_BACK_CENTER,
CH_LAYOUT_6POINT1_BACK = CH_LAYOUT_5POINT1_BACK | CH_SET_BACK_CENTER,
CH_LAYOUT_6POINT1_FRONT = CH_LAYOUT_6POINT0_FRONT | CH_SET_LOW_FREQUENCY,
CH_LAYOUT_7POINT0 = CH_LAYOUT_5POINT0 | CH_SET_BACK_LEFT | CH_SET_BACK_RIGHT,
CH_LAYOUT_7POINT0_FRONT = CH_LAYOUT_5POINT0 | CH_SET_FRONT_LEFT_OF_CENTER | CH_SET_FRONT_RIGHT_OF_CENTER,
CH_LAYOUT_7POINT1 = CH_LAYOUT_5POINT1 | CH_SET_BACK_LEFT | CH_SET_BACK_RIGHT,
CH_LAYOUT_OCTAGONAL = CH_LAYOUT_5POINT0 | CH_SET_BACK_LEFT | CH_SET_BACK_CENTER | CH_SET_BACK_RIGHT,
CH_LAYOUT_5POINT1POINT2 = CH_LAYOUT_5POINT1 | CH_SET_TOP_SIDE_LEFT | CH_SET_TOP_SIDE_RIGHT,
CH_LAYOUT_7POINT1_WIDE = CH_LAYOUT_5POINT1 | CH_SET_FRONT_LEFT_OF_CENTER | CH_SET_FRONT_RIGHT_OF_CENTER,
CH_LAYOUT_7POINT1_WIDE_BACK = CH_LAYOUT_5POINT1_BACK | CH_SET_FRONT_LEFT_OF_CENTER | CH_SET_FRONT_RIGHT_OF_CENTER,
CH_LAYOUT_AMB_ORDER2_ACN_N3D = AMB_MODE | AMB_ORD_2 | AMB_COM_ACN | AMB_NOR_N3D,
CH_LAYOUT_AMB_ORDER2_ACN_SN3D = AMB_MODE | AMB_ORD_2 | AMB_COM_ACN | AMB_NOR_SN3D,
CH_LAYOUT_AMB_ORDER2_FUMA = AMB_MODE | AMB_ORD_2 | AMB_COM_FUMA,
CH_LAYOUT_5POINT1POINT4,
CH_LAYOUT_7POINT1POINT2 = CH_LAYOUT_7POINT1 | CH_SET_TOP_SIDE_LEFT | CH_SET_TOP_SIDE_RIGHT,
CH_LAYOUT_7POINT1POINT4,
CH_LAYOUT_10POINT2,
CH_LAYOUT_9POINT1POINT4 = CH_LAYOUT_7POINT1POINT4 | CH_SET_WIDE_LEFT | CH_SET_WIDE_RIGHT,
CH_LAYOUT_9POINT1POINT6 = CH_LAYOUT_9POINT1POINT4 | CH_SET_TOP_SIDE_LEFT | CH_SET_TOP_SIDE_RIGHT,
CH_LAYOUT_HEXADECAGONAL,
CH_LAYOUT_AMB_ORDER3_ACN_N3D = AMB_MODE | AMB_ORD_3 | AMB_COM_ACN | AMB_NOR_N3D,
CH_LAYOUT_AMB_ORDER3_ACN_SN3D = AMB_MODE | AMB_ORD_3 | AMB_COM_ACN | AMB_NOR_SN3D,
CH_LAYOUT_AMB_ORDER3_FUMA = AMB_MODE | AMB_ORD_3 | AMB_COM_FUMA,
CH_LAYOUT_22POINT2
}
音频声道布局。
OH_AVCodecBufferFlags {
AVCODEC_BUFFER_FLAGS_NONE = 0,
AVCODEC_BUFFER_FLAGS_EOS = 1 << 0, AVCODEC_BUFFER_FLAGS_SYNC_FRAME = 1 << 1, AVCODEC_BUFFER_FLAGS_INCOMPLETE_FRAME = 1 << 2,
AVCODEC_BUFFER_FLAGS_CODEC_DATA = 1 << 3
}
枚举OH_AVCodec缓冲区标记的类别。
OH_AVErrCode {
AV_ERR_OK = 0,
AV_ERR_NO_MEMORY = 1,
AV_ERR_OPERATE_NOT_PERMIT = 2,
AV_ERR_INVALID_VAL = 3,
AV_ERR_IO = 4,
AV_ERR_TIMEOUT = 5,
AV_ERR_UNKNOWN = 6,
AV_ERR_SERVICE_DIED = 7,
AV_ERR_INVALID_STATE = 8,
AV_ERR_UNSUPPORT = 9,
AV_ERR_EXTEND_START = 100
}
音视频错误码。
OH_AVPixelFormat {
AV_PIXEL_FORMAT_YUVI420 = 1,
AV_PIXEL_FORMAT_NV12 = 2,
AV_PIXEL_FORMAT_NV21 = 3,
AV_PIXEL_FORMAT_SURFACE_FORMAT = 4,
AV_PIXEL_FORMAT_RGBA = 5
}
视频像素格式的枚举类。

函数

名称 描述
OH_AVBuffer * OH_AVBuffer_Create (int32_t capacity) 创建OH_AVBuffer实例。 需要注意的是,返回值指向的创建OH_AVBuffer的实例需要调用者手动释放,请参阅OH_AVBuffer_Destroy
OH_AVErrCode OH_AVBuffer_Destroy (OH_AVBuffer *buffer) 释放OH_AVBuffer实例指针的资源。
OH_AVErrCode OH_AVBuffer_GetBufferAttr (OH_AVBuffer *buffer, OH_AVCodecBufferAttr *attr) 获取数据缓冲区的高频属性参数。
OH_AVErrCode OH_AVBuffer_SetBufferAttr (OH_AVBuffer *buffer, const OH_AVCodecBufferAttr *attr) 设置数据缓冲区的高频属性参数。
OH_AVFormat * OH_AVBuffer_GetParameter (OH_AVBuffer *buffer) 获取数据缓冲区的随帧参数。
OH_AVErrCode OH_AVBuffer_SetParameter (OH_AVBuffer *buffer, const OH_AVFormat *format) 设置数据缓冲区的随帧参数。
uint8_t * OH_AVBuffer_GetAddr (OH_AVBuffer *buffer) 获取数据缓冲区的虚拟地址。
int32_t OH_AVBuffer_GetCapacity (OH_AVBuffer *buffer) 获取数据缓冲区的容量。
OH_NativeBuffer * OH_AVBuffer_GetNativeBuffer (OH_AVBuffer *buffer) 获取OH_NativeBuffer实例的指针。
struct OH_AVFormat * OH_AVFormat_Create (void) 创建OH_AVFormat句柄,用于读取数据。
struct OH_AVFormat * OH_AVFormat_CreateAudioFormat (const char *mimeType, int32_t sampleRate, int32_t channelCount) 创建音频OH_AVFormat句柄指针,用于读写数据。
struct OH_AVFormat * OH_AVFormat_CreateVideoFormat (const char *mimeType, int32_t width, int32_t height) 创建视频OH_AVFormat句柄指针,用于读写数据。
void OH_AVFormat_Destroy (struct OH_AVFormat *format) 销毁OH_AVFormat句柄。
bool OH_AVFormat_Copy (struct OH_AVFormat *to, struct OH_AVFormat *from) 复制OH_AVFormat句柄。
bool OH_AVFormat_SetIntValue (struct OH_AVFormat *format, const char *key, int32_t value) 将int数据写入OH_AVFormat。
bool OH_AVFormat_SetLongValue (struct OH_AVFormat *format, const char *key, int64_t value) 将long数据写入OH_AVFormat。
bool OH_AVFormat_SetFloatValue (struct OH_AVFormat *format, const char *key, float value) 将float数据写入OH_AVFormat。
bool OH_AVFormat_SetDoubleValue (struct OH_AVFormat *format, const char *key, double value) 将double数据写入OH_AVFormat。
bool OH_AVFormat_SetStringValue (struct OH_AVFormat *format, const char *key, const char *value) 将string数据写入OH_AVFormat。
bool OH_AVFormat_SetBuffer (struct OH_AVFormat *format, const char *key, const uint8_t *addr, size_t size) 将指定长度的数据块写入OH_AVFormat。
bool OH_AVFormat_GetIntValue (struct OH_AVFormat *format, const char *key, int32_t *out) 从OH_AVFormat读取int数据。
bool OH_AVFormat_GetLongValue (struct OH_AVFormat *format, const char *key, int64_t *out) 从OH_AVFormat读取long数据。
bool OH_AVFormat_GetFloatValue (struct OH_AVFormat *format, const char *key, float *out) 从OH_AVFormat读取float数据。
bool OH_AVFormat_GetDoubleValue (struct OH_AVFormat *format, const char *key, double *out) 从OH_AVFormat读取double数据。
bool OH_AVFormat_GetStringValue (struct OH_AVFormat *format, const char *key, const char **out) 从OH_AVFormat读取string数据。
bool OH_AVFormat_GetBuffer (struct OH_AVFormat *format, const char *key, uint8_t **addr, size_t *size) 从OH_AVFormat中读取指定长度的数据块。
const char * OH_AVFormat_DumpInfo (struct OH_AVFormat *format) 输出OH_AVFormat中包含的字符串。
OH_AVMemory * OH_AVMemory_Create (int32_t size) 创建OH_AVMemory实例的指针。
uint8_t * OH_AVMemory_GetAddr (struct OH_AVMemory *mem) 获取入参的内存虚拟地址。
int32_t OH_AVMemory_GetSize (struct OH_AVMemory *mem) 获取入参的内存长度。
OH_AVErrCode OH_AVMemory_Destroy (struct OH_AVMemory *mem) 释放OH_AVMemory实例指针的资源。

类型定义说明

OH_AmbAttributeSet

typedef enum OH_AmbAttributeSet OH_AmbAttributeSet

描述

高保真立体声混响设置。

用int64整数来表示高保真立体声混响属性。

系统能力: SystemCapability.Multimedia.Media.Core

起始版本: 11

OH_AudioChannelLayout

typedef enum OH_AudioChannelLayout OH_AudioChannelLayout

描述

音频声道布局。

用int64整数来表示在录制或播放时扬声器的外观和顺序。

系统能力: SystemCapability.Multimedia.Media.Core

起始版本: 11

OH_AudioChannelSet

typedef enum OH_AudioChannelSet OH_AudioChannelSet

描述

音频声道集合。

将每一个声道映射为int64的变量。

系统能力: SystemCapability.Multimedia.Media.Core

起始版本: 11

OH_AVBuffer

typedef struct OH_AVBuffer OH_AVBuffer

描述

为媒体内存接口定义native层对象。

起始版本: 11

OH_AVCodecBufferAttr

typedef struct OH_AVCodecBufferAttr OH_AVCodecBufferAttr

描述

定义OH_AVCodec的缓冲区描述信息。

系统能力: SystemCapability.Multimedia.Media.Core

起始版本: 9

OH_AVCodecBufferFlags

typedef enum OH_AVCodecBufferFlags OH_AVCodecBufferFlags

描述

枚举OH_AVCodec缓冲区标记的类别。

系统能力: SystemCapability.Multimedia.Media.Core

起始版本: 9

OH_AVErrCode

typedef enum OH_AVErrCode OH_AVErrCode

描述

音视频错误码。

系统能力: SystemCapability.Multimedia.Media.Core

起始版本: 9

OH_AVFormat

typedef struct OH_AVFormat OH_AVFormat

描述

为媒体格式接口定义native层对象。

起始版本: 9

OH_AVMemory

typedef struct OH_AVMemory OH_AVMemory

描述

为音视频内存接口定义native层对象。

起始版本: 9

OH_AVPixelFormat

typedef enum OH_AVPixelFormat OH_AVPixelFormat

描述

视频像素格式的枚举类。

系统能力: SystemCapability.Multimedia.Media.Core

起始版本: 9

OH_NativeBuffer

typedef struct OH_NativeBuffer OH_NativeBuffer

描述

为图形内存接口定义native层对象。

起始版本: 11

枚举类型说明

OH_AmbAttributeSet

enum OH_AmbAttributeSet

描述

高保真立体声混响设置.

用int64整数来表示高保真立体声混响属性。

系统能力: SystemCapability.Multimedia.Media.Core

起始版本: 11

枚举值 描述
AMB_ORD_1 一阶高保真立体声混响
AMB_ORD_2 二阶高保真立体声混响
AMB_ORD_3 三阶高保真立体声混响
AMB_COM_ACN ACN通道排序的高保真立体声混响
AMB_COM_FUMA FUMA通道排序的高保真立体声混响
AMB_NOR_N3D N3D归一化的高保真立体声混响
AMB_NOR_SN3D SN3D归一化的高保真立体声混响
AMB_MODE 高保真立体声混响的声道布局

OH_AudioChannelLayout

enum OH_AudioChannelLayout

描述

音频声道布局,

用int64整数来表示在录制或播放时扬声器的外观和顺序。

系统能力: SystemCapability.Multimedia.Media.Core

起始版本: 11

枚举值 描述
CH_LAYOUT_UNKNOWN 未知声道布局
CH_LAYOUT_MONO 单声道布局, 共1个声道
CH_LAYOUT_STEREO 立体声布局, 共2个声道
CH_LAYOUT_STEREO_DOWNMIX 立体声下混布局, 共2个声道
CH_LAYOUT_2POINT1 2.1布局, 共3个声道
CH_LAYOUT_3POINT0 3.0布局, 共3个声道
CH_LAYOUT_SURROUND 环绕布局,共3个声道
CH_LAYOUT_3POINT1 3.1布局,共4个声道
CH_LAYOUT_4POINT0 4.0布局,共4个声道
CH_LAYOUT_QUAD_SIDE QUAD_SIDE布局,共4个声道
CH_LAYOUT_QUAD QUAD布局,共4个声道
CH_LAYOUT_2POINT0POINT2 2.0.2布局,共4个声道
CH_LAYOUT_AMB_ORDER1_ACN_N3D ACN_N3D(根据ITU标准)的一阶FOA布局,共4个声道
CH_LAYOUT_AMB_ORDER1_ACN_SN3D ACN_SN3D(根据ITU标准)的一阶FOA布局,共4个声道
CH_LAYOUT_AMB_ORDER1_FUMA FUMA(根据ITU标准)的一阶FOA布局,共4个声道
CH_LAYOUT_4POINT1 4.1布局,共5个声道
CH_LAYOUT_5POINT0 5.0布局,共5个声道
CH_LAYOUT_5POINT0_BACK 5.0-后置布局,共5个声道
CH_LAYOUT_2POINT1POINT2 2.1.2布局,共5个声道
CH_LAYOUT_3POINT0POINT2 3.0.2布局,共5个声道
CH_LAYOUT_5POINT1 5.1布局,共6个声道
CH_LAYOUT_5POINT1_BACK 5.1-后置布局,共6个声道
CH_LAYOUT_6POINT0 6.0布局,共6个声道
CH_LAYOUT_3POINT1POINT2 3.1.2布局,共6个声道
CH_LAYOUT_6POINT0_FRONT 6.0-Front布局,共6个声道
CH_LAYOUT_HEXAGONAL HEXAGONAL布局,共6个声道
CH_LAYOUT_6POINT1 6.1布局,共7个声道
CH_LAYOUT_6POINT1_BACK 6.1-后置布局,共7个声道
CH_LAYOUT_6POINT1_FRONT 6.1-前置布局,共7个声道
CH_LAYOUT_7POINT0 7.0布局,共7个声道
CH_LAYOUT_7POINT0_FRONT 7.0-前置布局,共7个声道
CH_LAYOUT_7POINT1 7.1布局,共8个声道
CH_LAYOUT_OCTAGONAL OCTAGONAL布局,共8个声道
CH_LAYOUT_5POINT1POINT2 5.1.2布局,共8个声道
CH_LAYOUT_7POINT1_WIDE 7.1-宽布局,共8个声道
CH_LAYOUT_7POINT1_WIDE_BACK 7.1-后置宽布局,共8个声道
CH_LAYOUT_AMB_ORDER2_ACN_N3D ACN_N3D(根据ITU标准)的二阶HOA布局,共9个声道
CH_LAYOUT_AMB_ORDER2_ACN_SN3D ACN_SN3D(根据ITU标准)的二阶HOA布局,共9个声道
CH_LAYOUT_AMB_ORDER2_FUMA FUMA(根据ITU标准)的二阶HOA布局,共9个声道
CH_LAYOUT_5POINT1POINT4 5.1.4布局,共10个声道
CH_LAYOUT_7POINT1POINT2 7.1.2布局,共10个声道
CH_LAYOUT_7POINT1POINT4 7.1.4布局,共12个声道
CH_LAYOUT_10POINT2 10.2布局,共12个声道
CH_LAYOUT_9POINT1POINT4 9.1.4布局,共14个声道
CH_LAYOUT_9POINT1POINT6 9.1.6布局,共16个声道
CH_LAYOUT_HEXADECAGONAL HEXADECAGONAL布局,共16个声道
CH_LAYOUT_AMB_ORDER3_ACN_N3D ACN_N3D(根据ITU标准)的三阶HOA布局,共16个声道
CH_LAYOUT_AMB_ORDER3_ACN_SN3D ACN_SN3D(根据ITU标准)的三阶HOA布局,共16个声道
CH_LAYOUT_AMB_ORDER3_FUMA FUMA(根据ITU标准)的三阶HOA布局,共16个声道
CH_LAYOUT_22POINT2 22.2布局,共24个声道

OH_AudioChannelSet

enum OH_AudioChannelSet

描述

音频声道集合,

将每一个声道映射为int64的变量。

系统能力: SystemCapability.Multimedia.Media.Core

起始版本: 11

枚举值 描述
CH_SET_FRONT_LEFT 左前声道
CH_SET_FRONT_RIGHT 右前声道
CH_SET_FRONT_CENTER 中前声道
CH_SET_LOW_FREQUENCY 低频声道
CH_SET_BACK_LEFT 左后声道
CH_SET_BACK_RIGHT 右后声道
CH_SET_FRONT_LEFT_OF_CENTER 左前中置声道
CH_SET_FRONT_RIGHT_OF_CENTER 右前中置声道
CH_SET_BACK_CENTER 后方中置声道
CH_SET_SIDE_LEFT 左侧声道
CH_SET_SIDE_RIGHT 右侧声道
CH_SET_TOP_CENTER 上方中置声道
CH_SET_TOP_FRONT_LEFT 上方左前声道
CH_SET_TOP_FRONT_CENTER 上方中前声道
CH_SET_TOP_FRONT_RIGHT 上方右前声道
CH_SET_TOP_BACK_LEFT 上方左后声道
CH_SET_TOP_BACK_CENTER 上方中后声道
CH_SET_TOP_BACK_RIGHT 上方右后声道
CH_SET_STEREO_LEFT 立体声左声道
CH_SET_STEREO_RIGHT 立体声右声道
CH_SET_WIDE_LEFT 宽左声道
CH_SET_WIDE_RIGHT 宽右声道
CH_SET_SURROUND_DIRECT_LEFT 左环绕声道
CH_SET_SURROUND_DIRECT_RIGHT 右环绕声道
CH_SET_LOW_FREQUENCY_2 低频声道2
CH_SET_TOP_SIDE_LEFT 上方左侧声道
CH_SET_TOP_SIDE_RIGHT 上方右侧声道
CH_SET_BOTTOM_FRONT_CENTER 下方中前声道
CH_SET_BOTTOM_FRONT_LEFT 下方左前声道
CH_SET_BOTTOM_FRONT_RIGHT 下方右前声道

OH_AVCodecBufferFlags

enum OH_AVCodecBufferFlags

描述

枚举OH_AVCodec缓冲区标记的类别。

系统能力: SystemCapability.Multimedia.Media.Core

起始版本: 9

枚举值 描述
AVCODEC_BUFFER_FLAGS_NONE 表示为普通帧。
AVCODEC_BUFFER_FLAGS_EOS 表示缓冲区是流结束帧。
AVCODEC_BUFFER_FLAGS_SYNC_FRAME 表示缓冲区包含关键帧。
AVCODEC_BUFFER_FLAGS_INCOMPLETE_FRAME 表示缓冲区中的数据只是帧的一部分。
AVCODEC_BUFFER_FLAGS_CODEC_DATA 表示缓冲区包含编解码特定数据。

OH_AVErrCode

enum OH_AVErrCode

描述

音视频错误码。

系统能力: SystemCapability.Multimedia.Media.Core

起始版本: 9

枚举值 描述
AV_ERR_OK 操作成功
AV_ERR_NO_MEMORY 无内存
AV_ERR_OPERATE_NOT_PERMIT 操作不允许
AV_ERR_INVALID_VAL 无效值
AV_ERR_IO IO错误
AV_ERR_TIMEOUT 超时错误
AV_ERR_UNKNOWN 未知错误
AV_ERR_SERVICE_DIED 服务死亡
AV_ERR_INVALID_STATE 当前状态不支持此操作
AV_ERR_UNSUPPORT 未支持的接口
AV_ERR_EXTEND_START 扩展错误码初始值

OH_AVPixelFormat

enum OH_AVPixelFormat

描述

视频像素格式的枚举类。

系统能力: SystemCapability.Multimedia.Media.Core

起始版本: 9

枚举值 描述
AV_PIXEL_FORMAT_YUVI420 yuv 420 planar。
AV_PIXEL_FORMAT_NV12 NV12. yuv 420 semiplanar。
AV_PIXEL_FORMAT_NV21 NV21. yuv 420 semiplanar。
AV_PIXEL_FORMAT_SURFACE_FORMAT 像素格式从surface获取。
AV_PIXEL_FORMAT_RGBA RGBA8888。

函数说明

OH_AVBuffer_Create()

OH_AVBuffer* OH_AVBuffer_Create (int32_t capacity)

描述

创建OH_AVBuffer实例。 需要注意的是,返回值指向的创建OH_AVBuffer的实例需要调用者手动释放,请参阅OH_AVBuffer_Destroy

系统能力: SystemCapability.Multimedia.Media.Core

起始版本: 11

参数:

名称 描述
capacity 创建内存的大小,单位字节。

返回:

如果创建成功,则返回OH_AVBuffer实例的指针,如果失败,则返回nullptr。

OH_AVBuffer_Destroy()

OH_AVErrCode OH_AVBuffer_Destroy (OH_AVBuffer *buffer)

描述

释放OH_AVBuffer实例指针的资源。

系统能力: SystemCapability.Multimedia.Media.Core

起始版本: 11

参数:

名称 描述
buffer 指向OH_AVBuffer实例的指针。

返回:

如果执行成功,则返回AV_ERR_OK,否则返回特定错误代码,请参阅OH_AVErrCode

OH_AVBuffer_GetAddr()

uint8_t* OH_AVBuffer_GetAddr (OH_AVBuffer *buffer)

描述

获取数据缓冲区的虚拟地址。

系统能力: SystemCapability.Multimedia.Media.Core

起始版本: 11

参数:

名称 描述
buffer 指向OH_AVBuffer实例的指针。

返回:

如果成功,则返回数据缓冲区的虚拟地址,如果失败,则返回nullptr。

OH_AVBuffer_GetBufferAttr()

OH_AVErrCode OH_AVBuffer_GetBufferAttr (OH_AVBuffer *buffer, OH_AVCodecBufferAttr *attr)

描述

获取数据缓冲区的高频属性参数。

系统能力: SystemCapability.Multimedia.Media.Core

起始版本: 11

参数:

名称 描述
buffer 指向OH_AVBuffer实例的指针。
attr 指向OH_AVCodecBufferAttr实例的指针。

返回:

如果执行成功,则返回AV_ERR_OK,否则返回特定错误代码,请参阅OH_AVErrCode

OH_AVBuffer_GetCapacity()

int32_t OH_AVBuffer_GetCapacity (OH_AVBuffer *buffer)

描述

获取数据缓冲区的容量。

系统能力: SystemCapability.Multimedia.Media.Core

起始版本: 11

参数:

名称 描述
buffer 指向OH_AVBuffer实例的指针。

返回:

如果成功,则返回数据缓冲区的容量,如果失败,则返回-1。

OH_AVBuffer_GetNativeBuffer()

OH_NativeBuffer* OH_AVBuffer_GetNativeBuffer (OH_AVBuffer *buffer)

描述

获取OH_NativeBuffer实例的指针。 需要注意的是,返回值指向的创建OH_NativeBuffer的实例需要调用者手动释放,请参阅OH_NativeBuffer_Unreference

系统能力: SystemCapability.Multimedia.Media.Core

起始版本: 11

参数:

名称 描述
buffer 指向OH_AVBuffer实例的指针。

返回:

如果成功,则返回OH_NativeBuffer实例的指针,如果失败,则返回nullptr。

OH_AVBuffer_GetParameter()

OH_AVFormat* OH_AVBuffer_GetParameter (OH_AVBuffer *buffer)

描述

获取数据缓冲区的随帧参数。 需要注意的是,返回值指向的创建OH_AVFormat的实例需要调用者手动释放,请参阅OH_AVFormat_Destroy

系统能力: SystemCapability.Multimedia.Media.Core

起始版本: 11

参数:

名称 描述
buffer 指向OH_AVBuffer实例的指针。

返回:

如果执行成功,则返回AV_ERR_OK,否则返回特定错误代码,请参阅OH_AVErrCode

OH_AVBuffer_SetBufferAttr()

OH_AVErrCode OH_AVBuffer_SetBufferAttr (OH_AVBuffer *buffer, const OH_AVCodecBufferAttr *attr)

描述

设置数据缓冲区的高频属性参数。

系统能力: SystemCapability.Multimedia.Media.Core

起始版本: 11

参数:

名称 描述
buffer 指向OH_AVBuffer实例的指针。
attr 指向OH_AVCodecBufferAttr实例的指针。

返回:

如果执行成功,则返回AV_ERR_OK,否则返回特定错误代码,请参阅OH_AVErrCode

OH_AVBuffer_SetParameter()

OH_AVErrCode OH_AVBuffer_SetParameter (OH_AVBuffer *buffer, const OH_AVFormat *format)

描述

设置数据缓冲区的随帧参数。

系统能力: SystemCapability.Multimedia.Media.Core

起始版本: 11

参数:

名称 描述
buffer 指向OH_AVBuffer实例的指针。
format 指向OH_AVFormat实例的指针。

返回:

如果执行成功,则返回AV_ERR_OK,否则返回特定错误代码,请参阅OH_AVErrCode

OH_AVFormat_Copy()

bool OH_AVFormat_Copy (struct OH_AVFormat *to, struct OH_AVFormat *from)

描述

复制OH_AVFormat句柄。

系统能力: SystemCapability.Multimedia.Media.Core

起始版本: 9

参数:

名称 描述
to OH_AVFormat句柄,用于接收数据。
from 指向复制数据的OH_AVFormat句柄的指针。

返回:

返回值为true表示成功,为false表示失败。

OH_AVFormat_Create()

struct OH_AVFormat* OH_AVFormat_Create (void)

描述

创建OH_AVFormat句柄,用于读取数据。

系统能力: SystemCapability.Multimedia.Media.Core

起始版本: 9

返回:

返回指向OH_AVFormat实例的指针。

OH_AVFormat_CreateAudioFormat()

struct OH_AVFormat* OH_AVFormat_CreateAudioFormat (const char *mimeType, int32_t sampleRate, int32_t channelCount)

描述

创建音频OH_AVFormat句柄指针,用于读写数据。

系统能力: SystemCapability.Multimedia.Media.Core

起始版本: 10

参数:

名称 描述
mimeType MIME类型描述字符串,请参阅AVCODEC_MIMETYPE
sampleRate 采样率,单位Hz。
channelCount 声道个数,如1为单声道,2为双声道。

返回:

返回指向OH_AVFormat实例的指针。

OH_AVFormat_CreateVideoFormat()

struct OH_AVFormat* OH_AVFormat_CreateVideoFormat (const char *mimeType, int32_t width, int32_t height)

描述

创建视频OH_AVFormat句柄指针,用于读写数据。

系统能力: SystemCapability.Multimedia.Media.Core

起始版本: 10

参数:

名称 描述
mimeType MIME类型描述字符串,请参阅AVCODEC_MIMETYPE
width 宽度,单位为px。
height 高度,单位为px。

返回:

返回指向OH_AVFormat实例的指针

OH_AVFormat_Destroy()

void OH_AVFormat_Destroy (struct OH_AVFormat *format)

描述

销毁OH_AVFormat句柄。

系统能力: SystemCapability.Multimedia.Media.Core

起始版本: 9

参数:

名称 描述
format 指向OH_AVFormat实例的指针。

OH_AVFormat_DumpInfo()

const char* OH_AVFormat_DumpInfo (struct OH_AVFormat *format)

描述

输出OH_AVFormat中包含的字符串。

系统能力: SystemCapability.Multimedia.Media.Core

起始版本: 9

参数:

名称 描述
format 指向OH_AVFormat实例的指针。

返回:

返回一个由key和data组成的字符串。

OH_AVFormat_GetBuffer()

bool OH_AVFormat_GetBuffer (struct OH_AVFormat *format, const char *key, uint8_t ** addr, size_t *size)

描述

从OH_AVFormat中读取指定长度的数据块。

系统能力: SystemCapability.Multimedia.Media.Core

起始版本: 9

参数:

名称 描述
format 指向OH_AVFormat实例的指针。
key 读写数据的键。
addr 生命周期与format相同,与format一同销毁。 如果调用者需要长时间保持它,必须进行内存拷贝。
size 读写数据的长度。

返回:

返回值为true表示成功,为false表示失败。

OH_AVFormat_GetDoubleValue()

bool OH_AVFormat_GetDoubleValue (struct OH_AVFormat *format, const char *key, double *out)

描述

从OH_AVFormat读取double数据。

系统能力: SystemCapability.Multimedia.Media.Core

起始版本: 9

参数:

名称 描述
format 指向OH_AVFormat实例的指针。
key 读取数据的键。
out 读取数据的值。

返回:

返回值为true表示成功,为false表示失败。

OH_AVFormat_GetFloatValue()

bool OH_AVFormat_GetFloatValue (struct OH_AVFormat *format, const char *key, float *out)

描述

从OH_AVFormat读取float数据。

系统能力: SystemCapability.Multimedia.Media.Core

起始版本: 9

参数:

名称 描述
format 指向OH_AVFormat实例的指针。
key 读取数据的键。
out 读取数据的值。

返回:

返回值为true表示成功,为false表示失败。

OH_AVFormat_GetIntValue()

bool OH_AVFormat_GetIntValue (struct OH_AVFormat *format, const char *key, int32_t *out)

描述

从OH_AVFormat读取int数据。

系统能力: SystemCapability.Multimedia.Media.Core

起始版本: 9

参数:

名称 描述
format 指向OH_AVFormat实例的指针。
key 读取数据的键。
out 读取数据的值。

返回:

返回值为true表示成功,为false表示失败。

OH_AVFormat_GetLongValue()

bool OH_AVFormat_GetLongValue (struct OH_AVFormat *format, const char *key, int64_t *out)

描述

从OH_AVFormat读取long数据。

系统能力: SystemCapability.Multimedia.Media.Core

起始版本: 9

参数:

名称 描述
format 指向OH_AVFormat实例的指针。
key 读取数据的键。
out 读取数据的值。

返回:

返回值为true表示成功,为false表示失败。

OH_AVFormat_GetStringValue()

bool OH_AVFormat_GetStringValue (struct OH_AVFormat *format, const char *key, const char ** out)

描述

从OH_AVFormat读取string数据。

系统能力: SystemCapability.Multimedia.Media.Core

起始版本: 9

参数:

名称 描述
format 指向OH_AVFormat实例的指针。
key 读取数据的键。
out 读取string指针,out数据的生命周期与format内string对应。 如果调用者需要长时间保持它,必须进行拷贝内存。

返回:

返回值为true表示成功,为false表示失败

OH_AVFormat_SetBuffer()

bool OH_AVFormat_SetBuffer (struct OH_AVFormat *format, const char *key, const uint8_t *addr, size_t size)

描述

将指定长度的数据块写入OH_AVFormat。

系统能力: SystemCapability.Multimedia.Media.Core

起始版本: 9

参数:

名称 描述
format 指向OH_AVFormat实例的指针。
key 写入数据的键。
addr 写入数据的地址。
size 写入数据的长度。

返回:

返回值为true表示成功,为false表示失败。

OH_AVFormat_SetDoubleValue()

bool OH_AVFormat_SetDoubleValue (struct OH_AVFormat *format, const char *key, double value)

描述

将double数据写入OH_AVFormat。

系统能力: SystemCapability.Multimedia.Media.Core

起始版本: 9

参数:

名称 描述
format 指向OH_AVFormat实例的指针。
key 写入数据的键。
value 写入数据的值。

返回:

返回值为true表示成功,为false表示失败。

OH_AVFormat_SetFloatValue()

bool OH_AVFormat_SetFloatValue (struct OH_AVFormat *format, const char *key, float value)

描述

将float数据写入OH_AVFormat。

系统能力: SystemCapability.Multimedia.Media.Core

起始版本: 9

参数:

名称 描述
format 指向OH_AVFormat实例的指针。
key 写入数据的键。
value 写入数据的值。

返回:

返回值为true表示成功,为false表示失败

OH_AVFormat_SetIntValue()

bool OH_AVFormat_SetIntValue (struct OH_AVFormat *format, const char *key, int32_t value)

描述

将int数据写入OH_AVFormat。

系统能力: SystemCapability.Multimedia.Media.Core

起始版本: 9

参数:

名称 描述
format 指向OH_AVFormat实例的指针。
key 写入数据的键。
value 写入数据的值。

返回:

返回值为true表示成功,为false表示失败。

OH_AVFormat_SetLongValue()

bool OH_AVFormat_SetLongValue (struct OH_AVFormat *format, const char *key, int64_t value)

描述

将long数据写入OH_AVFormat。

系统能力: SystemCapability.Multimedia.Media.Core

起始版本: 9

参数:

名称 描述
format 指向OH_AVFormat实例的指针。
key 写入数据的键。
value 写入数据的值。

返回:

返回值为true表示成功,为false表示失败。

OH_AVFormat_SetStringValue()

bool OH_AVFormat_SetStringValue (struct OH_AVFormat *format, const char *key, const char *value)

描述

将string数据写入OH_AVFormat。

系统能力: SystemCapability.Multimedia.Media.Core

起始版本: 9

参数:

名称 描述
format 指向OH_AVFormat实例的指针。
key 写入数据的键。
value 写入数据的值。

返回:

返回值为true表示成功,为false表示失败。

OH_AVMemory_Create()

OH_AVMemory* OH_AVMemory_Create (int32_t size)

描述

创建OH_AVMemory实例的指针。

系统能力: SystemCapability.Multimedia.Media.Core

起始版本: 10

废弃版本: 11

替代接口:OH_AVBuffer_Create

参数:

名称 描述
size 创建内存的大小,单位字节。

返回:

如果创建成功,返回OH_AVMemory实例的指针,如果失败,返回nullptr。 使用结束后需要通过OH_AVMemory_Destroy释放内存。

OH_AVMemory_Destroy()

OH_AVErrCode OH_AVMemory_Destroy (struct OH_AVMemory *mem)

描述

释放OH_AVMemory实例指针的资源。

系统能力: SystemCapability.Multimedia.Media.Core

起始版本: 10

废弃版本: 11

替代接口:OH_AVBuffer_Destroy

参数:

名称 描述
mem 指向OH_AVMemory实例的指针。

返回:

如果释放成功返回AV_ERR_OK,如果失败返回具体错误码, 参考OH_AVErrCode

OH_AVMemory_GetAddr()

uint8_t* OH_AVMemory_GetAddr (struct OH_AVMemory *mem)

描述

获取入参的内存虚拟地址。

系统能力: SystemCapability.Multimedia.Media.Core

起始版本: 9

废弃版本: 11

替代接口:OH_AVBuffer_GetAddr

参数:

名称 描述
mem 指向OH_AVMemory实例的指针。

返回:

如果内存有效,返回内存的虚拟地址,如果内存无效,返回nullptr。

OH_AVMemory_GetSize()

int32_t OH_AVMemory_GetSize (struct OH_AVMemory *mem)

描述

获取入参的内存长度。

系统能力: SystemCapability.Multimedia.Media.Core

起始版本: 9

废弃版本: 11

替代接口:OH_AVBuffer_GetCapacity

参数:

名称 描述
mem 指向OH_AVMemory实例的指针。

返回:

如果内存有效,返回内存长度,如果内存无效,返回-1。