openharmony 鸿蒙 capi-native-buffer-h

2025-06-12 浏览 (1)

native_buffer.h

概述

定义获取和使用NativeBuffer的相关函数。

引用文件: <native_buffer/native_buffer.h>

库: libnative_buffer.so

系统能力: SystemCapability.Graphic.Graphic2D.NativeBuffer

起始版本: 9

相关模块: OH_NativeBuffer

汇总

结构体

名称typedef关键字描述
OH_NativeBuffer_ConfigOH_NativeBuffer_ConfigOH_NativeBuffer的属性配置,用于申请新的OH_NativeBuffer实例或查询现有实例的相关属性。
OH_NativeBuffer_PlaneOH_NativeBuffer_Plane单个图像平面格式信息。
OH_NativeBuffer_PlanesOH_NativeBuffer_PlanesOH_NativeBuffer的图像平面格式信息。
OH_NativeBufferOH_NativeBuffer提供OH_NativeBuffer结构体声明。

枚举

名称typedef关键字描述
OH_NativeBuffer_UsageOH_NativeBuffer_UsageOH_NativeBuffer的用途。
OH_NativeBuffer_FormatOH_NativeBuffer_FormatOH_NativeBuffer的格式。
OH_NativeBuffer_TransformTypeOH_NativeBuffer_TransformTypeOH_NativeBuffer的转换类型。
OH_NativeBuffer_ColorGamutOH_NativeBuffer_ColorGamutOH_NativeBuffer的色域。

函数

名称描述
OH_NativeBuffer* OH_NativeBuffer_Alloc(const OH_NativeBuffer_Config* config)通过OH_NativeBuffer_Config创建OH_NativeBuffer实例,每次调用都会产生一个新的OH_NativeBuffer实例。
本接口需要与OH_NativeBuffer_Unreference接口配合使用,否则会存在内存泄露。
本接口为非线程安全类型接口。
int32_t OH_NativeBuffer_Reference(OH_NativeBuffer *buffer)将OH_NativeBuffer对象的引用计数加1。
本接口需要与OH_NativeBuffer_Unreference接口配合使用,否则会存在内存泄露。
本接口为非线程安全类型接口。
int32_t OH_NativeBuffer_Unreference(OH_NativeBuffer *buffer)将OH_NativeBuffer对象的引用计数减1,当引用计数为0的时候,该NativeBuffer对象会被析构掉。
本接口为非线程安全类型接口。
void OH_NativeBuffer_GetConfig(OH_NativeBuffer buffer, OH_NativeBuffer_Config config)用于获取OH_NativeBuffer的属性。
本接口为非线程安全类型接口。
int32_t OH_NativeBuffer_Map(OH_NativeBuffer *buffer, void **virAddr)将OH_NativeBuffer对应的ION内存映射到进程空间。
本接口需要与OH_NativeBuffer_Unmap接口配合使用。
本接口为非线程安全类型接口。
int32_t OH_NativeBuffer_Unmap(OH_NativeBuffer *buffer)将OH_NativeBuffer对应的ION内存从进程空间移除。
本接口为非线程安全类型接口。
uint32_t OH_NativeBuffer_GetSeqNum(OH_NativeBuffer *buffer)获取OH_NativeBuffer的序列号。
本接口为非线程安全类型接口。
int32_t OH_NativeBuffer_SetColorSpace(OH_NativeBuffer *buffer, OH_NativeBuffer_ColorSpace colorSpace)为OH_NativeBuffer设置颜色空间属性。
本接口为非线程安全类型接口。
int32_t OH_NativeBuffer_MapPlanes(OH_NativeBuffer *buffer, void **virAddr, OH_NativeBuffer_Planes *outPlanes)将OH_NativeBuffer对应的多通道ION内存映射到进程空间。
本接口为非线程安全类型接口。
int32_t OH_NativeBuffer_FromNativeWindowBuffer(OHNativeWindowBuffer *nativeWindowBuffer, OH_NativeBuffer **buffer)将OHNativeWindowBuffer实例转换为OH_NativeBuffer实例。
本接口为非线程安全类型接口。
int32_t OH_NativeBuffer_GetColorSpace(OH_NativeBuffer *buffer, OH_NativeBuffer_ColorSpace *colorSpace)获取OH_NativeBuffer颜色空间属性。
本接口为非线程安全类型接口。
int32_t OH_NativeBuffer_SetMetadataValue(OH_NativeBuffer *buffer, OH_NativeBuffer_MetadataKey metadataKey,int32_t size, uint8_t *metadata)为OH_NativeBuffer设置元数据属性值。
本接口为非线程安全类型接口。
int32_t OH_NativeBuffer_GetMetadataValue(OH_NativeBuffer *buffer, OH_NativeBuffer_MetadataKey metadataKey,int32_t *size, uint8_t **metadata)获取OH_NativeBuffer元数据属性值。
本接口为非线程安全类型接口。

