文档管理中心
我的

您当前正在浏览HarmonyOS最新文档,覆盖已发布的所有API版本,可在API参考中筛选您使用的API版本。详细的版本配套关系请参考版本说明。

指南与API参考API参考媒体AVCodec Kit(音视频编解码服务)C API头文件native_avbuffer.h

native_avbuffer.h

Phone12+PC/2in113+Tablet12+TV19+Wearable18+

概述

声明了媒体数据结构AVBuffer的函数接口。

引用文件: <multimedia/player_framework/native_avbuffer.h>

库: libnative_media_core.so

系统能力: SystemCapability.Multimedia.Media.Core

起始版本: 11

相关模块: Core

相关示例: AVCodec

汇总

结构体

展开
名称 typedef关键字 描述
OH_AVBuffer OH_AVBuffer 为媒体内存接口定义native层对象。
OH_NativeBuffer OH_NativeBuffer 为图形内存接口定义native层对象。

函数

展开
名称 描述
OH_AVBuffer *OH_AVBuffer_Create(int32_t capacity) 创建OH_AVBuffer实例。需要注意的是,返回值指向的OH_AVBuffer实例需要开发者主动调用接口释放,请参阅OH_AVBuffer_Destroy。
OH_AVErrCode OH_AVBuffer_Destroy(OH_AVBuffer *buffer) 释放OH_AVBuffer实例指针的资源,同一个buffer不允许重复销毁。
OH_AVErrCode OH_AVBuffer_GetBufferAttr(OH_AVBuffer *buffer, OH_AVCodecBufferAttr *attr) 获取数据缓冲区的pts、size、offset、flags高频属性参数。
OH_AVErrCode OH_AVBuffer_SetBufferAttr(OH_AVBuffer *buffer, const OH_AVCodecBufferAttr *attr) 设置数据缓冲区的pts、size、offset、flags高频属性参数。
OH_AVFormat *OH_AVBuffer_GetParameter(OH_AVBuffer *buffer) 获取除基础属性外的其他参数,信息在OH_AVFormat中承载。需要注意的是,返回值指向的OH_AVFormat实例需要开发者主动释放,请参阅OH_AVFormat_Destroy。
OH_AVErrCode OH_AVBuffer_SetParameter(OH_AVBuffer *buffer, const OH_AVFormat *format) 设置除基础属性外的其他参数,信息在OH_AVFormat中承载。
uint8_t *OH_AVBuffer_GetAddr(OH_AVBuffer *buffer) 获取数据缓冲区的虚拟地址。
int32_t OH_AVBuffer_GetCapacity(OH_AVBuffer *buffer) 获取数据缓冲区的容量(字节数)。
OH_NativeBuffer *OH_AVBuffer_GetNativeBuffer(OH_AVBuffer *buffer) 获取OH_NativeBuffer实例的指针。需要注意的是,返回值指向的OH_NativeBuffer实例需要开发者主动调用接口释放,请参阅OH_NativeBuffer_Unreference。

函数说明

OH_AVBuffer_Create()

Phone12+PC/2in113+Tablet12+TV19+Wearable18+
收起
自动换行
深色代码主题
复制
  1. OH_AVBuffer *OH_AVBuffer_Create(int32_t capacity)

描述

创建OH_AVBuffer实例。需要注意的是,返回值指向的OH_AVBuffer实例需要开发者主动调用接口释放,请参阅OH_AVBuffer_Destroy。

系统能力: SystemCapability.Multimedia.Media.Core

起始版本: 11

参数:

展开
参数项 描述
int32_t capacity 创建内存的大小,单位字节。

返回:

展开
类型 说明
OH_AVBuffer *

如果创建成功,则返回OH_AVBuffer实例的指针,如果失败,则返回NULL。

可能的失败原因:

1. capacity <= 0。

2. 出现内部错误或系统资源不足。

OH_AVBuffer_Destroy()

Phone12+PC/2in113+Tablet12+TV19+Wearable18+
收起
自动换行
深色代码主题
复制
  1. OH_AVErrCode OH_AVBuffer_Destroy(OH_AVBuffer *buffer)

描述

释放OH_AVBuffer实例指针的资源,同一个buffer不允许重复销毁。

系统能力: SystemCapability.Multimedia.Media.Core

起始版本: 11

参数:

展开
参数项 描述
OH_AVBuffer *buffer 指向OH_AVBuffer实例的指针。

返回:

展开
类型 说明
OH_AVErrCode

AV_ERR_OK:操作成功。

AV_ERR_INVALID_VAL:输入的buffer为空指针或者buffer格式校验失败。

AV_ERR_OPERATE_NOT_PERMIT:输入的buffer不是用户创建的。

OH_AVBuffer_GetBufferAttr()

Phone12+PC/2in113+Tablet12+TV19+Wearable18+
收起
自动换行
深色代码主题
复制
  1. OH_AVErrCode OH_AVBuffer_GetBufferAttr(OH_AVBuffer *buffer, OH_AVCodecBufferAttr *attr)

描述

获取数据缓冲区的pts、size、offset、flags高频属性参数。

系统能力: SystemCapability.Multimedia.Media.Core

起始版本: 11

参数:

展开
参数项 描述
OH_AVBuffer *buffer 指向OH_AVBuffer实例的指针。
OH_AVCodecBufferAttr *attr 指向OH_AVCodecBufferAttr实例的指针。

返回:

展开
类型 说明
OH_AVErrCode

AV_ERR_OK:操作成功。

AV_ERR_INVALID_VAL:可能的原因:

