OH_NativeBuffer
概述
提供NativeBuffer功能,通过提供的接口,可以实现共享内存的申请、使用、属性查询、释放等操作
系统能力: SystemCapability.Graphic.Graphic2D.NativeBuffer
起始版本: 9
汇总
文件
名称 | 描述 |
---|---|
native_buffer.h | 定义获取和使用NativeBuffer的相关函数 引用文件:<native_buffer/native_buffer.h> 库: libnative_buffer.so |
结构体
名称 | 描述 |
---|---|
OH_NativeBuffer_Config | OH_NativeBuffer的属性配置,用于申请新的OH_NativeBuffer实例或查询现有实例的相关属性 |
类型定义
名称 | 描述 |
---|---|
OH_NativeBuffer | 提供OH_NativeBuffer结构体声明 |
枚举
名称 | 描述 |
---|---|
OH_NativeBuffer_Usage { NATIVEBUFFER_USAGE_CPU_READ = (1ULL << 0), NATIVEBUFFER_USAGE_CPU_WRITE = (1ULL << 1), NATIVEBUFFER_USAGE_MEM_DMA = (1ULL << 3) } | OH_NativeBuffer的用途。 |
OH_NativeBuffer_Format { NATIVEBUFFER_PIXEL_FMT_RGB_565 = 3, NATIVEBUFFER_PIXEL_FMT_RGBA_5658, NATIVEBUFFER_PIXEL_FMT_RGBX_4444, NATIVEBUFFER_PIXEL_FMT_RGBA_4444, NATIVEBUFFER_PIXEL_FMT_RGB_444, NATIVEBUFFER_PIXEL_FMT_RGBX_5551, NATIVEBUFFER_PIXEL_FMT_RGBA_5551, NATIVEBUFFER_PIXEL_FMT_RGB_555, NATIVEBUFFER_PIXEL_FMT_RGBX_8888, NATIVEBUFFER_PIXEL_FMT_RGBA_8888, NATIVEBUFFER_PIXEL_FMT_RGB_888, NATIVEBUFFER_PIXEL_FMT_BGR_565, NATIVEBUFFER_PIXEL_FMT_BGRX_4444, NATIVEBUFFER_PIXEL_FMT_BGRA_4444, NATIVEBUFFER_PIXEL_FMT_BGRX_5551, NATIVEBUFFER_PIXEL_FMT_BGRA_5551, NATIVEBUFFER_PIXEL_FMT_BGRX_8888, NATIVEBUFFER_PIXEL_FMT_BGRA_8888, NATIVEBUFFER_PIXEL_FMT_BUTT = 0X7FFFFFFF } |
OH_NativeBuffer的格式。 |
OH_NativeBuffer_ColorSpace { OH_COLORSPACE_NONE, OH_COLORSPACE_BT601_EBU_FULL, OH_COLORSPACE_BT601_SMPTE_C_FULL, OH_COLORSPACE_BT709_FULL, OH_COLORSPACE_BT2020_HLG_FULL, OH_COLORSPACE_BT2020_PQ_FULL, OH_COLORSPACE_BT601_EBU_LIMIT, OH_COLORSPACE_BT601_SMPTE_C_LIMIT, OH_COLORSPACE_BT709_LIMIT, OH_COLORSPACE_BT2020_HLG_LIMIT, OH_COLORSPACE_BT2020_PQ_LIMIT, OH_COLORSPACE_SRGB_FULL, OH_COLORSPACE_P3_FULL, OH_COLORSPACE_P3_HLG_FULL, OH_COLORSPACE_P3_PQ_FULL, OH_COLORSPACE_ADOBERGB_FULL, OH_COLORSPACE_SRGB_LIMIT, OH_COLORSPACE_P3_LIMIT, OH_COLORSPACE_P3_HLG_LIMIT, OH_COLORSPACE_P3_PQ_LIMIT, OH_COLORSPACE_ADOBERGB_LIMIT, OH_COLORSPACE_LINEAR_SRGB, OH_COLORSPACE_LINEAR_BT709, OH_COLORSPACE_LINEAR_P3, OH_COLORSPACE_LINEAR_BT2020, OH_COLORSPACE_DISPLAY_SRGB, OH_COLORSPACE_DISPLAY_P3_SRGB, OH_COLORSPACE_DISPLAY_P3_HLG, OH_COLORSPACE_DISPLAY_P3_PQ, OH_COLORSPACE_DISPLAY_BT2020_SRGB, OH_COLORSPACE_DISPLAY_BT2020_HLG, OH_COLORSPACE_DISPLAY_BT2020_PQ } |
OH_NativeBuffer的颜色空间 |
函数
名称 | 描述 |
---|---|
OH_NativeBuffer_Alloc (const OH_NativeBuffer_Config *config) | 通过OH_NativeBuffer_Config创建OH_NativeBuffer实例,每次调用都会产生一个新的OH_NativeBuffer实例 |
OH_NativeBuffer_Reference (OH_NativeBuffer *buffer) | 将OH_NativeBuffer对象的引用计数加1 |
OH_NativeBuffer_Unreference (OH_NativeBuffer *buffer) | 将OH_NativeBuffer对象的引用计数减1,当引用计数为0的时候,该NativeBuffer对象会被析构掉 |
OH_NativeBuffer_GetConfig (OH_NativeBuffer *buffer, OH_NativeBuffer_Config *config) | 用于获取OH_NativeBuffer的属性 |
OH_NativeBuffer_Map (OH_NativeBuffer *buffer, void **virAddr) | 将OH_NativeBuffer对应的ION内存映射到进程空间 |
OH_NativeBuffer_Unmap (OH_NativeBuffer *buffer) | 将OH_NativeBuffer对应的ION内存从进程空间移除 |
OH_NativeBuffer_GetSeqNum (OH_NativeBuffer *buffer) | 获取OH_NativeBuffer的序列号 |
OH_NativeBuffer_SetColorSpace (OH_NativeBuffer *buffer, OH_NativeBuffer_ColorSpace colorSpace) | 为OH_NativeBuffer设置颜色空间属性 |
类型定义说明
OH_NativeBuffer
typedef struct OH_NativeBufferOH_NativeBuffer
描述
提供OH_NativeBuffer结构体声明
起始版本: 9
枚举类型说明
OH_NativeBuffer_ColorSpace
enum OH_NativeBuffer_ColorSpace
描述
Indicates the color space of a native buffer.
系统能力: SystemCapability.Graphic.Graphic2D.NativeBuffer
起始版本: 11
枚举值 | 描述 |
---|---|
OH_COLORSPACE_NONE | 无颜色空间 |
OH_COLORSPACE_BT601_EBU_FULL | 色域范围为BT601_P, 传递函数为BT709, 转换矩阵为BT601_P, 数据范围为RANGE_FULL |
OH_COLORSPACE_BT601_SMPTE_C_FULL | 色域范围为BT601_N, 传递函数为BT709, 转换矩阵为BT601_N, 数据范围为RANGE_FULL |
OH_COLORSPACE_BT709_FULL | 色域范围为BT709, 传递函数为BT709, 转换矩阵为BT709, 数据范围为RANGE_FULL |
OH_COLORSPACE_BT2020_HLG_FULL | 色域范围为BT2020, 传递函数为HLG, 转换矩阵为BT2020, 数据范围为RANGE_FULL |
OH_COLORSPACE_BT2020_PQ_FULL | 色域范围为BT2020, 传递函数为PQ, 转换矩阵为BT2020, 数据范围为RANGE_FULL |
OH_COLORSPACE_BT601_EBU_LIMIT | 色域范围为BT601_P, 传递函数为BT709, 转换矩阵为BT601_P, 数据范围为RANGE_LIMITED |
OH_COLORSPACE_BT601_SMPTE_C_LIMIT | 色域范围为BT601_N, 传递函数为BT709, 转换矩阵为BT601_N, 数据范围为RANGE_LIMITED |
OH_COLORSPACE_BT709_LIMIT | 色域范围为BT709, 传递函数为BT709, 转换矩阵为BT709, 数据范围为RANGE_LIMITED |
OH_COLORSPACE_BT2020_HLG_LIMIT | 色域范围为BT2020, 传递函数为HLG, 转换矩阵为BT2020, 数据范围为RANGE_LIMITED |
OH_COLORSPACE_BT2020_PQ_LIMIT | 色域范围为BT2020, 传递函数为PQ, 转换矩阵为BT2020, 数据范围为RANGE_LIMITED |
OH_COLORSPACE_SRGB_FULL | 色域范围为SRGB, 传递函数为SRGB, 转换矩阵为BT601_N, 数据范围为RANGE_FULL |
OH_COLORSPACE_P3_FULL | 色域范围为P3_D65, 传递函数为SRGB, 转换矩阵为P3, 数据范围为RANGE_FULL |
OH_COLORSPACE_P3_HLG_FULL | 色域范围为P3_D65, 传递函数为HLG, 转换矩阵为P3, 数据范围为RANGE_FULL |
OH_COLORSPACE_P3_PQ_FULL | 色域范围为P3_D65, 传递函数为PQ, 转换矩阵为P3, 数据范围为RANGE_FULL |
OH_COLORSPACE_ADOBERGB_FULL | 色域范围为ADOBERGB, 传递函数为ADOBERGB, 转换矩阵为ADOBERGB, 数据范围为RANGE_FULL |
OH_COLORSPACE_SRGB_LIMIT | 色域范围为SRGB, 传递函数为SRGB, 转换矩阵为BT601_N, 数据范围为RANGE_LIMITED |
OH_COLORSPACE_P3_LIMIT | 色域范围为P3_D65, 传递函数为SRGB, 转换矩阵为P3, 数据范围为RANGE_LIMITED |
OH_COLORSPACE_P3_HLG_LIMIT | 色域范围为P3_D65, 传递函数为HLG, 转换矩阵为P3, 数据范围为RANGE_LIMITED |
OH_COLORSPACE_P3_PQ_LIMIT | 色域范围为P3_D65, 传递函数为PQ, 转换矩阵为P3, 数据范围为RANGE_LIMITED |
OH_COLORSPACE_ADOBERGB_LIMIT | 色域范围为ADOBERGB, 传递函数为ADOBERGB, 转换矩阵为ADOBERGB, 数据范围为RANGE_LIMITED |
OH_COLORSPACE_LINEAR_SRGB | 色域范围为SRGB, 传递函数为LINEAR |
OH_COLORSPACE_LINEAR_BT709 | 等同于 OH_COLORSPACE_LINEAR_SRGB |
OH_COLORSPACE_LINEAR_P3 | 色域范围为P3_D65, 传递函数为LINEAR |
OH_COLORSPACE_LINEAR_BT2020 | 色域范围为BT2020, 传递函数为LINEAR |
OH_COLORSPACE_DISPLAY_SRGB | 等同于OH_COLORSPACE_SRGB_FULL |
OH_COLORSPACE_DISPLAY_P3_SRGB | 等同于OH_COLORSPACE_P3_FULL |
OH_COLORSPACE_DISPLAY_P3_HLG | 等同于OH_COLORSPACE_P3_HLG_FULL |
OH_COLORSPACE_DISPLAY_P3_PQ | 等同于OH_COLORSPACE_P3_PQ_FULL |
OH_COLORSPACE_DISPLAY_BT2020_SRGB | 色域范围为BT2020, 传递函数为SRGB, 转换矩阵为BT2020, 数据范围为RANGE_FULL |
OH_COLORSPACE_DISPLAY_BT2020_HLG | 等同于OH_COLORSPACE_BT2020_HLG_FULL |
OH_COLORSPACE_DISPLAY_BT2020_PQ | 等同于OH_COLORSPACE_BT2020_PQ_FULL |
OH_NativeBuffer_Format
enum OH_NativeBuffer_Format
描述
OH_NativeBuffer的格式。
系统能力: SystemCapability.Graphic.Graphic2D.NativeBuffer
起始版本: 10
枚举值 | 描述 |
---|---|
NATIVEBUFFER_PIXEL_FMT_RGB_565 | RGB565格式 |
NATIVEBUFFER_PIXEL_FMT_RGBA_5658 | RGBA5658格式 |
NATIVEBUFFER_PIXEL_FMT_RGBX_4444 | RGBX4444格式 |
NATIVEBUFFER_PIXEL_FMT_RGBA_4444 | RGBA4444格式 |
NATIVEBUFFER_PIXEL_FMT_RGB_444 | RGB444格式 |
NATIVEBUFFER_PIXEL_FMT_RGBX_5551 | RGBX5551格式 |
NATIVEBUFFER_PIXEL_FMT_RGBA_5551 | RGBA5551格式 |
NATIVEBUFFER_PIXEL_FMT_RGB_555 | RGB555格式 |
NATIVEBUFFER_PIXEL_FMT_RGBX_8888 | RGBX8888格式 |
NATIVEBUFFER_PIXEL_FMT_RGBA_8888 | RGBA8888格式 |
NATIVEBUFFER_PIXEL_FMT_RGB_888 | RGB888格式 |
NATIVEBUFFER_PIXEL_FMT_BGR_565 | BGR565格式 |
NATIVEBUFFER_PIXEL_FMT_BGRX_4444 | BGRX4444格式 |
NATIVEBUFFER_PIXEL_FMT_BGRA_4444 | BGRA4444格式 |
NATIVEBUFFER_PIXEL_FMT_BGRX_5551 | BGRX5551格式 |
NATIVEBUFFER_PIXEL_FMT_BGRA_5551 | BGRA5551格式 |
NATIVEBUFFER_PIXEL_FMT_BGRX_8888 | BGRX8888格式 |
NATIVEBUFFER_PIXEL_FMT_BGRA_8888 | BGRA8888格式 |
NATIVEBUFFER_PIXEL_FMT_BUTT | 无效格式 |
OH_NativeBuffer_Usage
enum OH_NativeBuffer_Usage
描述
OH_NativeBuffer的用途。
系统能力: SystemCapability.Graphic.Graphic2D.NativeBuffer
起始版本: 10
枚举值 | 描述 |
---|---|
NATIVEBUFFER_USAGE_CPU_READ | CPU可读 |
NATIVEBUFFER_USAGE_CPU_WRITE | CPU可写 |
NATIVEBUFFER_USAGE_MEM_DMA | 直接内存访问缓冲区 |
函数说明
OH_NativeBuffer_Alloc()
OH_NativeBuffer* OH_NativeBuffer_Alloc (const OH_NativeBuffer_Config * config)
描述
通过OH_NativeBuffer_Config创建OH_NativeBuffer实例,每次调用都会产生一个新的OH_NativeBuffer实例
系统能力: SystemCapability.Graphic.Graphic2D.NativeBuffer
起始版本: 9
参数:
名称 | 描述 |
---|---|
config | 一个指向OH_NativeBuffer_Config类型的指针 |
返回:
创建成功则返回一个指向OH_NativeBuffer结构体实例的指针,否则返回NULL
OH_NativeBuffer_GetConfig()
void OH_NativeBuffer_GetConfig (OH_NativeBuffer * buffer, OH_NativeBuffer_Config * config )
描述
用于获取OH_NativeBuffer的属性
系统能力: SystemCapability.Graphic.Graphic2D.NativeBuffer
起始版本: 9
参数:
名称 | 描述 |
---|---|
buffer | 一个指向OH_NativeBuffer实例的指针 |
config | 一个指向OH_NativeBuffer_Config的指针,用于接收OH_NativeBuffer的属性 |
OH_NativeBuffer_GetSeqNum()
uint32_t OH_NativeBuffer_GetSeqNum (OH_NativeBuffer * buffer)
描述
获取OH_NativeBuffer的序列号
系统能力: SystemCapability.Graphic.Graphic2D.NativeBuffer
起始版本: 9
参数:
名称 | 描述 |
---|---|
buffer | 一个指向OH_NativeBuffer实例的指针 |
返回:
返回对应OH_NativeBuffer的唯一序列号
OH_NativeBuffer_Map()
int32_t OH_NativeBuffer_Map (OH_NativeBuffer * buffer, void ** virAddr )
描述
将OH_NativeBuffer对应的ION内存映射到进程空间
系统能力: SystemCapability.Graphic.Graphic2D.NativeBuffer
起始版本: 9
参数:
名称 | 描述 |
---|---|
buffer | 一个指向OH_NativeBuffer实例的指针 |
virAddr | 一个二级指针,二级指针指向映射到当前进程的虚拟内存的地址 |
返回:
返回值为0表示执行成功
OH_NativeBuffer_Reference()
int32_t OH_NativeBuffer_Reference (OH_NativeBuffer * buffer)
描述
将OH_NativeBuffer对象的引用计数加1
系统能力: SystemCapability.Graphic.Graphic2D.NativeBuffer
起始版本: 9
参数:
名称 | 描述 |
---|---|
buffer | 一个指向OH_NativeBuffer实例的指针 |
返回:
返回值为0表示执行成功
OH_NativeBuffer_SetColorSpace()
int32_t OH_NativeBuffer_SetColorSpace (OH_NativeBuffer * buffer, OH_NativeBuffer_ColorSpace colorSpace )
描述
为OH_NativeBuffer设置颜色空间属性
系统能力: SystemCapability.Graphic.Graphic2D.NativeBuffer
起始版本: 11
参数:
名称 | 描述 |
---|---|
buffer | 一个指向OH_NativeBuffer实例的指针 |
colorSpace | 为OH_NativeBuffer设置的颜色空间,其值从OH_NativeBuffer_ColorSpace获取 |
返回:
返回值为0表示执行成功
OH_NativeBuffer_Unmap()
int32_t OH_NativeBuffer_Unmap (OH_NativeBuffer * buffer)
描述
将OH_NativeBuffer对应的ION内存从进程空间移除
系统能力: SystemCapability.Graphic.Graphic2D.NativeBuffer
起始版本: 9
参数:
名称 | 描述 |
---|---|
buffer | 一个指向OH_NativeBuffer实例的指针 |
返回:
返回值为0表示执行成功
OH_NativeBuffer_Unreference()
int32_t OH_NativeBuffer_Unreference (OH_NativeBuffer * buffer)
描述
将OH_NativeBuffer对象的引用计数减1,当引用计数为0的时候,该NativeBuffer对象会被析构掉
系统能力: SystemCapability.Graphic.Graphic2D.NativeBuffer
起始版本: 9
参数:
名称 | 描述 |
---|---|
buffer | 一个指向OH_NativeBuffer实例的指针 |
返回:
返回值为0表示执行成功