枚举类型说明

OH_NativeBuffer_Usage

enum OH_NativeBuffer_Usage

描述

OH_NativeBuffer的用途。

系统能力: SystemCapability.Graphic.Graphic2D.NativeBuffer

起始版本: 10

枚举项描述
NATIVEBUFFER_USAGE_CPU_READ = (1ULL << 0)CPU可读。
NATIVEBUFFER_USAGE_CPU_WRITE = (1ULL << 1)CPU可写。
NATIVEBUFFER_USAGE_MEM_DMA = (1ULL << 3)直接内存访问缓冲区。
NATIVEBUFFER_USAGE_MEM_MMZ_CACHE = (1ULL << 5)媒体内存区域缓存。
起始版本: 20
NATIVEBUFFER_USAGE_HW_RENDER = (1ULL << 8)GPU可写。
起始版本: 12
NATIVEBUFFER_USAGE_HW_TEXTURE = (1ULL << 9)GPU可读。
起始版本: 12
NATIVEBUFFER_USAGE_CPU_READ_OFTEN = (1ULL << 16)CPU可直接映射。
起始版本: 12
NATIVEBUFFER_USAGE_ALIGNMENT_512 = (1ULL << 18)512字节对齐。
起始版本: 12

OH_NativeBuffer_Format

enum OH_NativeBuffer_Format

描述

OH_NativeBuffer的格式。

系统能力: SystemCapability.Graphic.Graphic2D.NativeBuffer

起始版本: 10

