56 #ifndef NV_VPI_IMAGE_H
57 #define NV_VPI_IMAGE_H
111 typedef struct VPIImagePlanePitchLinearRec
146 #define VPI_MAX_PLANE_COUNT (6)
149 typedef struct VPIImageBufferPitchLinearRec
198 typedef void *EGLImageKHR;
199 typedef struct cudaArray *cudaArray_t;
203 typedef union VPIImageBufferRec
233 typedef struct VPIImageDataRec
VPIImageBuffer buffer
存储图像内容。
VPIImageBufferPitchLinear pitch
以 pitch-linear 布局存储的图像。
EGLImageKHR egl
图像存储为 EGLImageKHR。
VPIImageFormat format
图像格式。
VPIPixelType pixelType
此平面内每个像素的类型。
VPIColorSpec colorSpec
颜色规格,用于覆盖 VPIImageData 包装器定义的规格。
VPIImageBufferType bufferType
图像缓冲区类型。
int fd
图像存储为 NvBuffer 文件描述符。
int32_t height
此平面的高度,以像素为单位。
cudaArray_t cudaarray
图像存储在 cudaArray_t 中。
int32_t width
此平面的宽度,以像素为单位。
int32_t pitchBytes
一行开始与前一行开始之间的字节差。
#define VPI_MAX_PLANE_COUNT
一个图像可以拥有的最大数据平面数。
void vpiImageDestroy(VPIImage img)
销毁图像实例。
struct VPIImageImpl * VPIImage
图像的句柄。
VPIStatus vpiImageCreateView(VPIImage imgParent, const VPIRectangleI *clipBounds, uint64_t flags, VPIImage *imgView)
创建一个图像,该图像包装现有图像的轴对齐矩形子区域。
VPIStatus vpiImageCreateWrapper(const VPIImageData *data, const VPIImageWrapperParams *params, uint64_t flags, VPIImage *img)
通过包装现有内存块创建图像对象。
VPIStatus vpiImageLock(VPIImage img, VPILockMode mode)
获取图像对象的锁。
VPIStatus vpiImageLockData(VPIImage img, VPILockMode mode, VPIImageBufferType bufType, VPIImageData *data)
获取图像对象的锁并返回图像内容。
VPIStatus vpiInitImageWrapperParams(VPIImageWrapperParams *params)
使用默认值初始化 VPIImageWrapperParams。
VPIStatus vpiImageSetView(VPIImage view, VPIImage parent, const VPIRectangleI *clipBounds)
重新定义父图像内的图像视图位置。
VPIImageBufferType
表示图像数据的存储方式。
VPIStatus vpiImageSetWrapper(VPIImage img, const VPIImageData *data)
重新定义现有 VPIImage 包装器中的包装内存。
VPIStatus vpiImageGetFlags(VPIImage img, uint64_t *flags)
获取图像标志。
VPIStatus vpiImageGetFormat(VPIImage img, VPIImageFormat *format)
获取图像格式。
VPIStatus vpiImageCreate(int32_t width, int32_t height, VPIImageFormat fmt, uint64_t flags, VPIImage *img)
使用指定的标志创建空的图像实例。
VPIStatus vpiImageGetSize(VPIImage img, int32_t *width, int32_t *height)
以像素为单位获取图像尺寸。
VPIStatus vpiImageUnlock(VPIImage img)
释放图像对象的锁。
@ VPI_IMAGE_BUFFER_CUDA_PITCH_LINEAR
可 CUDA 访问,平面采用 pitch-linear 内存布局。
@ VPI_IMAGE_BUFFER_HOST_PITCH_LINEAR
主机可访问,平面采用 pitch-linear 内存布局。
@ VPI_IMAGE_BUFFER_INVALID
无效的缓冲区类型。
@ VPI_IMAGE_BUFFER_EGLIMAGE
EGLImage。
@ VPI_IMAGE_BUFFER_NVBUFFER
NvBuffer。
@ VPI_IMAGE_BUFFER_CUDA_ARRAY
缓冲区存储在 cudaArray_t 中。
表示 pitch-linear 布局中的一个图像平面。
VPILockMode
定义内存锁定功能使用的锁定模式。