1. 输入的buffer或attr为空指针。

2. buffer结构校验失败。

OH_AVBuffer_SetBufferAttr()

Phone12+PC/2in113+Tablet12+TV19+Wearable18+
收起
自动换行
深色代码主题
复制
  1. OH_AVErrCode OH_AVBuffer_SetBufferAttr(OH_AVBuffer *buffer, const OH_AVCodecBufferAttr *attr)

描述

设置数据缓冲区的pts、size、offset、flags高频属性参数。

系统能力: SystemCapability.Multimedia.Media.Core

起始版本: 11

参数:

展开
参数项 描述
OH_AVBuffer *buffer 指向OH_AVBuffer实例的指针。
const OH_AVCodecBufferAttr *attr 指向OH_AVCodecBufferAttr实例的指针。

返回:

展开
类型 说明
OH_AVErrCode

AV_ERR_OK:操作成功。

AV_ERR_INVALID_VAL:可能的原因:

1. 输入的buffer或attr为空指针。

2. buffer结构校验失败。

3. 输入buffer中内存的size或offset是无效值。

OH_AVBuffer_GetParameter()

Phone12+PC/2in113+Tablet12+TV19+Wearable18+
收起
自动换行
深色代码主题
复制
  1. OH_AVFormat *OH_AVBuffer_GetParameter(OH_AVBuffer *buffer)

描述

获取除基础属性外的其他参数,信息在OH_AVFormat中承载。需要注意的是,返回值指向的OH_AVFormat实例需要开发者主动释放,请参阅OH_AVFormat_Destroy。

系统能力: SystemCapability.Multimedia.Media.Core

起始版本: 11

参数:

展开
参数项 描述
OH_AVBuffer *buffer 指向OH_AVBuffer实例的指针。

返回:

展开
类型 说明
OH_AVFormat *

如果成功,则返回OH_AVFormat实例的指针,如果失败,则返回NULL。

可能的失败原因:

1. 输入的buffer为空指针。

2. 输入buffer的meta为空指针。

3. buffer结构校验失败。

OH_AVBuffer_SetParameter()

Phone12+PC/2in113+Tablet12+TV19+Wearable18+
收起
自动换行
深色代码主题
复制
  1. OH_AVErrCode OH_AVBuffer_SetParameter(OH_AVBuffer *buffer, const OH_AVFormat *format)

描述

设置除基础属性外的其他参数,信息在OH_AVFormat中承载。

系统能力: SystemCapability.Multimedia.Media.Core

起始版本: 11

参数:

展开
参数项 描述
OH_AVBuffer *buffer 指向OH_AVBuffer实例的指针。
const OH_AVFormat *format 指向OH_AVFormat实例的指针。

返回:

展开
类型 说明
OH_AVErrCode

AV_ERR_OK:操作成功。

AV_ERR_INVALID_VAL:可能的原因:

1. 输入的buffer或format为空指针。

2. 输入buffer的meta为空指针。

3. buffer结构校验失败。

OH_AVBuffer_GetAddr()

Phone12+PC/2in113+Tablet12+TV19+Wearable18+
收起
自动换行
深色代码主题
复制
  1. uint8_t *OH_AVBuffer_GetAddr(OH_AVBuffer *buffer)

描述

获取数据缓冲区的虚拟地址。

系统能力: SystemCapability.Multimedia.Media.Core

起始版本: 11

参数:

展开
参数项 描述
OH_AVBuffer *buffer 指向OH_AVBuffer实例的指针。

返回:

展开
类型 说明
uint8_t *

如果成功,则返回数据缓冲区的虚拟地址,如果失败,则返回NULL。

可能的失败原因:

1.输入的buffer为空指针。

2.OH_AVBuffer结构校验失败。

3.出现内部错误。

OH_AVBuffer_GetCapacity()

Phone12+PC/2in113+Tablet12+TV19+Wearable18+
收起
自动换行
深色代码主题
复制
  1. int32_t OH_AVBuffer_GetCapacity(OH_AVBuffer *buffer)

描述

获取数据缓冲区的容量(字节数)。

系统能力: SystemCapability.Multimedia.Media.Core

起始版本: 11

参数:

展开
参数项 描述
OH_AVBuffer *buffer 指向OH_AVBuffer实例的指针。

返回:

展开
类型 说明
int32_t

如果成功,则返回数据缓冲区的容量,如果失败,则返回-1。

可能的失败原因:

1.输入的buffer为空指针。

2.OH_AVBuffer结构校验失败。

3.出现内部错误。

OH_AVBuffer_GetNativeBuffer()

Phone12+PC/2in113+Tablet12+TV19+Wearable18+
收起
自动换行
深色代码主题
复制
  1. OH_NativeBuffer *OH_AVBuffer_GetNativeBuffer(OH_AVBuffer *buffer)

描述

获取OH_NativeBuffer实例的指针。需要注意的是,返回值指向的OH_NativeBuffer实例需要开发者主动调用接口释放,请参阅OH_NativeBuffer_Unreference。

系统能力: SystemCapability.Multimedia.Media.Core

起始版本: 11

参数:

展开
参数项 描述
OH_AVBuffer *buffer 指向OH_AVBuffer实例的指针。

返回:

展开
类型 说明
OH_NativeBuffer *

如果成功,则返回OH_NativeBuffer实例的指针,如果失败,则返回NULL。

可能的失败原因:

1.输入的buffer为空指针。

2.OH_AVBuffer结构校验失败。

3.出现内部错误。