枚举项描述
NATIVEBUFFER_PIXEL_FMT_CLUT8 = 0CLUT8格式。
起始版本: 12
NATIVEBUFFER_PIXEL_FMT_CLUT1CLUT1格式。
起始版本: 12
NATIVEBUFFER_PIXEL_FMT_CLUT4CLUT4格式。
起始版本: 12
NATIVEBUFFER_PIXEL_FMT_RGB_565 = 3RGB565格式。
NATIVEBUFFER_PIXEL_FMT_RGBA_5658RGBA5658格式。
NATIVEBUFFER_PIXEL_FMT_RGBX_4444RGBX4444格式。
NATIVEBUFFER_PIXEL_FMT_RGBA_4444RGBA4444格式。
NATIVEBUFFER_PIXEL_FMT_RGB_444RGB444格式。
NATIVEBUFFER_PIXEL_FMT_RGBX_5551RGBX5551格式。
NATIVEBUFFER_PIXEL_FMT_RGBA_5551RGBA5551格式。
NATIVEBUFFER_PIXEL_FMT_RGB_555RGB555格式。
NATIVEBUFFER_PIXEL_FMT_RGBX_8888RGBX8888格式。
NATIVEBUFFER_PIXEL_FMT_RGBA_8888RGBA8888格式。
NATIVEBUFFER_PIXEL_FMT_RGB_888RGB888格式。
NATIVEBUFFER_PIXEL_FMT_BGR_565BGR565格式。
NATIVEBUFFER_PIXEL_FMT_BGRX_4444BGRX4444格式。
NATIVEBUFFER_PIXEL_FMT_BGRA_4444BGRA4444格式。
NATIVEBUFFER_PIXEL_FMT_BGRX_5551BGRX5551格式。
NATIVEBUFFER_PIXEL_FMT_BGRA_5551BGRA5551格式。
NATIVEBUFFER_PIXEL_FMT_BGRX_8888BGRX8888格式。
NATIVEBUFFER_PIXEL_FMT_BGRA_8888BGRA8888格式。
NATIVEBUFFER_PIXEL_FMT_YUV_422_IYUV422 interleaved 格式。
起始版本: 12
NATIVEBUFFER_PIXEL_FMT_YCBCR_422_SPYCBCR422 semi-planar 格式。
起始版本: 12
NATIVEBUFFER_PIXEL_FMT_YCRCB_422_SPYCRCB422 semi-planar 格式。
起始版本: 12
NATIVEBUFFER_PIXEL_FMT_YCBCR_420_SPYCBCR420 semi-planar 格式。
起始版本: 12
NATIVEBUFFER_PIXEL_FMT_YCRCB_420_SPYCRCB420 semi-planar 格式。
起始版本: 12
NATIVEBUFFER_PIXEL_FMT_YCBCR_422_PYCBCR422 planar 格式。
起始版本: 12
NATIVEBUFFER_PIXEL_FMT_YCRCB_422_PYCRCB422 planar 格式。
起始版本: 12
NATIVEBUFFER_PIXEL_FMT_YCBCR_420_PYCBCR420 planar 格式。
起始版本: 12
NATIVEBUFFER_PIXEL_FMT_YCRCB_420_PYCRCB420 planar 格式。
起始版本: 12
NATIVEBUFFER_PIXEL_FMT_YUYV_422_PKGYUYV422 packed 格式。
起始版本: 12
NATIVEBUFFER_PIXEL_FMT_UYVY_422_PKGUYVY422 packed 格式。
起始版本: 12
NATIVEBUFFER_PIXEL_FMT_YVYU_422_PKGYVYU422 packed 格式。
起始版本: 12
NATIVEBUFFER_PIXEL_FMT_VYUY_422_PKGVYUY422 packed 格式。
起始版本: 12
NATIVEBUFFER_PIXEL_FMT_RGBA_1010102RGBA_1010102 packed 格式。
NATIVEBUFFER_PIXEL_FMT_YCBCR_P010YCBCR420 semi-planar 10bit packed 格式。
NATIVEBUFFER_PIXEL_FMT_YCRCB_P010YCRCB420 semi-planar 10bit packed 格式。
NATIVEBUFFER_PIXEL_FMT_RAW10Raw 10bit packed 格式。
NATIVEBUFFER_PIXEL_FMT_BLOBBLOB格式。
起始版本: 15
NATIVEBUFFER_PIXEL_FMT_RGBA16_FLOATRGBA16 float格式。
起始版本: 15
NATIVEBUFFER_PIXEL_FMT_Y8 = 40Y8格式。
起始版本: 20
NATIVEBUFFER_PIXEL_FMT_Y16 = 41Y16格式。
起始版本: 20
NATIVEBUFFER_PIXEL_FMT_VENDER_MASK = 0X7FFF0000vender mask 格式。
起始版本: 12
NATIVEBUFFER_PIXEL_FMT_BUTT = 0X7FFFFFFF无效格式。

OH_NativeBuffer_TransformType

enum OH_NativeBuffer_TransformType

描述

OH_NativeBuffer的转换类型。

系统能力: SystemCapability.Graphic.Graphic2D.NativeBuffer

起始版本: 12

枚举项描述
NATIVEBUFFER_ROTATE_NONE = 0不旋转。
NATIVEBUFFER_ROTATE_90旋转90度。
NATIVEBUFFER_ROTATE_180旋转180度。
NATIVEBUFFER_ROTATE_270旋转270度。
NATIVEBUFFER_FLIP_H水平翻转。
NATIVEBUFFER_FLIP_V垂直翻转。
NATIVEBUFFER_FLIP_H_ROT90水平翻转并旋转90度。
NATIVEBUFFER_FLIP_V_ROT90垂直翻转并旋转90度。
NATIVEBUFFER_FLIP_H_ROT180水平翻转并旋转180度。
NATIVEBUFFER_FLIP_V_ROT180垂直翻转并旋转180度。
NATIVEBUFFER_FLIP_H_ROT270水平翻转并旋转270度。
NATIVEBUFFER_FLIP_V_ROT270垂直翻转并旋转270度。

