• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# native_avformat.h
2
3## 概述
4
5声明了OH_AVFormat相关的函数和枚举。
6
7**引用文件:** <multimedia/player_framework/native_avformat.h>
8
9**库:** libnative_media_core.so
10
11**系统能力:** SystemCapability.Multimedia.Media.Core
12
13**起始版本:** 9
14
15**相关模块:** [Core](capi-core.md)
16
17## 汇总
18
19### 结构体
20
21| 名称 | typedef关键字 | 描述 |
22| -- | -- | -- |
23| [OH_AVFormat](capi-core-oh-avformat.md) | OH_AVFormat | 为OH_AVFormat接口定义native层对象。 |
24
25### 枚举
26
27| 名称 | typedef关键字 | 描述 |
28| -- | -- | -- |
29| [OH_AVPixelFormat](#oh_avpixelformat) | OH_AVPixelFormat | 视频像素格式的枚举类。 |
30
31### 函数
32
33| 名称 | 描述 |
34| -- | -- |
35| [struct OH_AVFormat *OH_AVFormat_Create(void)](#oh_avformat_create) | 创建OH_AVFormat实例,用于读取数据。 |
36| [struct OH_AVFormat *OH_AVFormat_CreateAudioFormat(const char *mimeType,int32_t sampleRate,int32_t channelCount)](#oh_avformat_createaudioformat) | 创建音频OH_AVFormat实例指针,用于读写数据。 |
37| [struct OH_AVFormat *OH_AVFormat_CreateVideoFormat(const char *mimeType,int32_t width,int32_t height)](#oh_avformat_createvideoformat) | 创建视频OH_AVFormat实例指针,用于读写数据。 |
38| [void OH_AVFormat_Destroy(struct OH_AVFormat *format)](#oh_avformat_destroy) | 销毁OH_AVFormat实例,不允许重复销毁。 |
39| [bool OH_AVFormat_Copy(struct OH_AVFormat *to, struct OH_AVFormat *from)](#oh_avformat_copy) | 复制OH_AVFormat实例。 |
40| [bool OH_AVFormat_SetIntValue(struct OH_AVFormat *format, const char *key, int32_t value)](#oh_avformat_setintvalue) | 对OH_AVFormat的[key](capi-codecbase.md#媒体数据键值对)赋int类型的值。 |
41| [bool OH_AVFormat_SetLongValue(struct OH_AVFormat *format, const char *key, int64_t value)](#oh_avformat_setlongvalue) | 对OH_AVFormat的[key](capi-codecbase.md#媒体数据键值对)赋long类型的值。 |
42| [bool OH_AVFormat_SetFloatValue(struct OH_AVFormat *format, const char *key, float value)](#oh_avformat_setfloatvalue) | 对OH_AVFormat的[key](capi-codecbase.md#媒体数据键值对)赋float类型的值。 |
43| [bool OH_AVFormat_SetDoubleValue(struct OH_AVFormat *format, const char *key, double value)](#oh_avformat_setdoublevalue) | 对OH_AVFormat的[key](capi-codecbase.md#媒体数据键值对)赋double类型的值。 |
44| [bool OH_AVFormat_SetStringValue(struct OH_AVFormat *format, const char *key, const char *value)](#oh_avformat_setstringvalue) | 将String数据写入OH_AVFormat。 |
45| [bool OH_AVFormat_SetBuffer(struct OH_AVFormat *format, const char *key, const uint8_t *addr, size_t size)](#oh_avformat_setbuffer) | 将指定长度的数据块写入OH_AVFormat。 |
46| [bool OH_AVFormat_GetIntValue(struct OH_AVFormat *format, const char *key, int32_t *out)](#oh_avformat_getintvalue) | 从OH_AVFormat的[key](capi-codecbase.md#媒体数据键值对)获取int类型的值。 |
47| [bool OH_AVFormat_GetLongValue(struct OH_AVFormat *format, const char *key, int64_t *out)](#oh_avformat_getlongvalue) | 从OH_AVFormat的[key](capi-codecbase.md#媒体数据键值对)获取long类型的值。 |
48| [bool OH_AVFormat_GetFloatValue(struct OH_AVFormat *format, const char *key, float *out)](#oh_avformat_getfloatvalue) | 从OH_AVFormat的[key](capi-codecbase.md#媒体数据键值对)获取float类型的值。 |
49| [bool OH_AVFormat_GetDoubleValue(struct OH_AVFormat *format, const char *key, double *out)](#oh_avformat_getdoublevalue) | 从OH_AVFormat的[key](capi-codecbase.md#媒体数据键值对)获取double类型的值。 |
50| [bool OH_AVFormat_GetStringValue(struct OH_AVFormat *format, const char *key, const char **out)](#oh_avformat_getstringvalue) | 从OH_AVFormat的[key](capi-codecbase.md#媒体数据键值对)获取string类型的值。 |
51| [bool OH_AVFormat_GetBuffer(struct OH_AVFormat *format, const char *key, uint8_t **addr, size_t *size)](#oh_avformat_getbuffer) | 从OH_AVFormat中读取指定长度的数据块。 |
52| [bool OH_AVFormat_GetIntBuffer(struct OH_AVFormat *format, const char *key, int32_t **addr, size_t *size)](#oh_avformat_getintbuffer) | 从OH_AVFormat中读取一个int32_t数据的数组。注意获取的buffer生命周期与OH_AVFormat对象绑定,当format销毁时自动失效。<br> 如果开发者需要长时间保持绑定,应用程序必须将数据显式复制到新分配的内存。 |
53| [const char *OH_AVFormat_DumpInfo(struct OH_AVFormat *format)](#oh_avformat_dumpinfo) | 返回OH_AVFormat中包含的key-value组成的字符串。最大可返回1024字节的字符串,销毁format时释放字符串指针。 |
54| [bool OH_AVFormat_SetIntBuffer(struct OH_AVFormat *format, const char *key, const int32_t *addr, size_t size)](#oh_avformat_setintbuffer) | 将指定长度int32_t类型的数据块写入OH_AVFormat。 |
55
56## 枚举类型说明
57
58### OH_AVPixelFormat
59
60```
61enum OH_AVPixelFormat
62```
63
64**描述**
65
66视频像素格式的枚举类。
67
68**系统能力:** SystemCapability.Multimedia.Media.Core
69
70**起始版本:** 9
71
72| 枚举项 | 描述 |
73| -- | -- |
74| AV_PIXEL_FORMAT_YUVI420 = 1 | yuv 420 planar。 |
75| AV_PIXEL_FORMAT_NV12 = 2 | NV12. yuv 420 semiplanar。 |
76| AV_PIXEL_FORMAT_NV21 = 3 | NV21. yvu 420 semiplanar。 |
77| AV_PIXEL_FORMAT_SURFACE_FORMAT = 4 | 像素格式从surface获取。只作用于Surface模式,Buffer模式不生效。 |
78| AV_PIXEL_FORMAT_RGBA = 5 | RGBA8888。 |
79| AV_PIXEL_FORMAT_RGBA1010102 = 6 | RGBA1010102。<br>**起始版本:** 20 |
80
81
82## 函数说明
83
84### OH_AVFormat_Create()
85
86```
87struct OH_AVFormat *OH_AVFormat_Create(void)
88```
89
90**描述**
91
92创建OH_AVFormat实例,用于读取数据。
93
94**系统能力:** SystemCapability.Multimedia.Media.Core
95
96**起始版本:** 9
97
98**返回:**
99
100| 类型 | 说明 |
101| -- | -- |
102| [struct OH_AVFormat](capi-core-oh-avformat.md) * | 返回指向OH_AVFormat实例的指针。系统资源不足时返回NULL。 |
103
104### OH_AVFormat_CreateAudioFormat()
105
106```
107struct OH_AVFormat *OH_AVFormat_CreateAudioFormat(const char *mimeType,int32_t sampleRate,int32_t channelCount)
108```
109
110**描述**
111
112创建音频OH_AVFormat实例指针并预设置指定参数,用于读写数据。
113
114**系统能力:** SystemCapability.Multimedia.Media.Core
115
116**起始版本:** 10
117
118
119**参数:**
120
121| 参数项 | 描述 |
122| -- | -- |
123| const char *mimeType | MIME类型描述字符串,请参阅[AVCODEC_MIMETYPE](capi-native-avcodec-base-h.md#变量)。 |
124| int32_t sampleRate | 采样率,单位Hz。 |
125| int32_t channelCount | 声道个数,如1为单声道,2为双声道。 |
126
127**返回:**
128
129| 类型 | 说明 |
130| -- | -- |
131| [struct OH_AVFormat](capi-core-oh-avformat.md) * | 如果创建成功,返回指向OH_AVFormat实例的指针,如果失败,则返回NULL。<br> 可能的失败原因:<br>1. 传入的mimeType为NULL。<br>2. 系统资源不足。 |
132
133### OH_AVFormat_CreateVideoFormat()
134
135```
136struct OH_AVFormat *OH_AVFormat_CreateVideoFormat(const char *mimeType,int32_t width,int32_t height)
137```
138
139**描述**
140
141创建视频OH_AVFormat实例指针并预设置指定参数,用于读写数据。
142
143**系统能力:** SystemCapability.Multimedia.Media.Core
144
145
146**参数:**
147
148| 参数项 | 描述 |
149| -- | -- |
150| const char *mimeType | MIME类型描述字符串,请参阅[AVCODEC_MIMETYPE](capi-native-avcodec-base-h.md#变量)。 |
151| int32_t width | 亮度的宽度,单位为pixel。 |
152| int32_t height | 亮度的高度,单位为pixel。 |
153
154**返回:**
155
156| 类型 | 说明 |
157| -- | -- |
158| [struct OH_AVFormat](capi-core-oh-avformat.md) * | 如果创建成功,返回指向OH_AVFormat实例的指针,如果失败,则返回NULL。<br> 可能的失败原因:<br>1. 传入的mimeType为NULL。<br>2. 系统资源不足。 |
159
160### OH_AVFormat_Destroy()
161
162```
163void OH_AVFormat_Destroy(struct OH_AVFormat *format)
164```
165
166**描述**
167
168销毁OH_AVFormat实例,不允许重复销毁。
169
170**系统能力:** SystemCapability.Multimedia.Media.Core
171
172**起始版本:** 9
173
174
175**参数:**
176
177| 参数项 | 描述 |
178| -- | -- |
179| [struct OH_AVFormat](capi-core-oh-avformat.md) *format | 指向OH_AVFormat实例的指针。 |
180
181### OH_AVFormat_Copy()
182
183```
184bool OH_AVFormat_Copy(struct OH_AVFormat *to, struct OH_AVFormat *from)
185```
186
187**描述**
188
189复制OH_AVFormat实例。
190
191**系统能力:** SystemCapability.Multimedia.Media.Core
192
193**起始版本:** 9
194
195
196**参数:**
197
198| 参数项 | 描述 |
199| -- | -- |
200| [struct OH_AVFormat](capi-core-oh-avformat.md) *to | OH_AVFormat实例,用于接收数据。 |
201| [struct OH_AVFormat](capi-core-oh-avformat.md) *from | 指向复制数据的OH_AVFormat实例的指针。 |
202
203**返回:**
204
205| 类型 | 说明 |
206| -- | -- |
207| bool | 返回值为true表示成功,返回值为false表示失败。<br> 可能的失败原因:<br>1. 输入参数为空指针。<br>2. 输入的OH_AVFormat参数结构校验失败。 |
208
209### OH_AVFormat_SetIntValue()
210
211```
212bool OH_AVFormat_SetIntValue(struct OH_AVFormat *format, const char *key, int32_t value)
213```
214
215**描述**
216
217对OH_AVFormat的[key](capi-codecbase.md#媒体数据键值对)赋int类型的值。该接口仅能设置int类型的参数,参数类型定义详见[native_avcodec_base.h](capi-native-avcodec-base-h.md#变量)。
218
219**系统能力:** SystemCapability.Multimedia.Media.Core
220
221**起始版本:** 9
222
223
224**参数:**
225
226| 参数项 | 描述 |
227| -- | -- |
228| [struct OH_AVFormat](capi-core-oh-avformat.md) *format | 指向OH_AVFormat实例的指针。 |
229| const char *key | 写入数据的键。 |
230| int32_t value | 写入数据的值。 |
231
232**返回:**
233
234| 类型 | 说明 |
235| -- | -- |
236| bool | 返回值为true表示成功,为false表示失败。<br> 可能的失败原因:<br>1. 输入format为空指针。<br>2. 输入format参数结构校验失败。<br>3. 输入key为空指针。<br>4. 设置的key对应的value类型错误。 |
237
238### OH_AVFormat_SetLongValue()
239
240```
241bool OH_AVFormat_SetLongValue(struct OH_AVFormat *format, const char *key, int64_t value)
242```
243
244**描述**
245
246对OH_AVFormat的[key](capi-codecbase.md#媒体数据键值对)赋long类型的值。该接口仅能设置long类型的参数,参数类型定义详见[native_avcodec_base.h](capi-native-avcodec-base-h.md#变量)。
247
248**系统能力:** SystemCapability.Multimedia.Media.Core
249
250**起始版本:** 9
251
252
253**参数:**
254
255| 参数项 | 描述 |
256| -- | -- |
257| [struct OH_AVFormat](capi-core-oh-avformat.md) *format | 指向OH_AVFormat实例的指针。 |
258| const char *key | 写入数据的键。 |
259| int64_t value | 写入数据的值。 |
260
261**返回:**
262
263| 类型 | 说明 |
264| -- | -- |
265| bool | 返回值为true表示成功,为false表示失败。<br> 可能的失败原因:<br>1. 输入format为空指针。<br>2. 输入format参数结构校验失败。<br>3. 输入key为空指针。<br>4. 设置的key对应的value类型错误。 |
266
267### OH_AVFormat_SetFloatValue()
268
269```
270bool OH_AVFormat_SetFloatValue(struct OH_AVFormat *format, const char *key, float value)
271```
272
273**描述**
274
275对OH_AVFormat的[key](capi-codecbase.md#媒体数据键值对)赋float类型的值。该接口仅能设置float类型的参数,参数类型定义详见[native_avcodec_base.h](capi-native-avcodec-base-h.md#变量)。
276
277**系统能力:** SystemCapability.Multimedia.Media.Core
278
279**起始版本:** 9
280
281
282**参数:**
283
284| 参数项 | 描述 |
285| -- | -- |
286| [struct OH_AVFormat](capi-core-oh-avformat.md) *format | 指向OH_AVFormat实例的指针。 |
287| const char *key | 写入数据的键。 |
288| float value | 写入数据的值。 |
289
290**返回:**
291
292| 类型 | 说明 |
293| -- | -- |
294| bool | 返回值为true表示成功,为false表示失败。<br> 可能的失败原因:<br>1. 输入format为空指针。<br>2. 输入format参数结构校验失败。<br>3. 输入key为空指针。<br>4. 设置的key对应的value类型错误。 |
295
296### OH_AVFormat_SetDoubleValue()
297
298```
299bool OH_AVFormat_SetDoubleValue(struct OH_AVFormat *format, const char *key, double value)
300```
301
302**描述**
303
304对OH_AVFormat的[key](capi-codecbase.md#媒体数据键值对)赋double类型的值。该接口仅能设置double类型的参数,参数类型定义详见[native_avcodec_base.h](capi-native-avcodec-base-h.md#变量)。
305
306**系统能力:** SystemCapability.Multimedia.Media.Core
307
308**起始版本:** 9
309
310
311**参数:**
312
313| 参数项 | 描述 |
314| -- | -- |
315| [struct OH_AVFormat](capi-core-oh-avformat.md) *format | 指向OH_AVFormat实例的指针。 |
316| const char *key | 写入数据的键。 |
317| double value | 写入数据的值。 |
318
319**返回:**
320
321| 类型 | 说明 |
322| -- | -- |
323| bool | 返回值为true表示成功,为false表示失败。<br> 可能的失败原因:<br>1. 输入format为空指针。<br>2. 输入format参数结构校验失败。<br>3. 输入key为空指针。<br>4. 设置的key对应的value类型错误。 |
324
325### OH_AVFormat_SetStringValue()
326
327```
328bool OH_AVFormat_SetStringValue(struct OH_AVFormat *format, const char *key, const char *value)
329```
330
331**描述**
332
333对OH_AVFormat的[key](capi-codecbase.md#媒体数据键值对)赋string类型的值。该接口仅能设置string类型的参数,参数类型定义详见[native_avcodec_base.h](capi-native-avcodec-base-h.md#变量)。
334
335**系统能力:** SystemCapability.Multimedia.Media.Core
336
337**起始版本:** 9
338
339
340**参数:**
341
342| 参数项 | 描述 |
343| -- | -- |
344| [struct OH_AVFormat](capi-core-oh-avformat.md) *format | 指向OH_AVFormat实例的指针。 |
345| const char *key | 写入数据的键。 |
346| const char *value | 写入字符串数据(使用建议:设置字符长度不超过256字节)。 |
347
348**返回:**
349
350| 类型 | 说明 |
351| -- | -- |
352| bool | 返回值为true表示成功,为false表示失败。<br> 可能的失败原因:<br>1. 输入format为空指针。<br>2. 输入format参数结构校验失败。<br>3. 输入key为空指针。<br>4. 输入value为空指针。<br>5. 设置的key对应的value类型错误。 |
353
354### OH_AVFormat_SetBuffer()
355
356```
357bool OH_AVFormat_SetBuffer(struct OH_AVFormat *format, const char *key, const uint8_t *addr, size_t size)
358```
359
360**描述**
361
362将指定长度的数据块写入OH_AVFormat。该接口仅能设置buffer类型的参数,参数类型定义详见[native_avcodec_base.h](capi-native-avcodec-base-h.md#变量)。
363
364**系统能力:** SystemCapability.Multimedia.Media.Core
365
366**起始版本:** 9
367
368
369**参数:**
370
371| 参数项 | 描述 |
372| -- | -- |
373| [struct OH_AVFormat](capi-core-oh-avformat.md) *format | 指向OH_AVFormat实例的指针。 |
374| const char *key | 写入数据的键。 |
375| const uint8_t *addr | 写入数据的地址,生命周期由开发者管理。 |
376| size_t size | 写入数据的长度,范围为(0, 1]MB。 |
377
378**返回:**
379
380| 类型 | 说明 |
381| -- | -- |
382| bool | 返回值为true表示成功,为false表示失败。<br> 可能的失败原因:<br>1. 输入format为空指针。<br>2. 输入format参数结构校验失败。<br>3. 输入key为空指针。<br>4. 输入addr为空指针。<br>5. size为0或超过限制1MB。<br>6. 设置的key对应的value类型错误。 |
383
384### OH_AVFormat_GetIntValue()
385
386```
387bool OH_AVFormat_GetIntValue(struct OH_AVFormat *format, const char *key, int32_t *out)
388```
389
390**描述**
391
392从OH_AVFormat的[key](capi-codecbase.md#媒体数据键值对)获取int类型的值。
393
394**系统能力:** SystemCapability.Multimedia.Media.Core
395
396**起始版本:** 9
397
398
399**参数:**
400
401| 参数项 | 描述 |
402| -- | -- |
403| [struct OH_AVFormat](capi-core-oh-avformat.md) *format | 指向OH_AVFormat实例的指针。 |
404| const char *key | 读取数据的键。 |
405| int32_t *out | 读取数据的值。 |
406
407**返回:**
408
409| 类型 | 说明 |
410| -- | -- |
411| bool | 返回值为true表示成功,为false表示失败。<br> 可能的失败原因:<br>1. 输入format为空指针。<br>2. 输入format参数结构校验失败。<br>3. 输入key为空指针。<br>4. 输入out为空指针。<br>5. 获取的key不存在或者未设置。 |
412
413### OH_AVFormat_GetLongValue()
414
415```
416bool OH_AVFormat_GetLongValue(struct OH_AVFormat *format, const char *key, int64_t *out)
417```
418
419**描述**
420
421从OH_AVFormat的[key](capi-codecbase.md#媒体数据键值对)获取long类型的值。
422
423**系统能力:** SystemCapability.Multimedia.Media.Core
424
425**起始版本:** 9
426
427
428**参数:**
429
430| 参数项 | 描述 |
431| -- | -- |
432| [struct OH_AVFormat](capi-core-oh-avformat.md) *format | 指向OH_AVFormat实例的指针。 |
433| const char *key | 读取数据的键。 |
434| int64_t *out | 读取数据的值。 |
435
436**返回:**
437
438| 类型 | 说明 |
439| -- | -- |
440| bool | 返回值为true表示成功,为false表示失败。<br> 可能的失败原因:<br>1. 输入format为空指针。<br>2. 输入format参数结构校验失败。<br>3. 输入key为空指针。<br>4. 输入out为空指针。<br>5. 获取的key不存在或者未设置。 |
441
442### OH_AVFormat_GetFloatValue()
443
444```
445bool OH_AVFormat_GetFloatValue(struct OH_AVFormat *format, const char *key, float *out)
446```
447
448**描述**
449
450从OH_AVFormat的[key](capi-codecbase.md#媒体数据键值对)获取float类型的值。
451
452**系统能力:** SystemCapability.Multimedia.Media.Core
453
454**起始版本:** 9
455
456
457**参数:**
458
459| 参数项 | 描述 |
460| -- | -- |
461| [struct OH_AVFormat](capi-core-oh-avformat.md) *format | 指向OH_AVFormat实例的指针。 |
462| const char *key | 读取数据的键。 |
463| float *out | 读取数据的值。 |
464
465**返回:**
466
467| 类型 | 说明 |
468| -- | -- |
469| bool | 返回值为true表示成功,为false表示失败。<br> 可能的失败原因:<br>1. 输入format为空指针。<br>2. 输入format参数结构校验失败。<br>3. 输入key为空指针。<br>4. 输入out为空指针。<br>5. 获取的key不存在或者未设置。 |
470
471### OH_AVFormat_GetDoubleValue()
472
473```
474bool OH_AVFormat_GetDoubleValue(struct OH_AVFormat *format, const char *key, double *out)
475```
476
477**描述**
478
479从OH_AVFormat的[key](capi-codecbase.md#媒体数据键值对)获取double类型的值。
480
481**系统能力:** SystemCapability.Multimedia.Media.Core
482
483**起始版本:** 9
484
485
486**参数:**
487
488| 参数项 | 描述 |
489| -- | -- |
490| [struct OH_AVFormat](capi-core-oh-avformat.md) *format | 指向OH_AVFormat实例的指针。 |
491| const char *key | 读取数据的键。 |
492| double *out | 读取数据的值。 |
493
494**返回:**
495
496| 类型 | 说明 |
497| -- | -- |
498| bool | 返回值为true表示成功,为false表示失败。<br> 可能的失败原因:<br>1. 输入format为空指针。<br>2. 输入format参数结构校验失败。<br>3. 输入key为空指针。<br>4. 输入out为空指针。<br>5. 获取的key不存在或者未设置。 |
499
500### OH_AVFormat_GetStringValue()
501
502```
503bool OH_AVFormat_GetStringValue(struct OH_AVFormat *format, const char *key, const char **out)
504```
505
506**描述**
507
508从OH_AVFormat的[key](capi-codecbase.md#媒体数据键值对)获取string类型的值。
509
510**系统能力:** SystemCapability.Multimedia.Media.Core
511
512**起始版本:** 9
513
514
515**参数:**
516
517| 参数项 | 描述 |
518| -- | -- |
519| [struct OH_AVFormat](capi-core-oh-avformat.md) *format | 指向OH_AVFormat实例的指针。 |
520| const char *key | 读取数据的键。 |
521| const char **out | 读取string指针,out数据的生命周期与format内string对应,如果开发者需要长时间保持它,必须进行拷贝内存。out最大输出字符串长度为256字节,如果长度超过256字节,会报false。 |
522
523**返回:**
524
525| 类型 | 说明 |
526| -- | -- |
527| bool | 返回值为true表示成功,为false表示失败。<br> 可能的失败原因:<br>1. 输入format为空指针。<br>2. 输入format参数结构校验失败。<br>3. 输入key为空指针。<br>4. 输入out为空指针。<br>5. malloc出的out字符串资源不足。<br>6. 获取的key不存在或者未设置。<br>7. 输出out的长度超过256字节。 |
528
529### OH_AVFormat_GetBuffer()
530
531```
532bool OH_AVFormat_GetBuffer(struct OH_AVFormat *format, const char *key, uint8_t **addr, size_t *size)
533```
534
535**描述**
536
537从OH_AVFormat中读取指定长度的数据块。
538
539**系统能力:** SystemCapability.Multimedia.Media.Core
540
541**起始版本:** 9
542
543
544**参数:**
545
546| 参数项 | 描述 |
547| -- | -- |
548| [struct OH_AVFormat](capi-core-oh-avformat.md) *format | 指向OH_AVFormat实例的指针。 |
549| const char *key | 要读取数据的键。 |
550| uint8_t **addr | 生命周期与format相同,与format一同销毁。如果开发者需要长时间保持它,必须进行内存拷贝。 |
551| size_t *size | 读到数据的长度。 |
552
553**返回:**
554
555| 类型 | 说明 |
556| -- | -- |
557| bool | 返回值为true表示成功,为false表示失败。<br> 可能的失败原因:<br>1. 输入format为空指针。<br>2. 输入format参数结构校验失败。<br>3. 输入key为空指针。<br>4. 输入addr为空指针。<br>5. 输入size为空指针。<br>6. 获取的key不存在或者未设置。 |
558
559### OH_AVFormat_GetIntBuffer()
560
561```
562bool OH_AVFormat_GetIntBuffer(struct OH_AVFormat *format, const char *key, int32_t **addr, size_t *size)
563```
564
565**描述**
566
567从OH_AVFormat中读取一个int32_t数据的数组。<br>需要注意的是,获取的buffer生命周期与OH_AVFormat对象绑定,当format销毁时自动失效。<br>如果开发者需要长时间保持绑定,应用程序必须将数据显式复制到新分配的内存。
568
569**系统能力:** SystemCapability.Multimedia.Media.Core
570
571**起始版本:** 20
572
573
574**参数:**
575
576| 参数项 | 描述 |
577| -- | -- |
578| [struct OH_AVFormat](capi-core-oh-avformat.md) *format | 指向OH_AVFormat实例的指针。 |
579| const char *key | 要读取数据的键。 |
580| int32_t **addr | 保存数据内存的指针。 |
581| size_t *size | 读到数据的元素数量。 |
582
583**返回:**
584
585| 类型 | 说明 |
586| -- | -- |
587| bool | 返回值为true表示成功,为false表示失败。<br> 可能的失败原因:<br> 1. 输入format为空指针。<br> 2. 输入format参数结构校验失败。<br> 3. 输入key为空指针。<br> 4. 输入addr为空指针。<br> 5. 输入size为空指针。 |
588
589### OH_AVFormat_DumpInfo()
590
591```
592const char *OH_AVFormat_DumpInfo(struct OH_AVFormat *format)
593```
594
595**描述**
596
597返回OH_AVFormat中包含的key-value组成的字符串。最大可返回1024字节的字符串,销毁format时释放字符串指针。
598
599**系统能力:** SystemCapability.Multimedia.Media.Core
600
601**起始版本:** 9
602
603
604**参数:**
605
606| 参数项 | 描述 |
607| -- | -- |
608| [struct OH_AVFormat](capi-core-oh-avformat.md) *format | 指向OH_AVFormat实例的指针。 |
609
610**返回:**
611
612| 类型 | 说明 |
613| -- | -- |
614| const char * | 如果创建成功,返回一个由key-value组成的字符串,如果失败,则返回NULL。<br> 可能的失败原因:<br>1. 传入的format为NULL。<br>2. 系统资源不足。 |
615
616### OH_AVFormat_SetIntBuffer()
617
618```
619bool OH_AVFormat_SetIntBuffer(struct OH_AVFormat *format, const char *key, const int32_t *addr, size_t size)
620```
621
622**描述**
623
624将指定长度int32_t类型的数据块写入OH_AVFormat。
625
626**系统能力:** SystemCapability.Multimedia.Media.Core
627
628**起始版本:** 20
629
630
631**参数:**
632
633| 参数项 | 描述 |
634| -- | -- |
635| [struct OH_AVFormat](capi-core-oh-avformat.md) *format | 指向OH_AVFormat实例的指针。 |
636| const char *key | 写入数据的键。 |
637| const int32_t *addr | 写入数据的地址,生命周期由开发者管理。 |
638| size_t size | 写入数据的长度(以元素为单位,不是字节数)。 |
639
640**返回:**
641
642| 类型 | 说明 |
643| -- | -- |
644| bool | 返回true表示成功,返回false表示失败。<br> 可能的失败原因:<br> 1. 输入format为空指针。<br> 2. 输入format参数结构校验失败。<br> 3. 输入key为空指针。<br> 4. 输入addr为空指针。<br> 5. 输入size为空指针。 |
645
646
647