VPI - 视觉编程接口

3.2 版本

Array.h
转到此文件的文档。
1 /*
2  * 版权所有 2019-2021 NVIDIA Corporation。保留所有权利。
3  *
4  * 许可方须知:
5  *
6  * 此源代码和/或文档(“许可交付物”)受
7  * 美国和
8  * 国际版权法保护下的 NVIDIA 知识产权约束。
9  *
10  * 此处包含的许可交付物是 NVIDIA 的专有和
11  * 机密信息,并根据 NVIDIA 软件许可协议(以及
12  * NVIDIA 和被许可方之间的协议)(“许可协议”)或电子方式
13  * 被许可方接受的条款和条件提供。
14  * 尽管许可协议中有任何相反的条款或条件,但
15  * 未经 NVIDIA 明确书面同意,不得复制或向任何第三方披露
16  * 许可交付物。
17  *
18  *
19  * 尽管许可协议中有任何相反的条款或条件,但
20  * NVIDIA 对这些许可交付物用于任何特定用途的适用性不作任何陈述。
21  *
22  * 它们按“原样”提供,不附带任何明示或暗示的担保。
23  * NVIDIA 否认与这些许可交付物相关的所有保证,包括所有关于适销性、
24  *
25  * 非侵权和适用于特定用途的默示保证。
26  * 尽管许可协议中有任何相反的条款或条件,但在任何情况下,NVIDIA 均不对任何
27  *
28  * 特殊、间接、附带或后果性损害,或因使用、数据或利润损失而导致的任何
29  *
30  * 损害(无论是在合同诉讼、过失或其他侵权行为中)承担责任,即使这些损害是由于使用或执行
31  *
32  * 这些许可交付物引起的或与之相关的。
33  *
34  * 美国政府最终用户。这些许可交付物是
35  * 48 C.F.R. 2.101(10 月)中定义的“商业项目”,包括“商业计算机软件”和“商业"
36  * 1995), consisting of "commercial computer software" and "commercial
37  * 计算机软件文档”(如 48
38  * C.F.R. 12.212(1995 年 9 月)中所使用的术语),并且仅作为商业最终项目提供给美国政府。
39  * 根据 48 C.F.R. 12.212 和
40  * 48 C.F.R. 227.7202-1 至 227.7202-4(1995 年 6 月),所有
41  * 美国政府最终用户仅获得此处规定的权利来获取许可交付物。
42  *
43  *
44  * 在个人和商业软件中使用许可交付物时,必须在用户文档和内部
45  *
46  * 代码注释中包含上述免责声明和美国政府最终用户须知。
47  * 用户须知。
48  */
49 
56 #ifndef NV_VPI_ARRAY_H
57 #define NV_VPI_ARRAY_H
58 
59 #include "Export.h"
60 #include "Status.h"
61 #include "Types.h"
62 
63 #include <stdint.h>
64 
105 #include "ArrayType.h"
106 
107 #ifdef __cplusplus
108 extern "C" {
109 #endif
110 
115 typedef struct VPIArrayBufferAOS
116 {
119 
122  int32_t *sizePointer;
123 
126  int32_t capacity;
127 
132  int32_t strideBytes;
133 
135  void *data;
137 
139 typedef enum
140 {
144 
147 
150 
152 
155 typedef struct VPIArrayBufferRec
156 {
163 
165 
167 typedef struct VPIArrayDataRec
168 {
173 
176 
177 } VPIArrayData;
178 
214 VPI_PUBLIC VPIStatus vpiArrayCreate(int32_t capacity, VPIArrayType type, uint64_t flags, VPIArray *array);
215 
257 VPI_PUBLIC VPIStatus vpiArrayCreateWrapper(const VPIArrayData *data, uint64_t flags, VPIArray *array);
258 
285 VPI_PUBLIC VPIStatus vpiArraySetWrapper(VPIArray array, const VPIArrayData *data);
286 
297 VPI_PUBLIC void vpiArrayDestroy(VPIArray array);
298 
312 VPI_PUBLIC VPIStatus vpiArrayGetSize(VPIArray array, int32_t *size);
313 
328 VPI_PUBLIC VPIStatus vpiArraySetSize(VPIArray array, int32_t size);
329 
343 VPI_PUBLIC VPIStatus vpiArrayGetCapacity(VPIArray array, int32_t *capacity);
344 
358 VPI_PUBLIC VPIStatus vpiArrayGetStrideBytes(VPIArray array, int32_t *strideBytes);
359 
373 VPI_PUBLIC VPIStatus vpiArrayGetFlags(VPIArray array, uint64_t *flags);
374 
389 
416 VPI_PUBLIC VPIStatus vpiArrayLock(VPIArray array, VPILockMode mode);
417 
460 
477 
478 #ifdef __cplusplus
479 }
480 #endif
481 
484 #endif /* NV_VPI_ARRAY_H */
定义数组类型。
VPI 状态码处理函数的声明。
定义使用 VPI 编程所需的所有类型。
VPIArrayBufferType bufferType
数组缓冲区类型。
定义: Array.h:172
void * data
指向数组的第一个元素。
定义: Array.h:135
VPIArrayBuffer buffer
存储数组内容。
定义: Array.h:175
int32_t * sizePointer
指向数组中元素的数量。
定义: Array.h:122
VPIArrayBufferAOS aos
以结构体数组布局存储的数组。
定义: Array.h:162
int32_t capacity
数组可以容纳的最大元素数量。
定义: Array.h:126
int32_t strideBytes
每个数组元素的大小(以字节为单位)。
定义: Array.h:132
VPIArrayType type
每个数组元素的类型。
定义: Array.h:118
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)
返回数组步幅(两个连续元素之间的距离),以字节为单位。
VPIArrayType
数组元素格式。
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
表示数组数据的存储方式。
定义: Array.h:140
struct VPIArrayImpl * VPIArray
数组的句柄。
定义: Types.h:232
VPIStatus vpiArrayGetCapacity(VPIArray array, int32_t *capacity)
返回数组容量(以元素为单位)。
@ VPI_ARRAY_BUFFER_INVALID
无效的缓冲区类型。
定义: Array.h:143
@ VPI_ARRAY_BUFFER_HOST_AOS
主机可访问的结构体数组。
定义: Array.h:146
@ VPI_ARRAY_BUFFER_CUDA_AOS
CUDA 可访问的结构体数组。
定义: Array.h:149
表示访问数组内容的可用方法。
定义: Array.h:156
存储有关数组特性和内容的信息。
定义: Array.h:116
存储有关数组特性和内容的信息。
定义: Array.h:168
VPIStatus
状态码。
定义: Status.h:81
VPILockMode
定义内存锁定函数使用的锁定模式。
定义: Types.h:614