OH_NativeBuffer_ColorGamut

enum OH_NativeBuffer_ColorGamut

描述

OH_NativeBuffer的色域。

系统能力: SystemCapability.Graphic.Graphic2D.NativeBuffer

起始版本: 12

枚举项描述
NATIVEBUFFER_COLOR_GAMUT_NATIVE = 0默认色域格式。
NATIVEBUFFER_COLOR_GAMUT_STANDARD_BT601 = 1Standard BT601色域格式。
NATIVEBUFFER_COLOR_GAMUT_STANDARD_BT709 = 2Standard BT709色域格式。
NATIVEBUFFER_COLOR_GAMUT_DCI_P3 = 3DCI P3色域格式。
NATIVEBUFFER_COLOR_GAMUT_SRGB = 4SRGB色域格式。
NATIVEBUFFER_COLOR_GAMUT_ADOBE_RGB = 5Adobe RGB色域格式。
NATIVEBUFFER_COLOR_GAMUT_DISPLAY_P3 = 6Display P3色域格式。
NATIVEBUFFER_COLOR_GAMUT_BT2020 = 7BT2020色域格式。
NATIVEBUFFER_COLOR_GAMUT_BT2100_PQ = 8BT2100 PQ色域格式。
NATIVEBUFFER_COLOR_GAMUT_BT2100_HLG = 9BT2100 HLG色域格式。
NATIVEBUFFER_COLOR_GAMUT_DISPLAY_BT2020 = 10Display BT2020色域格式。

函数说明

OH_NativeBuffer_Alloc()

OH_NativeBuffer* OH_NativeBuffer_Alloc(const OH_NativeBuffer_Config* config)

描述

通过OH_NativeBuffer_Config创建OH_NativeBuffer实例,每次调用都会产生一个新的OH_NativeBuffer实例。
本接口需要与OH_NativeBuffer_Unreference接口配合使用,否则会存在内存泄露。
本接口为非线程安全类型接口。

系统能力: SystemCapability.Graphic.Graphic2D.NativeBuffer

起始版本: 9

参数:

参数项描述
const OH_NativeBuffer_Config* config一个指向OH_NativeBuffer_Config类型的指针。

返回:

类型说明
OH_NativeBuffer*创建成功则返回一个指向OH_NativeBuffer结构体实例的指针,否则返回NULL。

OH_NativeBuffer_Reference()

int32_t OH_NativeBuffer_Reference(OH_NativeBuffer *buffer)

描述

将OH_NativeBuffer对象的引用计数加1。
本接口需要与OH_NativeBuffer_Unreference接口配合使用,否则会存在内存泄露。
本接口为非线程安全类型接口。

系统能力: SystemCapability.Graphic.Graphic2D.NativeBuffer

起始版本: 9

参数:

参数项描述
OH_NativeBuffer *buffer一个指向OH_NativeBuffer实例的指针。

返回:

类型说明
int32_t返回值为0表示执行成功,其他返回值可参考OHNativeErrorCode

OH_NativeBuffer_Unreference()

int32_t OH_NativeBuffer_Unreference(OH_NativeBuffer *buffer)

描述

将OH_NativeBuffer对象的引用计数减1,当引用计数为0的时候,该NativeBuffer对象会被析构掉。
本接口为非线程安全类型接口。

系统能力: SystemCapability.Graphic.Graphic2D.NativeBuffer

起始版本: 9

参数:

参数项描述
OH_NativeBuffer *buffer一个指向OH_NativeBuffer实例的指针。

返回:

类型说明
int32_t返回值为0表示执行成功,其他返回值可参考OHNativeErrorCode

OH_NativeBuffer_GetConfig()

void OH_NativeBuffer_GetConfig(OH_NativeBuffer *buffer, OH_NativeBuffer_Config* config)

描述

