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