56 #ifndef NV_VPI_ARRAY_H
57 #define NV_VPI_ARRAY_H
155 typedef struct VPIArrayBufferRec
167 typedef struct VPIArrayDataRec
VPIArrayBufferType bufferType
数组缓冲区类型。
VPIArrayBuffer buffer
存储数组内容。
int32_t * sizePointer
指向数组中元素的数量。
VPIArrayBufferAOS aos
以结构体数组布局存储的数组。
int32_t capacity
数组可以容纳的最大元素数量。
int32_t strideBytes
每个数组元素的大小(以字节为单位)。
VPIArrayType type
每个数组元素的类型。
VPIStatus vpiArraySetSize(VPIArray array, int32_t size)
设置数组大小(以元素为单位)。
VPIStatus vpiArrayUnlock(VPIArray array)
释放数组对象的锁。
VPIStatus vpiArrayGetFlags(VPIArray array, uint64_t *flags)
返回数组标志。
VPIStatus vpiArrayLockData(VPIArray array, VPILockMode mode, VPIArrayBufferType bufType, VPIArrayData *data)
获取数组对象的锁并返回数组内容。
VPIStatus vpiArrayCreateWrapper(const VPIArrayData *data, uint64_t flags, VPIArray *array)
通过包装现有的主机内存块来创建数组对象。
void vpiArrayDestroy(VPIArray array)
销毁数组实例。
VPIStatus vpiArrayGetStrideBytes(VPIArray array, int32_t *strideBytes)
返回数组步幅(两个连续元素之间的距离),以字节为单位。
VPIStatus vpiArrayGetType(VPIArray array, VPIArrayType *type)
返回数组类型。
VPIStatus vpiArrayGetSize(VPIArray array, int32_t *size)
返回数组大小(以元素为单位)。
VPIStatus vpiArrayCreate(int32_t capacity, VPIArrayType type, uint64_t flags, VPIArray *array)
创建空数组实例。
VPIStatus vpiArrayLock(VPIArray array, VPILockMode mode)
获取数组对象的锁。
VPIStatus vpiArraySetWrapper(VPIArray array, const VPIArrayData *data)
在现有的 VPIArray 包装器中重新定义包装的内存缓冲区。
VPIArrayBufferType
表示数组数据的存储方式。
struct VPIArrayImpl * VPIArray
数组的句柄。
VPIStatus vpiArrayGetCapacity(VPIArray array, int32_t *capacity)
返回数组容量(以元素为单位)。
@ VPI_ARRAY_BUFFER_INVALID
无效的缓冲区类型。
@ VPI_ARRAY_BUFFER_HOST_AOS
主机可访问的结构体数组。
@ VPI_ARRAY_BUFFER_CUDA_AOS
CUDA 可访问的结构体数组。
VPILockMode
定义内存锁定函数使用的锁定模式。