• 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)[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 &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/>} | 音频声道集合。 |
53| [OH_AmbAttributeSet](#oh_ambattributeset) {<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/>} | 高保真立体声混响设置。 |
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 &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缓冲区标记的类别。 |
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