用于获取OH_NativeBuffer的属性。
本接口为非线程安全类型接口。

系统能力: SystemCapability.Graphic.Graphic2D.NativeBuffer

起始版本: 9

参数:

参数项描述
OH_NativeBuffer *buffer一个指向OH_NativeBuffer实例的指针。
OH_NativeBuffer_Config* config一个指向OH_NativeBuffer_Config的指针,用于接收OH_NativeBuffer的属性。

OH_NativeBuffer_Map()

int32_t OH_NativeBuffer_Map(OH_NativeBuffer *buffer, void **virAddr)

描述

将OH_NativeBuffer对应的ION内存映射到进程空间。
本接口需要与OH_NativeBuffer_Unmap接口配合使用。
本接口为非线程安全类型接口。

系统能力: SystemCapability.Graphic.Graphic2D.NativeBuffer

起始版本: 9

参数:

参数项描述
OH_NativeBuffer *buffer一个指向OH_NativeBuffer实例的指针。
void **virAddr一个二级指针,二级指针指向映射到当前进程的虚拟内存的地址。

返回:

类型说明
int32_t返回值为0表示执行成功,其他返回值可参考OHNativeErrorCode

OH_NativeBuffer_Unmap()

int32_t OH_NativeBuffer_Unmap(OH_NativeBuffer *buffer)

描述

将OH_NativeBuffer对应的ION内存从进程空间移除。
本接口为非线程安全类型接口。

系统能力: SystemCapability.Graphic.Graphic2D.NativeBuffer

起始版本: 9

参数:

参数项描述
OH_NativeBuffer *buffer一个指向OH_NativeBuffer实例的指针。

返回:

类型说明
int32_t返回值为0表示执行成功,其他返回值可参考OHNativeErrorCode

OH_NativeBuffer_GetSeqNum()

uint32_t OH_NativeBuffer_GetSeqNum(OH_NativeBuffer *buffer)

描述

获取OH_NativeBuffer的序列号。
本接口为非线程安全类型接口。

系统能力: SystemCapability.Graphic.Graphic2D.NativeBuffer

起始版本: 9

参数:

参数项描述
OH_NativeBuffer *buffer一个指向OH_NativeBuffer实例的指针。

返回:

类型说明
uint32_t返回对应OH_NativeBuffer的唯一序列号。

OH_NativeBuffer_SetColorSpace()

int32_t OH_NativeBuffer_SetColorSpace(OH_NativeBuffer *buffer, OH_NativeBuffer_ColorSpace colorSpace)

描述

为OH_NativeBuffer设置颜色空间属性。
本接口为非线程安全类型接口。

系统能力: SystemCapability.Graphic.Graphic2D.NativeBuffer

起始版本: 11

参数:

参数项描述
OH_NativeBuffer *buffer一个指向OH_NativeBuffer实例的指针。
OH_NativeBuffer_ColorSpace colorSpace为OH_NativeBuffer设置的颜色空间,其值从OH_NativeBuffer_ColorSpace获取。

返回:

类型说明
int32_t返回值为0表示执行成功,其他返回值可参考OHNativeErrorCode

OH_NativeBuffer_MapPlanes()

int32_t OH_NativeBuffer_MapPlanes(OH_NativeBuffer *buffer, void **virAddr, OH_NativeBuffer_Planes *outPlanes)

描述

将OH_NativeBuffer对应的多通道ION内存映射到进程空间。
本接口为非线程安全类型接口。

系统能力: SystemCapability.Graphic.Graphic2D.NativeBuffer

起始版本: 12

参数:

参数项描述
OH_NativeBuffer *buffer一个指向OH_NativeBuffer实例的指针。
void **virAddr一个二级指针,二级指针指向映射到当前进程的虚拟内存的地址。
OH_NativeBuffer_Planes *outPlanes一个指向所有图像平面格式信息的指针。

返回:

类型说明
int32_t返回值为0表示执行成功,其他返回值可参考OHNativeErrorCode

OH_NativeBuffer_FromNativeWindowBuffer()

