openharmony 鸿蒙 capi-native-avbuffer-h

2026-08-25 浏览 (1)

native_avbuffer.h

概述

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

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

库: libnative_media_core.so

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

起始版本: 11

相关模块: Core

相关示例: AVCodec

汇总

结构体

名称typedef关键字描述
OH_AVBufferOH_AVBuffer为媒体内存接口定义native层对象。
OH_NativeBufferOH_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()

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()

OH_AVErrCode OH_AVBuffer_Destroy(OH_AVBuffer *buffer)

描述

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

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

起始版本: 11

参数:

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

返回:

类型说明
OH_AVErrCodeAV_ERR_OK:操作成功。
AV_ERR_INVALID_VAL:输入的buffer为空指针或者buffer格式校验失败。
AV_ERR_OPERATE_NOT_PERMIT:输入的buffer不是用户创建的。

OH_AVBuffer_GetBufferAttr()

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_AVErrCodeAV_ERR_OK:操作成功。
AV_ERR_INVALID_VAL:可能的原因:
1. 输入的buffer或attr为空指针。
2. buffer结构校验失败。

OH_AVBuffer_SetBufferAttr()

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_AVErrCodeAV_ERR_OK:操作成功。
AV_ERR_INVALID_VAL:可能的原因:
1. 输入的buffer或attr为空指针。
2. buffer结构校验失败。
3. 输入buffer中内存的size或offset是无效值。

OH_AVBuffer_GetParameter()

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 *AV_ERR_OK:操作成功。
AV_ERR_INVALID_VAL:可能的原因:
1. 输入的buffer为空指针。
2. 输入buffer的meta为空指针。
3. buffer结构校验失败。

OH_AVBuffer_SetParameter()

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_AVErrCodeAV_ERR_OK:操作成功。
AV_ERR_INVALID_VAL:可能的原因:
1. 输入的buffer或format为空指针。
2. 输入buffer的meta为空指针。
3. buffer结构校验失败。

OH_AVBuffer_GetAddr()

uint8_t *OH_AVBuffer_GetAddr(OH_AVBuffer *buffer)

描述

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

不同场景下,对是否可以获取虚拟地址的支持情况不同,请见表格:

编码:

模式填充数据的方式是否可以获取虚拟地址
Surface模式OnNeedInputBuffer输入×
Surface模式OnNewOutputBuffer输出
Buffer模式OnNeedInputBuffer输入
Buffer模式OnNewOutputBuffer输出

解码:

模式填充数据的方式是否可以获取虚拟地址
Surface模式OnNeedInputBuffer输入
Surface模式OnNewOutputBuffer输出×
Buffer模式OnNeedInputBuffer输入
Buffer模式OnNewOutputBuffer输出

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

起始版本: 11

参数:

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

返回:

类型说明
uint8_t *如果成功,则返回数据缓冲区的虚拟地址,如果失败,则返回NULL。
可能的失败原因:
1.输入的buffer为空指针。
2.OH_AVBuffer结构校验失败。
3.出现内部错误。

OH_AVBuffer_GetCapacity()

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()

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.出现内部错误。

你可能感兴趣的鸿蒙文章

openharmony 鸿蒙 capi-native-avcodec-audiocodec-h

openharmony 鸿蒙 capi-avsource-oh-avsource

openharmony 鸿蒙 capi-native-cencinfo-h

openharmony 鸿蒙 capi-avmuxer

openharmony 鸿蒙 capi-multimedia-drm-oh-avcencinfo

openharmony 鸿蒙 capi-native-avdemuxer-h

openharmony 鸿蒙 capi-media-types-h

openharmony 鸿蒙 capi-native-audio-channel-layout-h

openharmony 鸿蒙 capi-native-avbuffer-info-h

openharmony 鸿蒙 capi-codecbase-oh-avcodecasynccallback

  • 所属分类: 后端技术
  • 本文标签: 软件 鸿蒙
  • 版权声明: 本文链接 https://seaxiang.com/blog/uXWCqo1D