VPI - 视觉编程接口

3.2 版本

Stream.h
前往此文件的文档。
1 /*
2  * 版权所有 2019-2021 NVIDIA Corporation。保留所有权利。
3  *
4  * 致被许可方须知:
5  *
6  * 此源代码和/或文档(“许可交付物”)受
7  * 美国和国际版权法保护。
8  * 国际版权法保护。
9  *
10  * 此处包含的许可交付物是 NVIDIA 的专有和
11  * 机密信息,并根据 NVIDIA 软件许可协议条款和
12  * 条件提供,该协议由 NVIDIA 与被许可方之间达成(“许可协议”)或经被许可方以电子方式
13  * 之间达成(“许可协议”)或经被许可方以电子方式接受。 尽管许可协议中有任何相反的条款或条件,
14  * 接受。 尽管许可协议中有任何相反的条款或条件,
15  * 但未经 NVIDIA 明确书面同意,不得向任何第三方复制或披露
16  * 但未经 NVIDIA 明确书面同意,不得向任何第三方复制或披露
17  * 许可交付物。
18  *
19  * 尽管许可协议中有任何相反的条款或条件,
20  * 尽管许可协议中有任何相反的条款或条件,NVIDIA 对这些许可交付物用于任何特定用途的适用性不作任何陈述。
21  * NVIDIA 对这些许可交付物用于任何特定用途的适用性不作任何陈述。它们按“原样”提供,不附带任何明示或暗示的担保。
22  * 它们按“原样”提供,不附带任何明示或暗示的担保。
23  * NVIDIA 声明不对这些许可交付物作出任何保证,
24  * 包括对适销性、非侵权性和特定用途适用性的所有默示保证。
25  * 包括对适销性、非侵权性和特定用途适用性的所有默示保证。
26  * 尽管许可协议中有任何相反的条款或条件,
27  * 尽管许可协议中有任何相反的条款或条件,在任何情况下,NVIDIA 均不对任何特殊的、间接的、偶然的或后果性的损害,或任何因使用、数据或利润损失而造成的损害负责,
28  * 在任何情况下,NVIDIA 均不对任何特殊的、间接的、偶然的或后果性的损害,或任何因使用、数据或利润损失而造成的损害负责,无论是在合同诉讼、过失或其他侵权行为中,
29  * 无论是在合同诉讼、过失或其他侵权行为中,均不承担因使用或执行这些许可交付物而引起或与之相关的责任。
30  * 均不承担因使用或执行这些许可交付物而引起或与之相关的责任。
31  *
32  *
33  *
34  * 美国政府最终用户。 这些许可交付物是
35  * “商业项目”,该术语在 48 C.F.R. 2.101(10 月
36  * “商业项目”,该术语在 48 C.F.R. 2.101(10 月 1995 年)中的定义,包括“商业计算机软件”和“商业
37  * 1995 年)中的定义,包括“商业计算机软件”和“商业计算机软件文档”,这些术语在 48
38  * 计算机软件文档”,这些术语在 48 C.F.R. 12.212(1995 年 9 月)中使用,并且仅作为商业最终项目提供给美国政府。
39  * C.F.R. 12.212(1995 年 9 月)中使用,并且仅作为商业最终项目提供给美国政府。与 48 C.F.R. 12.212 和
40  * 与 48 C.F.R. 12.212 和 48 C.F.R. 227.7202-1 至 227.7202-4(1995 年 6 月)一致,所有
41  * 48 C.F.R. 227.7202-1 至 227.7202-4(1995 年 6 月)一致,所有美国政府最终用户均获得许可交付物,
42  * 美国政府最终用户均获得许可交付物,且仅享有此处规定的权利。
43  * 且仅享有此处规定的权利。
44  * 在个人和商业软件中使用许可交付物时,必须在用户文档和代码内部注释中包含上述免责声明和美国政府最终用户须知。
45  * 在用户文档和代码内部
46  * 注释中包含上述免责声明和美国政府最终用户须知。
47  * 用户须知。
48  */
49 
56 #ifndef NV_VPI_STREAM_H
57 #define NV_VPI_STREAM_H
58 
59 #include "Export.h"
60 #include "Status.h"
61 #include "Types.h"
62 #include "Version.h"
63 
81 #ifdef __cplusplus
82 extern "C" {
83 #endif
84 
87 #define VPI_STREAM_GREEDY (1ULL << 63)
115 VPI_PUBLIC VPIStatus vpiStreamCreate(uint64_t flags, VPIStream *stream);
116 
126 VPI_PUBLIC void vpiStreamDestroy(VPIStream stream);
127 
137 VPI_PUBLIC VPIStatus vpiStreamFlush(VPIStream stream);
138 
152 VPI_PUBLIC VPIStatus vpiStreamSync(VPIStream stream);
153 
167 VPI_PUBLIC VPIStatus vpiStreamWaitEvent(VPIStream stream, VPIEvent event);
168 
182 
194 VPI_PUBLIC VPIStatus vpiStreamGetFlags(VPIStream stream, uint64_t *flags);
195 
209 VPI_PUBLIC VPIStatus vpiPayloadGetFlags(VPIPayload payload, uint64_t *flags);
210 
220 VPI_PUBLIC void vpiPayloadDestroy(VPIPayload payload);
221 
222 #ifdef __cplusplus
223 }
224 #endif
225 
228 #endif /* NV_VPI_STREAM_H */
VPI 状态码处理函数的声明。
定义使用 VPI 编程所需的所有类型。
用于处理 VPI 库版本的函数和结构体。
void * VPINativeThreadHandle
操作系统特定线程句柄。
定义位置: Types.h:226
struct VPIEventImpl * VPIEvent
事件句柄。
定义位置: Types.h:244
struct VPIPayloadImpl * VPIPayload
算法负载句柄。
定义位置: Types.h:268
void vpiPayloadDestroy(VPIPayload payload)
释放负载对象和所有相关的资源。
VPIStatus vpiPayloadGetFlags(VPIPayload payload, uint64_t *flags)
返回与负载关联的标志。
VPIStatus
状态码。
定义位置: Status.h:81
VPIStatus vpiStreamGetFlags(VPIStream stream, uint64_t *flags)
获取在 VPIStream 创建期间传递的标志。
struct VPIStreamImpl * VPIStream
流句柄。
定义位置: Types.h:250
VPIStatus vpiStreamWaitEvent(VPIStream stream, VPIEvent event)
推送一个命令,该命令会阻止处理提交到流的所有未来命令,直到...
VPIStatus vpiStreamSync(VPIStream stream)
阻塞调用线程,直到此流队列中所有已提交的命令都完成(队列为空)。..
void vpiStreamDestroy(VPIStream stream)
销毁流实例并释放所有硬件资源。
VPIStatus vpiStreamGetThreadHandle(VPIStream stream, VPINativeThreadHandle *handle)
返回后台流处理线程的操作系统特定句柄。
VPIStatus vpiStreamFlush(VPIStream stream)
提交所有挂起的操作以供执行。
VPIStatus vpiStreamCreate(uint64_t flags, VPIStream *stream)
创建流实例。