1# Core 2 3 4## 概述 5 6Core模块提供用于播放框架的基础骨干能力,包含内存、错误码、格式载体、媒体数据结构等相关函数。 7 8**系统能力:** SystemCapability.Multimedia.Media.Core 9 10**起始版本:** 9 11 12 13## 汇总 14 15 16### 文件 17 18| 名称 | 描述 | 19| -------- | -------- | 20| [native_audio_channel_layout.h](native__audio__channel__layout_8h.md) | 用声道布局来表示在录制或播放时扬声器的外观和顺序。 | 21| [native_avbuffer.h](native__avbuffer_8h.md) | 声明了媒体数据结构AVBuffer的函数接口。 | 22| [native_avbuffer_info.h](native__avbuffer__info_8h.md) | 声明了媒体数据结构AVBuffer属性的定义。 | 23| [native_averrors.h](native__averrors_8h.md) | 声明了媒体子系统的错误码OH_AVErrCode的定义。 | 24| [native_avformat.h](native__avformat_8h.md) | 声明了格式相关的函数和枚举。 | 25| [native_avmemory.h](native__avmemory_8h.md) | 声明了媒体数据结构AVMemory的定义。 | 26 27 28### 结构体 29 30| 名称 | 描述 | 31| -------- | -------- | 32| struct [OH_AVCodecBufferAttr](_o_h___a_v_codec_buffer_attr.md) | 定义OH_AVCodec的缓冲区描述信息。 | 33 34 35### 类型定义 36 37| 名称 | 描述 | 38| -------- | -------- | 39| typedef enum [OH_AudioChannelSet](#oh_audiochannelset)[OH_AudioChannelSet](#oh_audiochannelset) | 音频声道集合。 | 40| typedef enum [OH_AmbAttributeSet](#oh_ambattributeset)[OH_AmbAttributeSet](#oh_ambattributeset) | 高保真立体声混响设置。 | 41| typedef enum [OH_AudioChannelLayout](#oh_audiochannellayout)[OH_AudioChannelLayout](#oh_audiochannellayout) | 音频声道布局。 | 42| typedef enum [OH_AVCodecBufferFlags](#oh_avcodecbufferflags)[OH_AVCodecBufferFlags](#oh_avcodecbufferflags) | 枚举OH_AVCodec缓冲区标记的类别。 | 43| typedef struct [OH_AVCodecBufferAttr](_o_h___a_v_codec_buffer_attr.md)[OH_AVCodecBufferAttr](#oh_avcodecbufferattr) | 定义OH_AVCodec的缓冲区描述信息。 | 44| typedef enum [OH_AVErrCode](#oh_averrcode)[OH_AVErrCode](#oh_averrcode) | 音视频错误码。 | 45| typedef enum [OH_AVPixelFormat](#oh_avpixelformat)[OH_AVPixelFormat](#oh_avpixelformat) | 视频像素格式的枚举类。 | 46 47 48### 枚举 49 50| 名称 | 描述 | 51| -------- | -------- | 52| [OH_AudioChannelSet](#oh_audiochannelset) {<br/>CH_SET_FRONT_LEFT = 1ULL << 0U,<br/>CH_SET_FRONT_RIGHT = 1ULL << 1U,<br/>CH_SET_FRONT_CENTER = 1ULL << 2U,<br/>CH_SET_LOW_FREQUENCY = 1ULL << 3U,<br/>CH_SET_BACK_LEFT = 1ULL << 4U,<br/>CH_SET_BACK_RIGHT = 1ULL << 5U,<br/>CH_SET_FRONT_LEFT_OF_CENTER = 1ULL << 6U,<br/>CH_SET_FRONT_RIGHT_OF_CENTER = 1ULL << 7U,<br/>CH_SET_BACK_CENTER = 1ULL << 8U,<br/>CH_SET_SIDE_LEFT = 1ULL << 9U,<br/>CH_SET_SIDE_RIGHT = 1ULL << 10U,<br/>CH_SET_TOP_CENTER = 1ULL << 11U,<br/>CH_SET_TOP_FRONT_LEFT = 1ULL << 12U,<br/>CH_SET_TOP_FRONT_CENTER = 1ULL << 13U,<br/>CH_SET_TOP_FRONT_RIGHT = 1ULL << 14U,<br/>CH_SET_TOP_BACK_LEFT = 1ULL << 15U,<br/>CH_SET_TOP_BACK_CENTER = 1ULL << 16U,<br/>CH_SET_TOP_BACK_RIGHT = 1ULL << 17U,<br/>CH_SET_STEREO_LEFT = 1ULL << 29U,<br/>CH_SET_STEREO_RIGHT = 1ULL << 30U,<br/>CH_SET_WIDE_LEFT = 1ULL << 31U,<br/>CH_SET_WIDE_RIGHT = 1ULL << 32U,<br/>CH_SET_SURROUND_DIRECT_LEFT = 1ULL << 33U,<br/>CH_SET_SURROUND_DIRECT_RIGHT = 1ULL << 34U,<br/>CH_SET_LOW_FREQUENCY_2 = 1ULL << 35U,<br/>CH_SET_TOP_SIDE_LEFT = 1ULL << 36U,<br/>CH_SET_TOP_SIDE_RIGHT = 1ULL << 37U,<br/>CH_SET_BOTTOM_FRONT_CENTER = 1ULL << 38U,<br/>CH_SET_BOTTOM_FRONT_LEFT = 1ULL << 39U,<br/>CH_SET_BOTTOM_FRONT_RIGHT = 1ULL << 40U<br/>} | 音频声道集合。 | 53| [OH_AmbAttributeSet](#oh_ambattributeset) {<br/>AMB_ORD_1 = 1ULL << 0U,<br/>AMB_ORD_2 = 2ULL << 0U,<br/>AMB_ORD_3 = 3ULL << 0U,<br/>AMB_COM_ACN = 0ULL << 8U,<br/>AMB_COM_FUMA = 1ULL << 8U,<br/>AMB_NOR_N3D = 0ULL << 12U,<br/>AMB_NOR_SN3D = 1ULL << 12U,<br/>AMB_MODE = 1ULL << 44U<br/>} | 高保真立体声混响设置。 | 54| [OH_AudioChannelLayout](#oh_audiochannellayout) {<br/>CH_LAYOUT_UNKNOWN = 0ULL,<br/>CH_LAYOUT_MONO = CH_SET_FRONT_CENTER,<br/>CH_LAYOUT_STEREO = CH_SET_FRONT_LEFT \| CH_SET_FRONT_RIGHT,<br/>CH_LAYOUT_STEREO_DOWNMIX = CH_SET_STEREO_LEFT \| CH_SET_STEREO_RIGHT,<br/>CH_LAYOUT_2POINT1 = CH_LAYOUT_STEREO \| CH_SET_LOW_FREQUENCY,<br/>CH_LAYOUT_3POINT0 = CH_LAYOUT_STEREO \| CH_SET_BACK_CENTER,<br/>CH_LAYOUT_SURROUND = CH_LAYOUT_STEREO \| CH_SET_FRONT_CENTER,<br/>CH_LAYOUT_3POINT1 = CH_LAYOUT_SURROUND \| CH_SET_LOW_FREQUENCY,<br/>CH_LAYOUT_4POINT0 = CH_LAYOUT_SURROUND \| CH_SET_BACK_CENTER,<br/>CH_LAYOUT_QUAD_SIDE = CH_LAYOUT_STEREO \| CH_SET_SIDE_LEFT \| CH_SET_SIDE_RIGHT,<br/>CH_LAYOUT_QUAD = CH_LAYOUT_STEREO \| CH_SET_BACK_LEFT \| CH_SET_BACK_RIGHT,<br/>CH_LAYOUT_2POINT0POINT2 = CH_LAYOUT_STEREO \| CH_SET_TOP_SIDE_LEFT \| CH_SET_TOP_SIDE_RIGHT,<br/>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,<br/>CH_LAYOUT_AMB_ORDER1_FUMA = AMB_MODE \| AMB_ORD_1 \| AMB_COM_FUMA,<br/>CH_LAYOUT_4POINT1 = CH_LAYOUT_4POINT0 \| CH_SET_LOW_FREQUENCY,<br/>CH_LAYOUT_5POINT0 = CH_LAYOUT_SURROUND \| CH_SET_SIDE_LEFT \| CH_SET_SIDE_RIGHT,<br/>CH_LAYOUT_5POINT0_BACK = CH_LAYOUT_SURROUND \| CH_SET_BACK_LEFT \| CH_SET_BACK_RIGHT,<br/>CH_LAYOUT_2POINT1POINT2 = CH_LAYOUT_2POINT0POINT2 \| CH_SET_LOW_FREQUENCY,<br/>CH_LAYOUT_3POINT0POINT2 = CH_LAYOUT_2POINT0POINT2 \| CH_SET_FRONT_CENTER,<br/>CH_LAYOUT_5POINT1 = CH_LAYOUT_5POINT0 \| CH_SET_LOW_FREQUENCY,<br/>CH_LAYOUT_5POINT1_BACK = CH_LAYOUT_5POINT0_BACK \| CH_SET_LOW_FREQUENCY,<br/>CH_LAYOUT_6POINT0 = CH_LAYOUT_5POINT0 \| CH_SET_BACK_CENTER,<br/>CH_LAYOUT_3POINT1POINT2 = CH_LAYOUT_3POINT1 \| CH_SET_TOP_FRONT_LEFT \| CH_SET_TOP_FRONT_RIGHT,<br/>CH_LAYOUT_6POINT0_FRONT = CH_LAYOUT_QUAD_SIDE \| CH_SET_FRONT_LEFT_OF_CENTER \| CH_SET_FRONT_RIGHT_OF_CENTER,<br/>CH_LAYOUT_HEXAGONAL = CH_LAYOUT_5POINT0_BACK \| CH_SET_BACK_CENTER,<br/>CH_LAYOUT_6POINT1 = CH_LAYOUT_5POINT1 \| CH_SET_BACK_CENTER,<br/>CH_LAYOUT_6POINT1_BACK = CH_LAYOUT_5POINT1_BACK \| CH_SET_BACK_CENTER,<br/>CH_LAYOUT_6POINT1_FRONT = CH_LAYOUT_6POINT0_FRONT \| CH_SET_LOW_FREQUENCY,<br/>CH_LAYOUT_7POINT0 = CH_LAYOUT_5POINT0 \| CH_SET_BACK_LEFT \| CH_SET_BACK_RIGHT,<br/>CH_LAYOUT_7POINT0_FRONT = CH_LAYOUT_5POINT0 \| CH_SET_FRONT_LEFT_OF_CENTER \| CH_SET_FRONT_RIGHT_OF_CENTER,<br/>CH_LAYOUT_7POINT1 = CH_LAYOUT_5POINT1 \| CH_SET_BACK_LEFT \| CH_SET_BACK_RIGHT,<br/>CH_LAYOUT_OCTAGONAL = CH_LAYOUT_5POINT0 \| CH_SET_BACK_LEFT \| CH_SET_BACK_CENTER \| CH_SET_BACK_RIGHT,<br/>CH_LAYOUT_5POINT1POINT2 = CH_LAYOUT_5POINT1 \| CH_SET_TOP_SIDE_LEFT \| CH_SET_TOP_SIDE_RIGHT,<br/>CH_LAYOUT_7POINT1_WIDE = CH_LAYOUT_5POINT1 \| CH_SET_FRONT_LEFT_OF_CENTER \| CH_SET_FRONT_RIGHT_OF_CENTER,<br/>CH_LAYOUT_7POINT1_WIDE_BACK = CH_LAYOUT_5POINT1_BACK \| CH_SET_FRONT_LEFT_OF_CENTER \| CH_SET_FRONT_RIGHT_OF_CENTER,<br/>CH_LAYOUT_AMB_ORDER2_ACN_N3D = AMB_MODE \| AMB_ORD_2 \| AMB_COM_ACN \| AMB_NOR_N3D,<br/>CH_LAYOUT_AMB_ORDER2_ACN_SN3D = AMB_MODE \| AMB_ORD_2 \| AMB_COM_ACN \| AMB_NOR_SN3D,<br/>CH_LAYOUT_AMB_ORDER2_FUMA = AMB_MODE \| AMB_ORD_2 \| AMB_COM_FUMA,<br/>CH_LAYOUT_5POINT1POINT4,<br/>CH_LAYOUT_7POINT1POINT2 = CH_LAYOUT_7POINT1 \| CH_SET_TOP_SIDE_LEFT \| CH_SET_TOP_SIDE_RIGHT,<br/>CH_LAYOUT_7POINT1POINT4,<br/>CH_LAYOUT_10POINT2,<br/>CH_LAYOUT_9POINT1POINT4 = CH_LAYOUT_7POINT1POINT4 \| CH_SET_WIDE_LEFT \| CH_SET_WIDE_RIGHT,<br/>CH_LAYOUT_9POINT1POINT6 = CH_LAYOUT_9POINT1POINT4 \| CH_SET_TOP_SIDE_LEFT \| CH_SET_TOP_SIDE_RIGHT,<br/>CH_LAYOUT_HEXADECAGONAL,<br/>CH_LAYOUT_AMB_ORDER3_ACN_N3D = AMB_MODE \| AMB_ORD_3 \| AMB_COM_ACN \| AMB_NOR_N3D,<br/>CH_LAYOUT_AMB_ORDER3_ACN_SN3D = AMB_MODE \| AMB_ORD_3 \| AMB_COM_ACN \| AMB_NOR_SN3D,<br/>CH_LAYOUT_AMB_ORDER3_FUMA = AMB_MODE \| AMB_ORD_3 \| AMB_COM_FUMA,<br/>CH_LAYOUT_22POINT2<br/>} | 音频声道布局。 | 55| [OH_AVCodecBufferFlags](#oh_avcodecbufferflags) {<br/>AVCODEC_BUFFER_FLAGS_NONE = 0,<br/>AVCODEC_BUFFER_FLAGS_EOS = 1 << 0, AVCODEC_BUFFER_FLAGS_SYNC_FRAME = 1 << 1, AVCODEC_BUFFER_FLAGS_INCOMPLETE_FRAME = 1 << 2,<br/>AVCODEC_BUFFER_FLAGS_CODEC_DATA = 1 << 3<br/>} | 枚举OH_AVCodec缓冲区标记的类别。 | 56| [OH_AVErrCode](#oh_averrcode) {<br/>AV_ERR_OK = 0,<br/>AV_ERR_NO_MEMORY = 1,<br/>AV_ERR_OPERATE_NOT_PERMIT = 2,<br/>AV_ERR_INVALID_VAL = 3,<br/>AV_ERR_IO = 4,<br/>AV_ERR_TIMEOUT = 5,<br/>AV_ERR_UNKNOWN = 6,<br/>AV_ERR_SERVICE_DIED = 7,<br/>AV_ERR_INVALID_STATE = 8,<br/>AV_ERR_UNSUPPORT = 9,<br/>AV_ERR_EXTEND_START = 100<br/>} | 音视频错误码。 | 57| [OH_AVPixelFormat](#oh_avpixelformat) {<br/>AV_PIXEL_FORMAT_YUVI420 = 1,<br/>AV_PIXEL_FORMAT_NV12 = 2,<br/>AV_PIXEL_FORMAT_NV21 = 3,<br/>AV_PIXEL_FORMAT_SURFACE_FORMAT = 4,<br/>AV_PIXEL_FORMAT_RGBA = 5<br/>} | 视频像素格式的枚举类 | 58 59 60### 函数 61 62| 名称 | 描述 | 63| -------- | -------- | 64| OH_AVBuffer \* [OH_AVBuffer_Create](#oh_avbuffer_create) (int32_t capacity) | 创建OH_AVBuffer实例。 需要注意的是,返回值指向的创建OH_AVBuffer的实例需要调用者手动释放,请参阅[OH_AVBuffer_Destroy](#oh_avbuffer_destroy)。 | 65| [OH_AVErrCode](#oh_averrcode)[OH_AVBuffer_Destroy](#oh_avbuffer_destroy) (OH_AVBuffer \*buffer) | 释放OH_AVBuffer实例指针的资源。 | 66| [OH_AVErrCode](#oh_averrcode)[OH_AVBuffer_GetBufferAttr](#oh_avbuffer_getbufferattr) (OH_AVBuffer \*buffer, [OH_AVCodecBufferAttr](_o_h___a_v_codec_buffer_attr.md) \*attr) | 获取数据缓冲区的高频属性参数。 | 67| [OH_AVErrCode](#oh_averrcode)[OH_AVBuffer_SetBufferAttr](#oh_avbuffer_setbufferattr) (OH_AVBuffer \*buffer, const [OH_AVCodecBufferAttr](_o_h___a_v_codec_buffer_attr.md) \*attr) | 设置数据缓冲区的高频属性参数。 | 68| OH_AVFormat \* [OH_AVBuffer_GetParameter](#oh_avbuffer_getparameter) (OH_AVBuffer \*buffer) | 获取数据缓冲区的随帧参数。 | 69| [OH_AVErrCode](#oh_averrcode)[OH_AVBuffer_SetParameter](#oh_avbuffer_setparameter) (OH_AVBuffer \*buffer, const OH_AVFormat \*format) | 设置数据缓冲区的随帧参数。 | 70| uint8_t \* [OH_AVBuffer_GetAddr](#oh_avbuffer_getaddr) (OH_AVBuffer \*buffer) | 获取数据缓冲区的虚拟地址。 | 71| int32_t [OH_AVBuffer_GetCapacity](#oh_avbuffer_getcapacity) (OH_AVBuffer \*buffer) | 获取数据缓冲区的容量。 | 72| OH_NativeBuffer \* [OH_AVBuffer_GetNativeBuffer](#oh_avbuffer_getnativebuffer) (OH_AVBuffer \*buffer) | 获取OH_NativeBuffer实例的指针。 | 73| struct OH_AVFormat \* [OH_AVFormat_Create](#oh_avformat_create) (void) | 创建OH_AVFormat句柄,用于读取数据。 | 74| struct OH_AVFormat \* [OH_AVFormat_CreateAudioFormat](#oh_avformat_createaudioformat) (const char \*mimeType, int32_t sampleRate, int32_t channelCount) | 创建音频OH_AVFormat句柄指针,用于读写数据。 | 75| struct OH_AVFormat \* [OH_AVFormat_CreateVideoFormat](#oh_avformat_createvideoformat) (const char \*mimeType, int32_t width, int32_t height) | 创建视频OH_AVFormat句柄指针,用于读写数据。 | 76| void [OH_AVFormat_Destroy](#oh_avformat_destroy) (struct OH_AVFormat \*format) | 销毁OH_AVFormat句柄。 | 77| bool [OH_AVFormat_Copy](#oh_avformat_copy) (struct OH_AVFormat \*to, struct OH_AVFormat \*from) | 复制OH_AVFormat句柄。 | 78| bool [OH_AVFormat_SetIntValue](#oh_avformat_setintvalue) (struct OH_AVFormat \*format, const char \*key, int32_t value) | 将int数据写入OH_AVFormat。 | 79| bool [OH_AVFormat_SetLongValue](#oh_avformat_setlongvalue) (struct OH_AVFormat \*format, const char \*key, int64_t value) | 将long数据写入OH_AVFormat。 | 80| bool [OH_AVFormat_SetFloatValue](#oh_avformat_setfloatvalue) (struct OH_AVFormat \*format, const char \*key, float value) | 将float数据写入OH_AVFormat。 | 81| bool [OH_AVFormat_SetDoubleValue](#oh_avformat_setdoublevalue) (struct OH_AVFormat \*format, const char \*key, double value) | 将double数据写入OH_AVFormat。 | 82| bool [OH_AVFormat_SetStringValue](#oh_avformat_setstringvalue) (struct OH_AVFormat \*format, const char \*key, const char \*value) | 将string数据写入OH_AVFormat。 | 83| bool [OH_AVFormat_SetBuffer](#oh_avformat_setbuffer) (struct OH_AVFormat \*format, const char \*key, const uint8_t \*addr, size_t size) | 将指定长度的数据块写入OH_AVFormat。 | 84| bool [OH_AVFormat_GetIntValue](#oh_avformat_getintvalue) (struct OH_AVFormat \*format, const char \*key, int32_t \*out) | 从OH_AVFormat读取int数据。 | 85| bool [OH_AVFormat_GetLongValue](#oh_avformat_getlongvalue) (struct OH_AVFormat \*format, const char \*key, int64_t \*out) | 从OH_AVFormat读取long数据。 | 86| bool [OH_AVFormat_GetFloatValue](#oh_avformat_getfloatvalue) (struct OH_AVFormat \*format, const char \*key, float \*out) | 从OH_AVFormat读取float数据。 | 87| bool [OH_AVFormat_GetDoubleValue](#oh_avformat_getdoublevalue) (struct OH_AVFormat \*format, const char \*key, double \*out) | 从OH_AVFormat读取double数据。 | 88| bool [OH_AVFormat_GetStringValue](#oh_avformat_getstringvalue) (struct OH_AVFormat \*format, const char \*key, const char \*\*out) | 从OH_AVFormat读取string数据。 | 89| bool [OH_AVFormat_GetBuffer](#oh_avformat_getbuffer) (struct OH_AVFormat \*format, const char \*key, uint8_t \*\*addr, size_t \*size) | 从OH_AVFormat中读取指定长度的数据块。 | 90| const char \* [OH_AVFormat_DumpInfo](#oh_avformat_dumpinfo) (struct OH_AVFormat \*format) | 输出OH_AVFormat中包含的字符串。 | 91| OH_AVMemory \* [OH_AVMemory_Create](#oh_avmemory_create) (int32_t size) | 创建OH_AVMemory实例的指针。 | 92| uint8_t \* [OH_AVMemory_GetAddr](#oh_avmemory_getaddr) (struct OH_AVMemory \*mem) | 获取入参的内存虚拟地址。 | 93| int32_t [OH_AVMemory_GetSize](#oh_avmemory_getsize) (struct OH_AVMemory \*mem) | 获取入参的内存长度。 | 94| [OH_AVErrCode](#oh_averrcode)[OH_AVMemory_Destroy](#oh_avmemory_destroy) (struct OH_AVMemory \*mem) | 释放OH_AVMemory实例指针的资源。 | 95 96 97## 类型定义说明 98 99 100### OH_AmbAttributeSet 101 102``` 103typedef enum OH_AmbAttributeSetOH_AmbAttributeSet 104``` 105 106**描述** 107 108高保真立体声混响设置。 109 110用int64整数来表示高保真立体声混响属性。 111 112**系统能力:** SystemCapability.Multimedia.Media.Core 113 114**起始版本:** 11 115 116 117### OH_AudioChannelLayout 118 119``` 120typedef enum OH_AudioChannelLayoutOH_AudioChannelLayout 121``` 122 123**描述** 124 125音频声道布局。 126 127用int64整数来表示在录制或播放时扬声器的外观和顺序。 128 129**系统能力:** SystemCapability.Multimedia.Media.Core 130 131**起始版本:** 11 132 133 134### OH_AudioChannelSet 135 136``` 137typedef enum OH_AudioChannelSetOH_AudioChannelSet 138``` 139 140**描述** 141 142音频声道集合。 143 144将每一个声道映射为int64的变量。 145 146**系统能力:** SystemCapability.Multimedia.Media.Core 147 148**起始版本:** 11 149 150 151### OH_AVCodecBufferAttr 152 153``` 154typedef struct OH_AVCodecBufferAttrOH_AVCodecBufferAttr 155``` 156 157**描述** 158 159定义OH_AVCodec的缓冲区描述信息。 160 161**系统能力:** SystemCapability.Multimedia.Media.Core 162 163**起始版本:** 9 164 165 166### OH_AVCodecBufferFlags 167 168``` 169typedef enum OH_AVCodecBufferFlagsOH_AVCodecBufferFlags 170``` 171 172**描述** 173 174枚举OH_AVCodec缓冲区标记的类别。 175 176**系统能力:** SystemCapability.Multimedia.Media.Core 177 178**起始版本:** 9 179 180 181### OH_AVErrCode 182 183``` 184typedef enum OH_AVErrCodeOH_AVErrCode 185``` 186 187**描述** 188 189音视频错误码。 190 191**系统能力:** SystemCapability.Multimedia.Media.Core 192 193**起始版本:** 9 194 195 196### OH_AVPixelFormat 197 198``` 199typedef enum OH_AVPixelFormatOH_AVPixelFormat 200``` 201 202**描述** 203 204视频像素格式的枚举类。 205 206**系统能力:** SystemCapability.Multimedia.Media.Core 207 208**起始版本:** 9 209 210 211## 枚举类型说明 212 213 214### OH_AmbAttributeSet 215 216``` 217enum OH_AmbAttributeSet 218``` 219 220**描述** 221 222高保真立体声混响设置. 223 224用int64整数来表示高保真立体声混响属性。 225 226**系统能力:** SystemCapability.Multimedia.Media.Core 227 228**起始版本:** 11 229 230| 枚举值 | 描述 | 231| -------- | -------- | 232| AMB_ORD_1 | 一阶高保真立体声混响 | 233| AMB_ORD_2 | 二阶高保真立体声混响 | 234| AMB_ORD_3 | 三阶高保真立体声混响 | 235| AMB_COM_ACN | ACN通道排序的高保真立体声混响 | 236| AMB_COM_FUMA | FUMA通道排序的高保真立体声混响 | 237| AMB_NOR_N3D | N3D归一化的高保真立体声混响 | 238| AMB_NOR_SN3D | SN3D归一化的高保真立体声混响 | 239| AMB_MODE | 高保真立体声混响的声道布局 | 240 241 242### OH_AudioChannelLayout 243 244``` 245enum OH_AudioChannelLayout 246``` 247 248**描述** 249 250音频声道布局, 251 252用int64整数来表示在录制或播放时扬声器的外观和顺序。 253 254**系统能力:** SystemCapability.Multimedia.Media.Core 255 256**起始版本:** 11 257 258| 枚举值 | 描述 | 259| -------- | -------- | 260| CH_LAYOUT_UNKNOWN | 未知声道布局 | 261| CH_LAYOUT_MONO | 单声道布局, 共1个声道 | 262| CH_LAYOUT_STEREO | 立体声布局, 共2个声道 | 263| CH_LAYOUT_STEREO_DOWNMIX | 立体声下混布局, 共2个声道 | 264| CH_LAYOUT_2POINT1 | 2.1布局, 共3个声道 | 265| CH_LAYOUT_3POINT0 | 3.0布局, 共3个声道 | 266| CH_LAYOUT_SURROUND | 环绕布局,共3个声道 | 267| CH_LAYOUT_3POINT1 | 3.1布局,共4个声道 | 268| CH_LAYOUT_4POINT0 | 4.0布局,共4个声道 | 269| CH_LAYOUT_QUAD_SIDE | QUAD_SIDE布局,共4个声道 | 270| CH_LAYOUT_QUAD | QUAD布局,共4个声道 | 271| CH_LAYOUT_2POINT0POINT2 | 2.0.2布局,共4个声道 | 272| CH_LAYOUT_AMB_ORDER1_ACN_N3D | ACN_N3D(根据ITU标准)的一阶FOA布局,共4个声道 | 273| CH_LAYOUT_AMB_ORDER1_ACN_SN3D | ACN_SN3D(根据ITU标准)的一阶FOA布局,共4个声道 | 274| CH_LAYOUT_AMB_ORDER1_FUMA | FUMA(根据ITU标准)的一阶FOA布局,共4个声道 | 275| CH_LAYOUT_4POINT1 | 4.1布局,共5个声道 | 276| CH_LAYOUT_5POINT0 | 5.0布局,共5个声道 | 277| CH_LAYOUT_5POINT0_BACK | 5.0-后置布局,共5个声道 | 278| CH_LAYOUT_2POINT1POINT2 | 2.1.2布局,共5个声道 | 279| CH_LAYOUT_3POINT0POINT2 | 3.0.2布局,共5个声道 | 280| CH_LAYOUT_5POINT1 | 5.1布局,共6个声道 | 281| CH_LAYOUT_5POINT1_BACK | 5.1-后置布局,共6个声道 | 282| CH_LAYOUT_6POINT0 | 6.0布局,共6个声道 | 283| CH_LAYOUT_3POINT1POINT2 | 3.1.2布局,共6个声道 | 284| CH_LAYOUT_6POINT0_FRONT | 6.0-Front布局,共6个声道 | 285| CH_LAYOUT_HEXAGONAL | HEXAGONAL布局,共6个声道 | 286| CH_LAYOUT_6POINT1 | 6.1布局,共7个声道 | 287| CH_LAYOUT_6POINT1_BACK | 6.1-后置布局,共7个声道 | 288| CH_LAYOUT_6POINT1_FRONT | 6.1-前置布局,共7个声道 | 289| CH_LAYOUT_7POINT0 | 7.0布局,共7个声道 | 290| CH_LAYOUT_7POINT0_FRONT | 7.0-前置布局,共7个声道 | 291| CH_LAYOUT_7POINT1 | 7.1布局,共8个声道 | 292| CH_LAYOUT_OCTAGONAL | OCTAGONAL布局,共8个声道 | 293| CH_LAYOUT_5POINT1POINT2 | 5.1.2布局,共8个声道 | 294| CH_LAYOUT_7POINT1_WIDE | 7.1-宽布局,共8个声道 | 295| CH_LAYOUT_7POINT1_WIDE_BACK | 7.1-后置宽布局,共8个声道 | 296| CH_LAYOUT_AMB_ORDER2_ACN_N3D | ACN_N3D(根据ITU标准)的二阶HOA布局,共9个声道 | 297| CH_LAYOUT_AMB_ORDER2_ACN_SN3D | ACN_SN3D(根据ITU标准)的二阶HOA布局,共9个声道 | 298| CH_LAYOUT_AMB_ORDER2_FUMA | FUMA(根据ITU标准)的二阶HOA布局,共9个声道 | 299| CH_LAYOUT_5POINT1POINT4 | 5.1.4布局,共10个声道 | 300| CH_LAYOUT_7POINT1POINT2 | 7.1.2布局,共10个声道 | 301| CH_LAYOUT_7POINT1POINT4 | 7.1.4布局,共12个声道 | 302| CH_LAYOUT_10POINT2 | 10.2布局,共12个声道 | 303| CH_LAYOUT_9POINT1POINT4 | 9.1.4布局,共14个声道 | 304| CH_LAYOUT_9POINT1POINT6 | 9.1.6布局,共16个声道 | 305| CH_LAYOUT_HEXADECAGONAL | HEXADECAGONAL布局,共16个声道 | 306| CH_LAYOUT_AMB_ORDER3_ACN_N3D | ACN_N3D(根据ITU标准)的三阶HOA布局,共16个声道 | 307| CH_LAYOUT_AMB_ORDER3_ACN_SN3D | ACN_SN3D(根据ITU标准)的三阶HOA布局,共16个声道 | 308| CH_LAYOUT_AMB_ORDER3_FUMA | FUMA(根据ITU标准)的三阶HOA布局,共16个声道 | 309| CH_LAYOUT_22POINT2 | 22.2布局,共24个声道 | 310 311 312### OH_AudioChannelSet 313 314``` 315enum OH_AudioChannelSet 316``` 317 318**描述** 319 320音频声道集合, 321 322将每一个声道映射为int64的变量。 323 324**系统能力:** SystemCapability.Multimedia.Media.Core 325 326**起始版本:** 11 327 328| 枚举值 | 描述 | 329| -------- | -------- | 330| CH_SET_FRONT_LEFT | 左前声道 | 331| CH_SET_FRONT_RIGHT | 右前声道 | 332| CH_SET_FRONT_CENTER | 中前声道 | 333| CH_SET_LOW_FREQUENCY | 低频声道 | 334| CH_SET_BACK_LEFT | 左后声道 | 335| CH_SET_BACK_RIGHT | 右后声道 | 336| CH_SET_FRONT_LEFT_OF_CENTER | 左前中置声道 | 337| CH_SET_FRONT_RIGHT_OF_CENTER | 右前中置声道 | 338| CH_SET_BACK_CENTER | 后方中置声道 | 339| CH_SET_SIDE_LEFT | 左侧声道 | 340| CH_SET_SIDE_RIGHT | 右侧声道 | 341| CH_SET_TOP_CENTER | 上方中置声道 | 342| CH_SET_TOP_FRONT_LEFT | 上方左前声道 | 343| CH_SET_TOP_FRONT_CENTER | 上方中前声道 | 344| CH_SET_TOP_FRONT_RIGHT | 上方右前声道 | 345| CH_SET_TOP_BACK_LEFT | 上方左后声道 | 346| CH_SET_TOP_BACK_CENTER | 上方中后声道 | 347| CH_SET_TOP_BACK_RIGHT | 上方右后声道 | 348| CH_SET_STEREO_LEFT | 立体声左声道 | 349| CH_SET_STEREO_RIGHT | 立体声右声道 | 350| CH_SET_WIDE_LEFT | 宽左声道 | 351| CH_SET_WIDE_RIGHT | 宽右声道 | 352| CH_SET_SURROUND_DIRECT_LEFT | 左环绕声道 | 353| CH_SET_SURROUND_DIRECT_RIGHT | 右环绕声道 | 354| CH_SET_LOW_FREQUENCY_2 | 低频声道2 | 355| CH_SET_TOP_SIDE_LEFT | 上方左侧声道 | 356| CH_SET_TOP_SIDE_RIGHT | 上方右侧声道 | 357| CH_SET_BOTTOM_FRONT_CENTER | 下方中前声道 | 358| CH_SET_BOTTOM_FRONT_LEFT | 下方左前声道 | 359| CH_SET_BOTTOM_FRONT_RIGHT | 下方右前声道 | 360 361 362### OH_AVCodecBufferFlags 363 364``` 365enum OH_AVCodecBufferFlags 366``` 367 368**描述** 369 370枚举OH_AVCodec缓冲区标记的类别。 371 372**系统能力:** SystemCapability.Multimedia.Media.Core 373 374**起始版本:** 9 375 376| 枚举值 | 描述 | 377| -------- | -------- | 378| AVCODEC_BUFFER_FLAGS_NONE | 表示为普通帧。 | 379| AVCODEC_BUFFER_FLAGS_EOS | 表示缓冲区是流结束帧。 | 380| AVCODEC_BUFFER_FLAGS_SYNC_FRAME | 表示缓冲区包含关键帧。 | 381| AVCODEC_BUFFER_FLAGS_INCOMPLETE_FRAME | 表示缓冲区中的数据只是帧的一部分。 | 382| AVCODEC_BUFFER_FLAGS_CODEC_DATA | 表示缓冲区包含编解码特定数据。 | 383 384 385### OH_AVErrCode 386 387``` 388enum OH_AVErrCode 389``` 390 391**描述** 392 393音视频错误码。 394 395**系统能力:** SystemCapability.Multimedia.Media.Core 396 397**起始版本:** 9 398 399| 枚举值 | 描述 | 400| -------- | -------- | 401| AV_ERR_OK | 操作成功 | 402| AV_ERR_NO_MEMORY | 无内存 | 403| AV_ERR_OPERATE_NOT_PERMIT | 操作不允许 | 404| AV_ERR_INVALID_VAL | 无效值 | 405| AV_ERR_IO | IO错误 | 406| AV_ERR_TIMEOUT | 超时错误 | 407| AV_ERR_UNKNOWN | 未知错误 | 408| AV_ERR_SERVICE_DIED | 服务死亡 | 409| AV_ERR_INVALID_STATE | 当前状态不支持此操作 | 410| AV_ERR_UNSUPPORT | 未支持的接口 | 411| AV_ERR_EXTEND_START | 扩展错误码初始值 | 412 413 414### OH_AVPixelFormat 415 416``` 417enum OH_AVPixelFormat 418``` 419 420**描述** 421 422视频像素格式的枚举类 423 424**系统能力:** SystemCapability.Multimedia.Media.Core 425 426**起始版本:** 9 427 428| 枚举值 | 描述 | 429| -------- | -------- | 430| AV_PIXEL_FORMAT_YUVI420 | yuv 420 planar | 431| AV_PIXEL_FORMAT_NV12 | NV12. yuv 420 semiplanar | 432| AV_PIXEL_FORMAT_NV21 | NV21. yuv 420 semiplanar | 433| AV_PIXEL_FORMAT_SURFACE_FORMAT | surface格式 | 434| AV_PIXEL_FORMAT_RGBA | RGBA8888 | 435 436 437## 函数说明 438 439 440### OH_AVBuffer_Create() 441 442``` 443OH_AVBuffer* OH_AVBuffer_Create (int32_t capacity) 444``` 445 446**描述** 447 448创建OH_AVBuffer实例。 需要注意的是,返回值指向的创建OH_AVBuffer的实例需要调用者手动释放,请参阅[OH_AVBuffer_Destroy](#oh_avbuffer_destroy)。 449 450**系统能力:** SystemCapability.Multimedia.Media.Core 451 452**起始版本:** 11 453 454**参数:** 455 456| 名称 | 描述 | 457| -------- | -------- | 458| capacity | 创建内存的大小,单位字节。 | 459 460**返回:** 461 462如果创建成功,则返回OH_AVBuffer实例的指针,如果失败,则返回nullptr。 463 464 465### OH_AVBuffer_Destroy() 466 467``` 468OH_AVErrCode OH_AVBuffer_Destroy (OH_AVBuffer *buffer) 469``` 470 471**描述** 472 473释放OH_AVBuffer实例指针的资源。 474 475**系统能力:** SystemCapability.Multimedia.Media.Core 476 477**起始版本:** 11 478 479**参数:** 480 481| 名称 | 描述 | 482| -------- | -------- | 483| buffer | 指向OH_AVBuffer实例的指针。 | 484 485**返回:** 486 487如果执行成功,则返回AV_ERR_OK,否则返回特定错误代码,请参阅[OH_AVErrCode](#oh_averrcode)。 488 489 490### OH_AVBuffer_GetAddr() 491 492``` 493uint8_t* OH_AVBuffer_GetAddr (OH_AVBuffer *buffer) 494``` 495 496**描述** 497 498获取数据缓冲区的虚拟地址。 499 500**系统能力:** SystemCapability.Multimedia.Media.Core 501 502**起始版本:** 11 503 504**参数:** 505 506| 名称 | 描述 | 507| -------- | -------- | 508| buffer | 指向OH_AVBuffer实例的指针。 | 509 510**返回:** 511 512如果成功,则返回数据缓冲区的虚拟地址,如果失败,则返回nullptr。 513 514 515### OH_AVBuffer_GetBufferAttr() 516 517``` 518OH_AVErrCode OH_AVBuffer_GetBufferAttr (OH_AVBuffer *buffer, OH_AVCodecBufferAttr *attr) 519``` 520 521**描述** 522 523获取数据缓冲区的高频属性参数。 524 525**系统能力:** SystemCapability.Multimedia.Media.Core 526 527**起始版本:** 11 528 529**参数:** 530 531| 名称 | 描述 | 532| -------- | -------- | 533| buffer | 指向OH_AVBuffer实例的指针。 | 534| attr | 指向[OH_AVCodecBufferAttr](_o_h___a_v_codec_buffer_attr.md)实例的指针。 | 535 536**返回:** 537 538如果执行成功,则返回AV_ERR_OK,否则返回特定错误代码,请参阅[OH_AVErrCode](#oh_averrcode)。 539 540 541### OH_AVBuffer_GetCapacity() 542 543``` 544int32_t OH_AVBuffer_GetCapacity (OH_AVBuffer *buffer) 545``` 546 547**描述** 548 549获取数据缓冲区的容量。 550 551**系统能力:** SystemCapability.Multimedia.Media.Core 552 553**起始版本:** 11 554 555**参数:** 556 557| 名称 | 描述 | 558| -------- | -------- | 559| buffer | 指向OH_AVBuffer实例的指针。 | 560 561**返回:** 562 563如果成功,则返回数据缓冲区的容量,如果失败,则返回-1。 564 565 566### OH_AVBuffer_GetNativeBuffer() 567 568``` 569OH_NativeBuffer* OH_AVBuffer_GetNativeBuffer (OH_AVBuffer *buffer) 570``` 571 572**描述** 573 574获取OH_NativeBuffer实例的指针。 需要注意的是,返回值指向的创建OH_NativeBuffer的实例需要调用者手动释放,请参阅[OH_NativeBuffer_Unreference](_o_h___native_buffer.md#oh_nativebuffer_unreference)。 575 576**系统能力:** SystemCapability.Multimedia.Media.Core 577 578**起始版本:** 11 579 580**参数:** 581 582| 名称 | 描述 | 583| -------- | -------- | 584| buffer | 指向OH_AVBuffer实例的指针。 | 585 586**返回:** 587 588如果成功,则返回OH_NativeBuffer实例的指针,如果失败,则返回nullptr。 589 590 591### OH_AVBuffer_GetParameter() 592 593``` 594OH_AVFormat* OH_AVBuffer_GetParameter (OH_AVBuffer *buffer) 595``` 596 597**描述** 598 599获取数据缓冲区的随帧参数。 需要注意的是,返回值指向的创建OH_AVFormat的实例需要调用者手动释放,请参阅[OH_AVFormat_Destroy](#oh_avformat_destroy)。 600 601**系统能力:** SystemCapability.Multimedia.Media.Core 602 603**起始版本:** 11 604 605**参数:** 606 607| 名称 | 描述 | 608| -------- | -------- | 609| buffer | 指向OH_AVBuffer实例的指针。 | 610 611**返回:** 612 613如果执行成功,则返回AV_ERR_OK,否则返回特定错误代码,请参阅[OH_AVErrCode](#oh_averrcode)。 614 615 616### OH_AVBuffer_SetBufferAttr() 617 618``` 619OH_AVErrCode OH_AVBuffer_SetBufferAttr (OH_AVBuffer *buffer, const OH_AVCodecBufferAttr *attr) 620``` 621 622**描述** 623 624设置数据缓冲区的高频属性参数。 625 626**系统能力:** SystemCapability.Multimedia.Media.Core 627 628**起始版本:** 11 629 630**参数:** 631 632| 名称 | 描述 | 633| -------- | -------- | 634| buffer | 指向OH_AVBuffer实例的指针。 | 635| attr | 指向[OH_AVCodecBufferAttr](_o_h___a_v_codec_buffer_attr.md)实例的指针。 | 636 637**返回:** 638 639如果执行成功,则返回AV_ERR_OK,否则返回特定错误代码,请参阅[OH_AVErrCode](#oh_averrcode)。 640 641 642### OH_AVBuffer_SetParameter() 643 644``` 645OH_AVErrCode OH_AVBuffer_SetParameter (OH_AVBuffer *buffer, const OH_AVFormat *format) 646``` 647 648**描述** 649 650设置数据缓冲区的随帧参数。 651 652**系统能力:** SystemCapability.Multimedia.Media.Core 653 654**起始版本:** 11 655 656**参数:** 657 658| 名称 | 描述 | 659| -------- | -------- | 660| buffer | 指向OH_AVBuffer实例的指针。 | 661| format | 指向OH_AVFormat实例的指针。 | 662 663**返回:** 664 665如果执行成功,则返回AV_ERR_OK,否则返回特定错误代码,请参阅[OH_AVErrCode](#oh_averrcode)。 666 667 668### OH_AVFormat_Copy() 669 670``` 671bool OH_AVFormat_Copy (struct OH_AVFormat *to, struct OH_AVFormat *from) 672``` 673 674**描述** 675 676复制OH_AVFormat句柄。 677 678**系统能力:** SystemCapability.Multimedia.Media.Core 679 680**起始版本:** 9 681 682**参数:** 683 684| 名称 | 描述 | 685| -------- | -------- | 686| to | OH_AVFormat句柄,用于接收数据。 | 687| from | 指向复制数据的OH_AVFormat句柄的指针。 | 688 689**返回:** 690 691返回值为true表示成功,为false表示失败。 692 693 694### OH_AVFormat_Create() 695 696``` 697struct OH_AVFormat* OH_AVFormat_Create (void) 698``` 699 700**描述** 701 702创建OH_AVFormat句柄,用于读取数据。 703 704**系统能力:** SystemCapability.Multimedia.Media.Core 705 706**起始版本:** 9 707 708**返回:** 709 710返回指向OH_AVFormat实例的指针。 711 712 713### OH_AVFormat_CreateAudioFormat() 714 715``` 716struct OH_AVFormat* OH_AVFormat_CreateAudioFormat (const char *mimeType, int32_t sampleRate, int32_t channelCount) 717``` 718 719**描述** 720 721创建音频OH_AVFormat句柄指针,用于读写数据。 722 723**系统能力:** SystemCapability.Multimedia.Media.Core 724 725**起始版本:** 10 726 727**参数:** 728 729| 名称 | 描述 | 730| -------- | -------- | 731| mimeType | MIME类型描述字符串,请参阅[AVCODEC_MIMETYPE](_codec_base.md#变量)。 | 732| sampleRate | 采样率,单位Hz。 | 733| channelCount | 声道个数,如1为单声道,2为双声道。 | 734 735**返回:** 736 737返回指向OH_AVFormat实例的指针。 738 739 740### OH_AVFormat_CreateVideoFormat() 741 742``` 743struct OH_AVFormat* OH_AVFormat_CreateVideoFormat (const char *mimeType, int32_t width, int32_t height) 744``` 745 746**描述** 747 748创建视频OH_AVFormat句柄指针,用于读写数据。 749 750**系统能力:** SystemCapability.Multimedia.Media.Core 751 752**起始版本:** 10 753 754**参数:** 755 756| 名称 | 描述 | 757| -------- | -------- | 758| mimeType | MIME类型描述字符串,请参阅[AVCODEC_MIMETYPE](_codec_base.md#变量)。 | 759| width | 宽度,单位为px。 | 760| height | 高度,单位为px。 | 761 762**返回:** 763 764返回指向OH_AVFormat实例的指针 765 766 767### OH_AVFormat_Destroy() 768 769``` 770void OH_AVFormat_Destroy (struct OH_AVFormat *format) 771``` 772 773**描述** 774 775销毁OH_AVFormat句柄。 776 777**系统能力:** SystemCapability.Multimedia.Media.Core 778 779**起始版本:** 9 780 781**参数:** 782 783| 名称 | 描述 | 784| -------- | -------- | 785| format | 指向OH_AVFormat实例的指针。 | 786 787 788### OH_AVFormat_DumpInfo() 789 790``` 791const char* OH_AVFormat_DumpInfo (struct OH_AVFormat *format) 792``` 793 794**描述** 795 796输出OH_AVFormat中包含的字符串。 797 798**系统能力:** SystemCapability.Multimedia.Media.Core 799 800**起始版本:** 9 801 802**参数:** 803 804| 名称 | 描述 | 805| -------- | -------- | 806| format | 指向OH_AVFormat实例的指针。 | 807 808**返回:** 809 810返回一个由key和data组成的字符串。 811 812 813### OH_AVFormat_GetBuffer() 814 815``` 816bool OH_AVFormat_GetBuffer (struct OH_AVFormat *format, const char *key, uint8_t ** addr, size_t *size) 817``` 818 819**描述** 820 821从OH_AVFormat中读取指定长度的数据块。 822 823**系统能力:** SystemCapability.Multimedia.Media.Core 824 825**起始版本:** 9 826 827**参数:** 828 829| 名称 | 描述 | 830| -------- | -------- | 831| format | 指向OH_AVFormat实例的指针。 | 832| key | 读写数据的键。 | 833| addr | 生命周期与format相同,与format一同销毁。 如果调用者需要长时间保持它,必须进行内存拷贝。 | 834| size | 读写数据的长度。 | 835 836**返回:** 837 838返回值为true表示成功,为false表示失败。 839 840 841### OH_AVFormat_GetDoubleValue() 842 843``` 844bool OH_AVFormat_GetDoubleValue (struct OH_AVFormat *format, const char *key, double *out) 845``` 846 847**描述** 848 849从OH_AVFormat读取double数据。 850 851**系统能力:** SystemCapability.Multimedia.Media.Core 852 853**起始版本:** 9 854 855**参数:** 856 857| 名称 | 描述 | 858| -------- | -------- | 859| format | 指向OH_AVFormat实例的指针。 | 860| key | 读取数据的键。 | 861| out | 读取数据的值。 | 862 863**返回:** 864 865返回值为true表示成功,为false表示失败。 866 867 868### OH_AVFormat_GetFloatValue() 869 870``` 871bool OH_AVFormat_GetFloatValue (struct OH_AVFormat *format, const char *key, float *out) 872``` 873 874**描述** 875 876从OH_AVFormat读取float数据。 877 878**系统能力:** SystemCapability.Multimedia.Media.Core 879 880**起始版本:** 9 881 882**参数:** 883 884| 名称 | 描述 | 885| -------- | -------- | 886| format | 指向OH_AVFormat实例的指针。 | 887| key | 读取数据的键。 | 888| out | 读取数据的值。 | 889 890**返回:** 891 892返回值为true表示成功,为false表示失败。 893 894 895### OH_AVFormat_GetIntValue() 896 897``` 898bool OH_AVFormat_GetIntValue (struct OH_AVFormat *format, const char *key, int32_t *out) 899``` 900 901**描述** 902 903从OH_AVFormat读取int数据。 904 905**系统能力:** SystemCapability.Multimedia.Media.Core 906 907**起始版本:** 9 908 909**参数:** 910 911| 名称 | 描述 | 912| -------- | -------- | 913| format | 指向OH_AVFormat实例的指针。 | 914| key | 读取数据的键。 | 915| out | 读取数据的值。 | 916 917**返回:** 918 919返回值为true表示成功,为false表示失败。 920 921 922### OH_AVFormat_GetLongValue() 923 924``` 925bool OH_AVFormat_GetLongValue (struct OH_AVFormat *format, const char *key, int64_t *out) 926``` 927 928**描述** 929 930从OH_AVFormat读取long数据。 931 932**系统能力:** SystemCapability.Multimedia.Media.Core 933 934**起始版本:** 9 935 936**参数:** 937 938| 名称 | 描述 | 939| -------- | -------- | 940| format | 指向OH_AVFormat实例的指针。 | 941| key | 读取数据的键。 | 942| out | 读取数据的值。 | 943 944**返回:** 945 946返回值为true表示成功,为false表示失败。 947 948 949### OH_AVFormat_GetStringValue() 950 951``` 952bool OH_AVFormat_GetStringValue (struct OH_AVFormat *format, const char *key, const char ** out) 953``` 954 955**描述** 956 957从OH_AVFormat读取string数据。 958 959**系统能力:** SystemCapability.Multimedia.Media.Core 960 961**起始版本:** 9 962 963**参数:** 964 965| 名称 | 描述 | 966| -------- | -------- | 967| format | 指向OH_AVFormat实例的指针。 | 968| key | 读取数据的键。 | 969| out | 读取string指针,out数据的生命周期与format内string对应。 如果调用者需要长时间保持它,必须进行拷贝内存。 | 970 971**返回:** 972 973返回值为true表示成功,为false表示失败 974 975 976### OH_AVFormat_SetBuffer() 977 978``` 979bool OH_AVFormat_SetBuffer (struct OH_AVFormat *format, const char *key, const uint8_t *addr, size_t size) 980``` 981 982**描述** 983 984将指定长度的数据块写入OH_AVFormat。 985 986**系统能力:** SystemCapability.Multimedia.Media.Core 987 988**起始版本:** 9 989 990**参数:** 991 992| 名称 | 描述 | 993| -------- | -------- | 994| format | 指向OH_AVFormat实例的指针。 | 995| key | 写入数据的键。 | 996| addr | 写入数据的地址。 | 997| size | 写入数据的长度。 | 998 999**返回:** 1000 1001返回值为true表示成功,为false表示失败。 1002 1003 1004### OH_AVFormat_SetDoubleValue() 1005 1006``` 1007bool OH_AVFormat_SetDoubleValue (struct OH_AVFormat *format, const char *key, double value) 1008``` 1009 1010**描述** 1011 1012将double数据写入OH_AVFormat。 1013 1014**系统能力:** SystemCapability.Multimedia.Media.Core 1015 1016**起始版本:** 9 1017 1018**参数:** 1019 1020| 名称 | 描述 | 1021| -------- | -------- | 1022| format | 指向OH_AVFormat实例的指针。 | 1023| key | 写入数据的键。 | 1024| value | 写入数据的值。 | 1025 1026**返回:** 1027 1028返回值为true表示成功,为false表示失败。 1029 1030 1031### OH_AVFormat_SetFloatValue() 1032 1033``` 1034bool OH_AVFormat_SetFloatValue (struct OH_AVFormat *format, const char *key, float value) 1035``` 1036 1037**描述** 1038 1039将float数据写入OH_AVFormat。 1040 1041**系统能力:** SystemCapability.Multimedia.Media.Core 1042 1043**起始版本:** 9 1044 1045**参数:** 1046 1047| 名称 | 描述 | 1048| -------- | -------- | 1049| format | 指向OH_AVFormat实例的指针。 | 1050| key | 写入数据的键。 | 1051| value | 写入数据的值。 | 1052 1053**返回:** 1054 1055返回值为true表示成功,为false表示失败 1056 1057 1058### OH_AVFormat_SetIntValue() 1059 1060``` 1061bool OH_AVFormat_SetIntValue (struct OH_AVFormat *format, const char *key, int32_t value) 1062``` 1063 1064**描述** 1065 1066将int数据写入OH_AVFormat。 1067 1068**系统能力:** SystemCapability.Multimedia.Media.Core 1069 1070**起始版本:** 9 1071 1072**参数:** 1073 1074| 名称 | 描述 | 1075| -------- | -------- | 1076| format | 指向OH_AVFormat实例的指针。 | 1077| key | 写入数据的键。 | 1078| value | 写入数据的值。 | 1079 1080**返回:** 1081 1082返回值为true表示成功,为false表示失败。 1083 1084 1085### OH_AVFormat_SetLongValue() 1086 1087``` 1088bool OH_AVFormat_SetLongValue (struct OH_AVFormat *format, const char *key, int64_t value) 1089``` 1090 1091**描述** 1092 1093将long数据写入OH_AVFormat。 1094 1095**系统能力:** SystemCapability.Multimedia.Media.Core 1096 1097**起始版本:** 9 1098 1099**参数:** 1100 1101| 名称 | 描述 | 1102| -------- | -------- | 1103| format | 指向OH_AVFormat实例的指针。 | 1104| key | 写入数据的键。 | 1105| value | 写入数据的值。 | 1106 1107**返回:** 1108 1109返回值为true表示成功,为false表示失败。 1110 1111 1112### OH_AVFormat_SetStringValue() 1113 1114``` 1115bool OH_AVFormat_SetStringValue (struct OH_AVFormat *format, const char *key, const char *value) 1116``` 1117 1118**描述** 1119 1120将string数据写入OH_AVFormat。 1121 1122**系统能力:** SystemCapability.Multimedia.Media.Core 1123 1124**起始版本:** 9 1125 1126**参数:** 1127 1128| 名称 | 描述 | 1129| -------- | -------- | 1130| format | 指向OH_AVFormat实例的指针。 | 1131| key | 写入数据的键。 | 1132| value | 写入数据的值。 | 1133 1134**返回:** 1135 1136返回值为true表示成功,为false表示失败。 1137 1138 1139### OH_AVMemory_Create() 1140 1141``` 1142OH_AVMemory* OH_AVMemory_Create (int32_t size) 1143``` 1144 1145**描述** 1146 1147创建OH_AVMemory实例的指针。 1148 1149**系统能力:** SystemCapability.Multimedia.Media.Core 1150 1151**起始版本:** 10 1152 1153**废弃版本:** 11 1154 1155**替代接口:**[OH_AVBuffer_Create](#oh_avbuffer_create) 1156 1157**参数:** 1158 1159| 名称 | 描述 | 1160| -------- | -------- | 1161| size | 创建内存的大小,单位字节。 | 1162 1163**返回:** 1164 1165如果创建成功,返回OH_AVMemory实例的指针,如果失败,返回nullptr。 使用结束后需要通过OH_AVMemory_Destroy释放内存。 1166 1167 1168### OH_AVMemory_Destroy() 1169 1170``` 1171OH_AVErrCode OH_AVMemory_Destroy (struct OH_AVMemory *mem) 1172``` 1173 1174**描述** 1175 1176释放OH_AVMemory实例指针的资源。 1177 1178**系统能力:** SystemCapability.Multimedia.Media.Core 1179 1180**起始版本:** 10 1181 1182**废弃版本:** 11 1183 1184**替代接口:**[OH_AVBuffer_Destroy](#oh_avbuffer_destroy) 1185 1186**参数:** 1187 1188| 名称 | 描述 | 1189| -------- | -------- | 1190| mem | 指向OH_AVMemory实例的指针。 | 1191 1192**返回:** 1193 1194如果释放成功返回AV_ERR_OK,如果失败返回具体错误码, 参考[OH_AVErrCode](#oh_averrcode)。 1195 1196 1197### OH_AVMemory_GetAddr() 1198 1199``` 1200uint8_t* OH_AVMemory_GetAddr (struct OH_AVMemory *mem) 1201``` 1202 1203**描述** 1204 1205获取入参的内存虚拟地址。 1206 1207**系统能力:** SystemCapability.Multimedia.Media.Core 1208 1209**起始版本:** 9 1210 1211**废弃版本:** 11 1212 1213**替代接口:**[OH_AVBuffer_GetAddr](#oh_avbuffer_getaddr) 1214 1215**参数:** 1216 1217| 名称 | 描述 | 1218| -------- | -------- | 1219| mem | 指向OH_AVMemory实例的指针。 | 1220 1221**返回:** 1222 1223如果内存有效,返回内存的虚拟地址,如果内存无效,返回nullptr。 1224 1225 1226### OH_AVMemory_GetSize() 1227 1228``` 1229int32_t OH_AVMemory_GetSize (struct OH_AVMemory *mem) 1230``` 1231 1232**描述** 1233 1234获取入参的内存长度。 1235 1236**系统能力:** SystemCapability.Multimedia.Media.Core 1237 1238**起始版本:** 9 1239 1240**废弃版本:** 11 1241 1242**替代接口:**[OH_AVBuffer_GetCapacity](#oh_avbuffer_getcapacity) 1243 1244**参数:** 1245 1246| 名称 | 描述 | 1247| -------- | -------- | 1248| mem | 指向OH_AVMemory实例的指针。 | 1249 1250**返回:** 1251 1252如果内存有效,返回内存长度,如果内存无效,返回-1。 1253