int32_t OH_NativeBuffer_FromNativeWindowBuffer(OHNativeWindowBuffer *nativeWindowBuffer, OH_NativeBuffer **buffer)

描述

将OHNativeWindowBuffer实例转换为OH_NativeBuffer实例。
本接口为非线程安全类型接口。

系统能力: SystemCapability.Graphic.Graphic2D.NativeBuffer

起始版本: 12

参数:

参数项描述
OHNativeWindowBuffer *nativeWindowBuffer一个指向OHNativeWindowBuffer实例的指针。
OH_NativeBuffer **buffer一个指向OH_NativeBuffer实例的指针。

返回:

类型说明
int32_t返回值为0表示执行成功,其他返回值可参考OHNativeErrorCode

OH_NativeBuffer_GetColorSpace()

int32_t OH_NativeBuffer_GetColorSpace(OH_NativeBuffer *buffer, OH_NativeBuffer_ColorSpace *colorSpace)

描述

获取OH_NativeBuffer颜色空间属性。
本接口为非线程安全类型接口。

系统能力: SystemCapability.Graphic.Graphic2D.NativeBuffer

起始版本: 12

参数:

参数项描述
OH_NativeBuffer *buffer一个指向OH_NativeBuffer实例的指针。
OH_NativeBuffer_ColorSpace *colorSpaceOH_NativeBuffer设置的颜色空间,其值从OH_NativeBuffer_ColorSpace获取。

返回:

类型说明
int32_t返回值为0表示执行成功,其他返回值可参考OHNativeErrorCode

OH_NativeBuffer_SetMetadataValue()

int32_t OH_NativeBuffer_SetMetadataValue(OH_NativeBuffer *buffer, OH_NativeBuffer_MetadataKey metadataKey,int32_t size, uint8_t *metadata)

描述

为OH_NativeBuffer设置元数据属性值。
本接口为非线程安全类型接口。

系统能力: SystemCapability.Graphic.Graphic2D.NativeBuffer

起始版本: 12

参数:

参数项描述
OH_NativeBuffer *buffer一个指向OH_NativeBuffer实例的指针。
OH_NativeBuffer_MetadataKey metadataKeyOH_NativeBuffer的元数据类型,其值从OH_NativeBuffer_MetadataKey获取。
int32_t sizeuint8_t向量的大小,其取值范围参考OH_NativeBuffer_MetadataKey
metaData指向uint8_t向量的指针。

返回:

类型说明
int32_t返回值为0表示执行成功,其他返回值可参考OHNativeErrorCode

OH_NativeBuffer_GetMetadataValue()

int32_t OH_NativeBuffer_GetMetadataValue(OH_NativeBuffer *buffer, OH_NativeBuffer_MetadataKey metadataKey,int32_t *size, uint8_t **metadata)

描述

获取OH_NativeBuffer元数据属性值。
本接口为非线程安全类型接口。

系统能力: SystemCapability.Graphic.Graphic2D.NativeBuffer

起始版本: 12

参数:

参数项描述
OH_NativeBuffer *buffer一个指向OH_NativeBuffer实例的指针。
OH_NativeBuffer_MetadataKey metadataKeyOH_NativeBuffer的元数据类型,其值从OH_NativeBuffer_MetadataKey获取。
int32_t *sizeuint8_t向量的大小,其取值范围参考OH_NativeBuffer_MetadataKey
metaData指向uint8_t向量的二级指针。

返回:

类型说明
int32_t返回值为0表示执行成功,其他返回值可参考OHNativeErrorCode

你可能感兴趣的鸿蒙文章

harmony 鸿蒙ArkGraphics 2D(方舟2D图形服务)

harmony 鸿蒙buffer_common.h

harmony 鸿蒙buffer_handle.h

harmony 鸿蒙BufferHandle

harmony 鸿蒙ColorSpacePrimaries

harmony 鸿蒙DisplaySoloist_ExpectedRateRange

harmony 鸿蒙drawing_bitmap.h

harmony 鸿蒙drawing_brush.h

harmony 鸿蒙drawing_canvas.h

harmony 鸿蒙drawing_color_filter.h

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