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