NVIDIA DeepStream SDK API Reference

8.0 Release
NvBufSurface Types and Functions

Detailed Description

Defines types and functions of NvBufSurface application programming interface.

Data Structures

struct  NvBufSurfacePlaneParamsEx
 Holds plane wise parameters(extended) of a buffer. More...
 
struct  NvBufSurfacePlaneParams
 Holds plane wise parameters of a buffer. More...
 
struct  NvBufSurfaceChromaSubsamplingParams
 Holds Chroma Subsampling parameters for NvBufSurface allocation. More...
 
struct  NvBufSurfaceCreateParams
 Holds parameters required to allocate an NvBufSurface. More...
 
struct  NvBufSurfaceAllocateParams
 Hold extended parameters required to allocate NvBufSurface. More...
 
struct  NvBufSurfaceMappedAddr
 Hold the pointers of mapped buffer. More...
 
struct  NvBufSurfaceParamsEx
 Hold the information(extended) of single buffer in the batch. More...
 
struct  NvBufSurfaceCudaBuffer
 Holds information of CUDA buffer. More...
 
struct  NvBufSurfaceParams
 Hold the information of single buffer in the batch. More...
 
struct  NvBufSurface
 Holds information about batched buffers. More...
 
struct  NvBufSurfaceMapPlaneParams
 Holds plane parameters to map the buffer received from another process. More...
 
struct  NvBufSurfaceCudaIpcMemHandle_t
 CUDA IPC memory handle for NvBufSurface. More...
 
struct  NvBufSurfaceExtendedMapParams_t
 The extended map parameters NvBufSurface. More...
 
struct  NvBufSurfaceMapParams
 Holds buffer parameters to map the buffer received from another process. More...
 
struct  NvBufSurfaceNvmmBuffer
 Holds information about mapped CUDA buffer. More...
 
struct  NvBufSurfaceDeviceInfo
 Holds information about the underlying device. More...
 

Macros

#define STRUCTURE_PADDING   4
 Defines the default padding length for reserved fields of structures. More...
 
#define NVBUF_MAX_PLANES   4
 Defines the maximum number of planes. More...
 
#define NVBUFSURFACE_CHROMA_SUBSAMPLING_HORIZ_DEFAULT   0
 Defines the default values for chroma subsampling. More...
 
#define NVBUFSURFACE_CHROMA_SUBSAMPLING_VERT_DEFAULT   1
 
#define NVBUFSURFACE_CHROMA_SUBSAMPLING_PARAMS_DEFAULT
 

Typedefs

typedef struct NvBufSurfacePlaneParamsEx NvBufSurfacePlaneParamsEx
 Holds plane wise parameters(extended) of a buffer. More...
 
typedef struct NvBufSurfacePlaneParams NvBufSurfacePlaneParams
 Holds plane wise parameters of a buffer. More...
 
typedef struct NvBufSurfaceChromaSubsamplingParams NvBufSurfaceChromaSubsamplingParams
 Holds Chroma Subsampling parameters for NvBufSurface allocation. More...
 
typedef struct NvBufSurfaceCreateParams NvBufSurfaceCreateParams
 Holds parameters required to allocate an NvBufSurface. More...
 
typedef struct NvBufSurfaceAllocateParams NvBufSurfaceAllocateParams
 Hold extended parameters required to allocate NvBufSurface. More...
 
typedef struct NvBufSurfaceMappedAddr NvBufSurfaceMappedAddr
 Hold the pointers of mapped buffer. More...
 
typedef struct NvBufSurfaceParamsEx NvBufSurfaceParamsEx
 Hold the information(extended) of single buffer in the batch. More...
 
typedef struct NvBufSurfaceCudaBuffer NvBufSurfaceCudaBuffer
 Holds information of CUDA buffer. More...
 
typedef struct NvBufSurfaceParams NvBufSurfaceParams
 Hold the information of single buffer in the batch. More...
 
typedef struct NvBufSurface NvBufSurface
 Holds information about batched buffers. More...
 
typedef struct NvBufSurfaceMapPlaneParams NvBufSurfaceMapPlaneParams
 Holds plane parameters to map the buffer received from another process. More...
 
typedef struct NvBufSurfaceCudaIpcMemHandle_t NvBufSurfaceCudaIpcMemHandle
 CUDA IPC memory handle for NvBufSurface. More...
 
typedef struct NvBufSurfaceExtendedMapParams_t NvBufSurfaceExtendedMapParams
 The extended map parameters NvBufSurface. More...
 
typedef struct NvBufSurfaceMapParams NvBufSurfaceMapParams
 Holds buffer parameters to map the buffer received from another process. More...
 
typedef struct NvBufSurfaceNvmmBuffer NvBufSurfaceNvmmBuffer
 Holds information about mapped CUDA buffer. More...
 
typedef struct NvBufSurfaceDeviceInfo NvBufSurfaceDeviceInfo
 Holds information about the underlying device. More...
 

Enumerations

enum  NvBufSurfaceMemMapFlags {
  NVBUF_MAP_READ,
  NVBUF_MAP_WRITE,
  NVBUF_MAP_READ_WRITE
}
 Defines mapping types of NvBufSurface. More...
 
enum  NvBufSurfaceTag {
  NvBufSurfaceTag_NONE = 0x0,
  NvBufSurfaceTag_CAMERA = 0x200,
  NvBufSurfaceTag_JPEG = 0x1500,
  NvBufSurfaceTag_PROTECTED = 0x1504,
  NvBufSurfaceTag_VIDEO_ENC = 0x1200,
  NvBufSurfaceTag_VIDEO_DEC = 0x1400,
  NvBufSurfaceTag_VIDEO_CONVERT = 0xf01
}
 Defines tags that identify the components requesting a memory allocation. More...
 
enum  NvBufSurfaceColorFormat {
  NVBUF_COLOR_FORMAT_INVALID,
  NVBUF_COLOR_FORMAT_GRAY8,
  NVBUF_COLOR_FORMAT_YUV420,
  NVBUF_COLOR_FORMAT_YVU420,
  NVBUF_COLOR_FORMAT_YUV420_ER,
  NVBUF_COLOR_FORMAT_YVU420_ER,
  NVBUF_COLOR_FORMAT_NV12,
  NVBUF_COLOR_FORMAT_NV12_ER,
  NVBUF_COLOR_FORMAT_NV21,
  NVBUF_COLOR_FORMAT_NV21_ER,
  NVBUF_COLOR_FORMAT_UYVY,
  NVBUF_COLOR_FORMAT_UYVY_ER,
  NVBUF_COLOR_FORMAT_VYUY,
  NVBUF_COLOR_FORMAT_VYUY_ER,
  NVBUF_COLOR_FORMAT_YUYV,
  NVBUF_COLOR_FORMAT_YUYV_ER,
  NVBUF_COLOR_FORMAT_YVYU,
  NVBUF_COLOR_FORMAT_YVYU_ER,
  NVBUF_COLOR_FORMAT_YUV444,
  NVBUF_COLOR_FORMAT_RGBA,
  NVBUF_COLOR_FORMAT_BGRA,
  NVBUF_COLOR_FORMAT_ARGB,
  NVBUF_COLOR_FORMAT_ABGR,
  NVBUF_COLOR_FORMAT_RGBx,
  NVBUF_COLOR_FORMAT_BGRx,
  NVBUF_COLOR_FORMAT_xRGB,
  NVBUF_COLOR_FORMAT_xBGR,
  NVBUF_COLOR_FORMAT_RGB,
  NVBUF_COLOR_FORMAT_BGR,
  NVBUF_COLOR_FORMAT_NV12_10LE,
  NVBUF_COLOR_FORMAT_NV12_12LE,
  NVBUF_COLOR_FORMAT_YUV420_709,
  NVBUF_COLOR_FORMAT_YUV420_709_ER,
  NVBUF_COLOR_FORMAT_NV12_709,
  NVBUF_COLOR_FORMAT_NV12_709_ER,
  NVBUF_COLOR_FORMAT_YUV420_2020,
  NVBUF_COLOR_FORMAT_NV12_2020,
  NVBUF_COLOR_FORMAT_NV12_10LE_ER,
  NVBUF_COLOR_FORMAT_NV12_10LE_709,
  NVBUF_COLOR_FORMAT_NV12_10LE_709_ER,
  NVBUF_COLOR_FORMAT_NV12_10LE_2020,
  NVBUF_COLOR_FORMAT_SIGNED_R16G16,
  NVBUF_COLOR_FORMAT_R8_G8_B8,
  NVBUF_COLOR_FORMAT_B8_G8_R8,
  NVBUF_COLOR_FORMAT_R32F_G32F_B32F,
  NVBUF_COLOR_FORMAT_B32F_G32F_R32F,
  NVBUF_COLOR_FORMAT_YUV422,
  NVBUF_COLOR_FORMAT_NV21_10LE,
  NVBUF_COLOR_FORMAT_NV21_12LE,
  NVBUF_COLOR_FORMAT_NV12_12LE_2020,
  NVBUF_COLOR_FORMAT_NV16,
  NVBUF_COLOR_FORMAT_NV16_10LE,
  NVBUF_COLOR_FORMAT_NV24,
  NVBUF_COLOR_FORMAT_NV24_10LE,
  NVBUF_COLOR_FORMAT_NV16_ER,
  NVBUF_COLOR_FORMAT_NV24_ER,
  NVBUF_COLOR_FORMAT_NV16_709,
  NVBUF_COLOR_FORMAT_NV24_709,
  NVBUF_COLOR_FORMAT_NV16_709_ER,
  NVBUF_COLOR_FORMAT_NV24_709_ER,
  NVBUF_COLOR_FORMAT_NV24_10LE_709,
  NVBUF_COLOR_FORMAT_NV24_10LE_709_ER,
  NVBUF_COLOR_FORMAT_NV24_10LE_2020,
  NVBUF_COLOR_FORMAT_NV24_12LE_2020,
  NVBUF_COLOR_FORMAT_RGBA_10_10_10_2_709,
  NVBUF_COLOR_FORMAT_RGBA_10_10_10_2_2020,
  NVBUF_COLOR_FORMAT_BGRA_10_10_10_2_709,
  NVBUF_COLOR_FORMAT_BGRA_10_10_10_2_2020,
  NVBUF_COLOR_FORMAT_A32,
  NVBUF_COLOR_FORMAT_UYVP,
  NVBUF_COLOR_FORMAT_UYVP_ER,
  NVBUF_COLOR_FORMAT_YUV444_ER,
  NVBUF_COLOR_FORMAT_YUV444_709,
  NVBUF_COLOR_FORMAT_YUV444_709_ER,
  NVBUF_COLOR_FORMAT_YUV444_2020,
  NVBUF_COLOR_FORMAT_YUV444_10LE,
  NVBUF_COLOR_FORMAT_YUV444_10LE_ER,
  NVBUF_COLOR_FORMAT_YUV444_10LE_709,
  NVBUF_COLOR_FORMAT_YUV444_10LE_709_ER,
  NVBUF_COLOR_FORMAT_YUV444_10LE_2020,
  NVBUF_COLOR_FORMAT_YUV444_12LE,
  NVBUF_COLOR_FORMAT_YUV444_12LE_ER,
  NVBUF_COLOR_FORMAT_YUV444_12LE_709,
  NVBUF_COLOR_FORMAT_YUV444_12LE_709_ER,
  NVBUF_COLOR_FORMAT_YUV444_12LE_2020,
  NVBUF_COLOR_FORMAT_NV12_12LE_ER,
  NVBUF_COLOR_FORMAT_NV12_12LE_709,
  NVBUF_COLOR_FORMAT_NV12_12LE_709_ER,
  NVBUF_COLOR_FORMAT_GRAY8_ER,
  NVBUF_COLOR_FORMAT_UYVY_709,
  NVBUF_COLOR_FORMAT_UYVY_709_ER,
  NVBUF_COLOR_FORMAT_UYVY_2020,
  NVBUF_COLOR_FORMAT_GRAY16_LE,
  NVBUF_COLOR_FORMAT_BGRA64_LE,
  NVBUF_COLOR_FORMAT_NV16_2020,
  NVBUF_COLOR_FORMAT_NV16_10LE_ER,
  NVBUF_COLOR_FORMAT_NV16_10LE_709,
  NVBUF_COLOR_FORMAT_NV16_10LE_709_ER,
  NVBUF_COLOR_FORMAT_NV16_10LE_2020,
  NVBUF_COLOR_FORMAT_NV16_12LE,
  NVBUF_COLOR_FORMAT_NV16_12LE_ER,
  NVBUF_COLOR_FORMAT_NV16_12LE_709,
  NVBUF_COLOR_FORMAT_NV16_12LE_709_ER,
  NVBUF_COLOR_FORMAT_NV16_12LE_2020,
  NVBUF_COLOR_FORMAT_LAST
}
 Defines color formats for NvBufSurface. More...
 
enum  NvBufSurfaceLayout {
  NVBUF_LAYOUT_PITCH,
  NVBUF_LAYOUT_BLOCK_LINEAR
}
 Specifies layout formats for NvBufSurface video planes. More...
 
enum  NvBufSurfaceMemType {
  NVBUF_MEM_DEFAULT,
  NVBUF_MEM_CUDA_PINNED,
  NVBUF_MEM_CUDA_DEVICE,
  NVBUF_MEM_CUDA_UNIFIED,
  NVBUF_MEM_SURFACE_ARRAY,
  NVBUF_MEM_HANDLE,
  NVBUF_MEM_SYSTEM
}
 Specifies memory types for NvBufSurface. More...
 
enum  NvBufSurfaceDisplayScanFormat {
  NVBUF_DISPLAYSCANFORMAT_PROGRESSIVE,
  NVBUF_DISPLAYSCANFORMAT_INTERLACED
}
 Defines display scan formats for NvBufSurface video planes. More...
 
enum  NvBufSurfaceDriverType {
  NVBUF_DRIVER_TYPE_UNKNOWN = 0,
  NVBUF_DRIVER_TYPE_NVGPU,
  NVBUF_DRIVER_TYPE_RM
}
 Defines the type of underlying kernel driver detected for GPU access. More...
 

Functions

int NvBufSurfaceCreate (NvBufSurface **surf, uint32_t batchSize, NvBufSurfaceCreateParams *params)
 Allocates a batch of buffers. More...
 
int NvBufSurfaceAllocate (NvBufSurface **surf, uint32_t batchSize, NvBufSurfaceAllocateParams *paramsext)
 Allocate batch of buffers. More...
 
int NvBufSurfaceDestroy (NvBufSurface *surf)
 Free the batched buffers previously allocated through NvBufSurfaceCreate. More...
 
int NvBufSurfaceMap (NvBufSurface *surf, int index, int plane, NvBufSurfaceMemMapFlags type)
 Maps hardware batched buffers to the HOST or CPU address space. More...
 
int NvBufSurfaceUnMap (NvBufSurface *surf, int index, int plane)
 Unmaps previously mapped buffer(s). More...
 
int NvBufSurfaceCopy (NvBufSurface *srcSurf, NvBufSurface *dstSurf)
 Copies the content of source batched buffer(s) to destination batched buffer(s). More...
 
int NvBufSurface2Raw (NvBufSurface *Surf, unsigned int index, unsigned int plane, unsigned int out_width, unsigned int out_height, unsigned char *ptr)
 Copies the NvBufSurface plane memory content to a raw buffer plane for a specific batched buffer. More...
 
int Raw2NvBufSurface (unsigned char *ptr, unsigned int index, unsigned int plane, unsigned int in_width, unsigned int in_height, NvBufSurface *Surf)
 Copies the raw buffer plane memory content to the NvBufSurface plane memory of a specific batched buffer. More...
 
int NvBufSurfaceSyncForCpu (NvBufSurface *surf, int index, int plane)
 Syncs the HW memory cache for the CPU. More...
 
int NvBufSurfaceSyncForDevice (NvBufSurface *surf, int index, int plane)
 Syncs the hardware memory cache for the device. More...
 
int NvBufSurfaceFromFd (int dmabuf_fd, void **buffer)
 Gets the NvBufSurface from the DMABUF FD. More...
 
int NvBufSurfaceMemSet (NvBufSurface *surf, int index, int plane, uint8_t value)
 Fills each byte of the buffer(s) in an NvBufSurface with a provided value. More...
 
int NvBufSurfaceMapEglImage (NvBufSurface *surf, int index)
 Creates an EGLImage from the memory of one or more NvBufSurface buffers. More...
 
int NvBufSurfaceUnMapEglImage (NvBufSurface *surf, int index)
 Destroys the previously created EGLImage object(s). More...
 
int NvBufSurfaceImport (NvBufSurface **out_nvbuf_surf, const NvBufSurfaceMapParams *in_params)
 Import parameters received from another process and create hardware buffer. More...
 
int NvBufSurfaceGetMapParams (const NvBufSurface *surf, int index, NvBufSurfaceMapParams *params)
 Get buffer information to map the buffer in another process. More...
 
int NvBufSurfaceMapCudaBuffer (NvBufSurface *surf, int index)
 Creates an CUDA buffer from the memory of one or more NvBufSurface buffers. More...
 
int NvBufSurfaceUnMapCudaBuffer (NvBufSurface *surf, int index)
 Destroys the previously created CUDA buffer. More...
 
int NvBufSurfaceMapNvmmBuffer (NvBufSurface *surf, int index)
 Creates an NVMM buffer from the memory of one or more NvBufSurface buffers. More...
 
int NvBufSurfaceUnMapNvmmBuffer (NvBufSurface *surf, int index)
 Destroys the previously created NVMM buffer. More...
 
int NvBufSurfaceGetDeviceInfo (NvBufSurfaceDeviceInfo *info)
 Retrieves information about the underlying GPU device driver. More...
 

Variables

NvBufSurfaceDisplayScanFormat NvBufSurfacePlaneParamsEx::scanformat [NVBUF_MAX_PLANES]
 display scan format - progressive/interlaced. More...
 
uint32_t NvBufSurfacePlaneParamsEx::secondfieldoffset [NVBUF_MAX_PLANES]
 offset of the second field for interlaced buffer. More...
 
uint32_t NvBufSurfacePlaneParamsEx::blockheightlog2 [NVBUF_MAX_PLANES]
 block height of the planes for blockLinear layout buffer. More...
 
uint32_t NvBufSurfacePlaneParamsEx::physicaladdress [NVBUF_MAX_PLANES]
 physical address of allocated planes. More...
 
uint64_t NvBufSurfacePlaneParamsEx::flags [NVBUF_MAX_PLANES]
 flags associated with planes More...
 
uint64_t NvBufSurfacePlaneParamsEx::drmModifier [NVBUF_MAX_PLANES]
 DRM modifier for plane. More...
 
void * NvBufSurfacePlaneParamsEx::_reserved [STRUCTURE_PADDING *NVBUF_MAX_PLANES]
 Holds the reserved space for future use. More...
 
uint32_t NvBufSurfacePlaneParams::num_planes
 Holds the number of planes. More...
 
uint32_t NvBufSurfacePlaneParams::width [NVBUF_MAX_PLANES]
 Holds the widths of planes. More...
 
uint32_t NvBufSurfacePlaneParams::height [NVBUF_MAX_PLANES]
 Holds the heights of planes. More...
 
uint32_t NvBufSurfacePlaneParams::pitch [NVBUF_MAX_PLANES]
 Holds the pitches of planes in bytes. More...
 
uint32_t NvBufSurfacePlaneParams::offset [NVBUF_MAX_PLANES]
 Holds the offsets of planes in bytes. More...
 
uint32_t NvBufSurfacePlaneParams::psize [NVBUF_MAX_PLANES]
 Holds the sizes of planes in bytes. More...
 
uint32_t NvBufSurfacePlaneParams::bytesPerPix [NVBUF_MAX_PLANES]
 Holds the number of bytes occupied by a pixel in each plane. More...
 
void * NvBufSurfacePlaneParams::_reserved [STRUCTURE_PADDING *NVBUF_MAX_PLANES]
 Holds the reserved space for future use. More...
 
uint8_t NvBufSurfaceChromaSubsamplingParams::chromaLocHoriz
 location settings More...
 
uint8_t NvBufSurfaceChromaSubsamplingParams::chromaLocVert
 
uint8_t NvBufSurfaceChromaSubsamplingParams::_reserved [6]
 Reserved for alignment. More...
 
uint32_t NvBufSurfaceCreateParams::gpuId
 Holds the GPU ID. More...
 
uint32_t NvBufSurfaceCreateParams::width
 Holds the width of the buffer. More...
 
uint32_t NvBufSurfaceCreateParams::height
 Holds the height of the buffer. More...
 
uint32_t NvBufSurfaceCreateParams::size
 Holds the amount of memory to be allocated. More...
 
bool NvBufSurfaceCreateParams::isContiguous
 Holds a "contiguous memory" flag. More...
 
NvBufSurfaceColorFormat NvBufSurfaceCreateParams::colorFormat
 Holds the color format of the buffer. More...
 
NvBufSurfaceLayout NvBufSurfaceCreateParams::layout
 Holds the surface layout. More...
 
NvBufSurfaceMemType NvBufSurfaceCreateParams::memType
 Holds the type of memory to be allocated. More...
 
void * NvBufSurfaceCreateParams::_reserved [STRUCTURE_PADDING]
 Holds the reserved space for future use. More...
 
NvBufSurfaceCreateParams NvBufSurfaceAllocateParams::params
 Hold legacy NvBufSurface creation parameters. More...
 
NvBufSurfaceDisplayScanFormat NvBufSurfaceAllocateParams::displayscanformat
 Display scan format. More...
 
NvBufSurfaceChromaSubsamplingParams NvBufSurfaceAllocateParams::chromaSubsampling
 Chroma Subsampling parameters. More...
 
NvBufSurfaceTag NvBufSurfaceAllocateParams::memtag
 components tag to be used for memory allocation More...
 
bool NvBufSurfaceAllocateParams::disablePitchPadding
 disable pitch padding allocation only applicable for cuda and system memory allocation pitch would be width times bytes per pixel for the plane, for odd width it would be multiple of 2, also note for some non standard video resolution cuda kernels may fail due to unaligned pitch More...
 
uint32_t NvBufSurfaceAllocateParams::_reservedParam
 Used void* from custom param for 64 bit machine, using other uint32_t param. More...
 
void * NvBufSurfaceAllocateParams::_reserved [STRUCTURE_PADDING]
 Holds the reserved space for future use. More...
 
void * NvBufSurfaceMappedAddr::addr [NVBUF_MAX_PLANES]
 Holds planewise pointers to a CPU mapped buffer. More...
 
void * NvBufSurfaceMappedAddr::eglImage
 Holds a pointer to a mapped EGLImage. More...
 
void * NvBufSurfaceMappedAddr::nvmmPtr
 Holds a pointer to a mapped NVRM memory. More...
 
void * NvBufSurfaceMappedAddr::cudaPtr
 Holds a pointer to a mapped CUDA memory. More...
 
void * NvBufSurfaceMappedAddr::_reserved [STRUCTURE_PADDING]
 Holds the reserved space for future use. More...
 
int32_t NvBufSurfaceParamsEx::startofvaliddata
 offset in bytes from the start of the buffer to the first valid byte. More...
 
int32_t NvBufSurfaceParamsEx::sizeofvaliddatainbytes
 size of the valid data from the first to the last valid byte. More...
 
NvBufSurfaceChromaSubsamplingParams NvBufSurfaceParamsEx::chromaSubsampling
 chroma subsampling parameters. More...
 
bool NvBufSurfaceParamsEx::is_protected
 get buffer vpr information. More...
 
NvBufSurfacePlaneParamsEx NvBufSurfaceParamsEx::planeParamsex
 plane wise extended info More...
 
void * NvBufSurfaceParamsEx::_reserved [STRUCTURE_PADDING]
 
void * NvBufSurfaceCudaBuffer::basePtr
 Holds a base pointer to allocated CUDA memory. More...
 
void * NvBufSurfaceCudaBuffer::dataPtr
 Holds a page aligned data pointer to CUDA memory for image buffers if CUDA allocated address is not page aligned. More...
 
void * NvBufSurfaceCudaBuffer::extMem
 Holds a pointer to external CUDA memory for imported CUDA buffers. More...
 
void * NvBufSurfaceCudaBuffer::mipmap
 Holds a pointer to external CUDA mipmaped array for imported CUDA buffers. More...
 
uint8_t NvBufSurfaceCudaBuffer::reserved [64]
 Reserved. More...
 
uint32_t NvBufSurfaceParams::width
 Holds the width of the buffer. More...
 
uint32_t NvBufSurfaceParams::height
 Holds the height of the buffer. More...
 
uint32_t NvBufSurfaceParams::pitch
 Holds the pitch of the buffer. More...
 
NvBufSurfaceColorFormat NvBufSurfaceParams::colorFormat
 Holds the color format of the buffer. More...
 
NvBufSurfaceLayout NvBufSurfaceParams::layout
 Holds BL or PL. More...
 
uint64_t NvBufSurfaceParams::bufferDesc
 Holds a DMABUF FD. More...
 
uint32_t NvBufSurfaceParams::dataSize
 Holds the amount of allocated memory. More...
 
void * NvBufSurfaceParams::dataPtr
 Holds a pointer to allocated memory. More...
 
NvBufSurfacePlaneParams NvBufSurfaceParams::planeParams
 Holds planewise information (width, height, pitch, offset, etc.). More...
 
NvBufSurfaceMappedAddr NvBufSurfaceParams::mappedAddr
 Holds pointers to mapped buffers. More...
 
NvBufSurfaceParamsExNvBufSurfaceParams::paramex
 pointers of extended parameters of single buffer in the batch. More...
 
NvBufSurfaceCudaBufferNvBufSurfaceParams::cudaBuffer
 Holds a pointer to CUDA buffer. More...
 
void * NvBufSurfaceParams::_reserved [STRUCTURE_PADDING]
 
uint32_t NvBufSurface::gpuId
 Holds a GPU ID. More...
 
uint32_t NvBufSurface::batchSize
 Holds the batch size. More...
 
uint32_t NvBufSurface::numFilled
 Holds the number valid and filled buffers. More...
 
bool NvBufSurface::isContiguous
 Holds an "is contiguous" flag. More...
 
NvBufSurfaceMemType NvBufSurface::memType
 Holds type of memory for buffers in the batch. More...
 
NvBufSurfaceParamsNvBufSurface::surfaceList
 Holds a pointer to an array of batched buffers. More...
 
bool NvBufSurface::isImportedBuf
 Holds a flag for Imported buffer. More...
 
void * NvBufSurface::_reserved [STRUCTURE_PADDING]
 
uint32_t NvBufSurfaceMapPlaneParams::width
 Holds the widths of planes. More...
 
uint32_t NvBufSurfaceMapPlaneParams::height
 Holds the heights of planes. More...
 
uint32_t NvBufSurfaceMapPlaneParams::pitch
 Holds the pitches of planes in bytes. More...
 
uint32_t NvBufSurfaceMapPlaneParams::offset
 Holds the offsets of planes in bytes. More...
 
uint32_t NvBufSurfaceMapPlaneParams::psize
 Holds the sizes of planes in bytes. More...
 
uint32_t NvBufSurfaceMapPlaneParams::secondfieldoffset
 Holds offset of the second field for interlaced buffer. More...
 
uint32_t NvBufSurfaceMapPlaneParams::blockheightlog2
 Holds block height of the planes for blockLinear layout buffer. More...
 
uint64_t NvBufSurfaceMapPlaneParams::flags
 Holds flags associated with the planes. More...
 
uint8_t NvBufSurfaceMapPlaneParams::reserved [64]
 Reserved. More...
 
char NvBufSurfaceCudaIpcMemHandle_t::reserved [64]
 
NvBufSurfaceCudaIpcMemHandle NvBufSurfaceExtendedMapParams_t::memHandle
 
void * NvBufSurfaceExtendedMapParams_t::reserved [64]
 
uint32_t NvBufSurfaceMapParams::num_planes
 Holds the number of planes. More...
 
uint32_t NvBufSurfaceMapParams::gpuId
 Holds a GPU ID. More...
 
uint64_t NvBufSurfaceMapParams::fd
 Holds a DMABUF FD. More...
 
uint32_t NvBufSurfaceMapParams::totalSize
 Holds the total size of allocated memory. More...
 
NvBufSurfaceMemType NvBufSurfaceMapParams::memType
 Holds type of memory. More...
 
NvBufSurfaceLayout NvBufSurfaceMapParams::layout
 Holds BL or PL layout. More...
 
NvBufSurfaceDisplayScanFormat NvBufSurfaceMapParams::scanformat
 Holds display scan format. More...
 
NvBufSurfaceColorFormat NvBufSurfaceMapParams::colorFormat
 Holds the color format. More...
 
NvBufSurfaceChromaSubsamplingParams NvBufSurfaceMapParams::chromaSubsampling
 Holds chroma subsampling parameters. More...
 
NvBufSurfaceMapPlaneParams NvBufSurfaceMapParams::planes [NVBUF_MAX_PLANES]
 Holds plane parameters. More...
 
void * NvBufSurfaceMapParams::extendedMapParams
 Holds the extended Map parameters. More...
 
void * NvBufSurfaceMapParams::_reserved [STRUCTURE_PADDING]
 Holds the reserved space for future use. More...
 
void * NvBufSurfaceNvmmBuffer::dataPtr
 Holds a pointer to mapped nvmm memory. More...
 
uint64_t NvBufSurfaceNvmmBuffer::bufferDesc
 Holds a DMABUF FD. More...
 
uint8_t NvBufSurfaceNvmmBuffer::reserved [64]
 Reserved. More...
 
NvBufSurfaceDriverType NvBufSurfaceDeviceInfo::driverType
 The detected device type (nvgpu, OpenRM, etc.). More...
 
bool NvBufSurfaceDeviceInfo::isVicPresent
 Indicates if VIC is present on the platform. More...
 
uint8_t NvBufSurfaceDeviceInfo::reserved [64]
 Reserved for future use. More...
 

Macro Definition Documentation

◆ NVBUF_MAX_PLANES

#define NVBUF_MAX_PLANES   4

Defines the maximum number of planes.

Definition at line 51 of file nvbufsurface.h.

◆ NVBUFSURFACE_CHROMA_SUBSAMPLING_HORIZ_DEFAULT

#define NVBUFSURFACE_CHROMA_SUBSAMPLING_HORIZ_DEFAULT   0

Defines the default values for chroma subsampling.

The default value matches JPEG/MPEG use cases.

Definition at line 57 of file nvbufsurface.h.

◆ NVBUFSURFACE_CHROMA_SUBSAMPLING_PARAMS_DEFAULT

#define NVBUFSURFACE_CHROMA_SUBSAMPLING_PARAMS_DEFAULT
Value:
{ \
NVBUFSURFACE_CHROMA_SUBSAMPLING_HORIZ_DEFAULT, \
NVBUFSURFACE_CHROMA_SUBSAMPLING_VERT_DEFAULT \
}

Definition at line 60 of file nvbufsurface.h.

◆ NVBUFSURFACE_CHROMA_SUBSAMPLING_VERT_DEFAULT

#define NVBUFSURFACE_CHROMA_SUBSAMPLING_VERT_DEFAULT   1

Definition at line 58 of file nvbufsurface.h.

◆ STRUCTURE_PADDING

#define STRUCTURE_PADDING   4

Defines the default padding length for reserved fields of structures.

Definition at line 48 of file nvbufsurface.h.

Typedef Documentation

◆ NvBufSurface

typedef struct NvBufSurface NvBufSurface

Holds information about batched buffers.

◆ NvBufSurfaceAllocateParams

Hold extended parameters required to allocate NvBufSurface.

(Applicable for NvBufSurfaceAllocate API)

◆ NvBufSurfaceChromaSubsamplingParams

Holds Chroma Subsampling parameters for NvBufSurface allocation.

The members chromaLocHoriz and chromaLocVert accept these values: 0: Left horizontal or top vertical position 1: Center horizontal or center vertical position 2: Right horizontal or bottom vertical position

◆ NvBufSurfaceCreateParams

Holds parameters required to allocate an NvBufSurface.

◆ NvBufSurfaceCudaBuffer

Holds information of CUDA buffer.

Applicable for tegra OpenRM only.

◆ NvBufSurfaceCudaIpcMemHandle

CUDA IPC memory handle for NvBufSurface.

◆ NvBufSurfaceDeviceInfo

Holds information about the underlying device.

◆ NvBufSurfaceExtendedMapParams

The extended map parameters NvBufSurface.

◆ NvBufSurfaceMapParams

Holds buffer parameters to map the buffer received from another process.

◆ NvBufSurfaceMappedAddr

Hold the pointers of mapped buffer.

◆ NvBufSurfaceMapPlaneParams

Holds plane parameters to map the buffer received from another process.

◆ NvBufSurfaceNvmmBuffer

Holds information about mapped CUDA buffer.

◆ NvBufSurfaceParams

Hold the information of single buffer in the batch.

◆ NvBufSurfaceParamsEx

Hold the information(extended) of single buffer in the batch.

◆ NvBufSurfacePlaneParams

Holds plane wise parameters of a buffer.

◆ NvBufSurfacePlaneParamsEx

Holds plane wise parameters(extended) of a buffer.

Enumeration Type Documentation

◆ NvBufSurfaceColorFormat

Defines color formats for NvBufSurface.

Enumerator
NVBUF_COLOR_FORMAT_INVALID 

Specifies an invalid color format.

NVBUF_COLOR_FORMAT_GRAY8 

Specifies 8 bit GRAY scale - single plane.

NVBUF_COLOR_FORMAT_YUV420 

Specifies BT.601 colorspace - YUV420 multi-planar.

NVBUF_COLOR_FORMAT_YVU420 

Specifies BT.601 colorspace - YUV420 multi-planar.

NVBUF_COLOR_FORMAT_YUV420_ER 

Specifies BT.601 colorspace - YUV420 ER multi-planar.

NVBUF_COLOR_FORMAT_YVU420_ER 

Specifies BT.601 colorspace - YVU420 ER multi-planar.

NVBUF_COLOR_FORMAT_NV12 

Specifies BT.601 colorspace - Y/CbCr 4:2:0 multi-planar.

NVBUF_COLOR_FORMAT_NV12_ER 

Specifies BT.601 colorspace - Y/CbCr ER 4:2:0 multi-planar.

NVBUF_COLOR_FORMAT_NV21 

Specifies BT.601 colorspace - Y/CbCr 4:2:0 multi-planar.

NVBUF_COLOR_FORMAT_NV21_ER 

Specifies BT.601 colorspace - Y/CbCr ER 4:2:0 multi-planar.

NVBUF_COLOR_FORMAT_UYVY 

Specifies BT.601 colorspace - YUV 4:2:2 planar.

NVBUF_COLOR_FORMAT_UYVY_ER 

Specifies BT.601 colorspace - YUV ER 4:2:2 planar.

NVBUF_COLOR_FORMAT_VYUY 

Specifies BT.601 colorspace - YUV 4:2:2 planar.

NVBUF_COLOR_FORMAT_VYUY_ER 

Specifies BT.601 colorspace - YUV ER 4:2:2 planar.

NVBUF_COLOR_FORMAT_YUYV 

Specifies BT.601 colorspace - YUV 4:2:2 planar.

NVBUF_COLOR_FORMAT_YUYV_ER 

Specifies BT.601 colorspace - YUV ER 4:2:2 planar.

NVBUF_COLOR_FORMAT_YVYU 

Specifies BT.601 colorspace - YUV 4:2:2 planar.

NVBUF_COLOR_FORMAT_YVYU_ER 

Specifies BT.601 colorspace - YUV ER 4:2:2 planar.

NVBUF_COLOR_FORMAT_YUV444 

Specifies BT.601 colorspace - YUV444 multi-planar.

NVBUF_COLOR_FORMAT_RGBA 

Specifies RGBA-8-8-8-8 single plane.

NVBUF_COLOR_FORMAT_BGRA 

Specifies BGRA-8-8-8-8 single plane.

NVBUF_COLOR_FORMAT_ARGB 

Specifies ARGB-8-8-8-8 single plane.

NVBUF_COLOR_FORMAT_ABGR 

Specifies ABGR-8-8-8-8 single plane.

NVBUF_COLOR_FORMAT_RGBx 

Specifies RGBx-8-8-8-8 single plane.

NVBUF_COLOR_FORMAT_BGRx 

Specifies BGRx-8-8-8-8 single plane.

NVBUF_COLOR_FORMAT_xRGB 

Specifies xRGB-8-8-8-8 single plane.

NVBUF_COLOR_FORMAT_xBGR 

Specifies xBGR-8-8-8-8 single plane.

NVBUF_COLOR_FORMAT_RGB 

Specifies RGB-8-8-8 single plane.

NVBUF_COLOR_FORMAT_BGR 

Specifies BGR-8-8-8 single plane.

NVBUF_COLOR_FORMAT_NV12_10LE 

Specifies BT.601 colorspace - Y/CbCr 4:2:0 10-bit multi-planar.

NVBUF_COLOR_FORMAT_NV12_12LE 

Specifies BT.601 colorspace - Y/CbCr 4:2:0 12-bit multi-planar.

NVBUF_COLOR_FORMAT_YUV420_709 

Specifies BT.709 colorspace - YUV420 multi-planar.

NVBUF_COLOR_FORMAT_YUV420_709_ER 

Specifies BT.709 colorspace - YUV420 ER multi-planar.

NVBUF_COLOR_FORMAT_NV12_709 

Specifies BT.709 colorspace - Y/CbCr 4:2:0 multi-planar.

NVBUF_COLOR_FORMAT_NV12_709_ER 

Specifies BT.709 colorspace - Y/CbCr ER 4:2:0 multi-planar.

NVBUF_COLOR_FORMAT_YUV420_2020 

Specifies BT.2020 colorspace - YUV420 multi-planar.

NVBUF_COLOR_FORMAT_NV12_2020 

Specifies BT.2020 colorspace - Y/CbCr 4:2:0 multi-planar.

NVBUF_COLOR_FORMAT_NV12_10LE_ER 

Specifies BT.601 colorspace - Y/CbCr ER 4:2:0 10-bit multi-planar.

NVBUF_COLOR_FORMAT_NV12_10LE_709 

Specifies BT.709 colorspace - Y/CbCr 4:2:0 10-bit multi-planar.

NVBUF_COLOR_FORMAT_NV12_10LE_709_ER 

Specifies BT.709 colorspace - Y/CbCr ER 4:2:0 10-bit multi-planar.

NVBUF_COLOR_FORMAT_NV12_10LE_2020 

Specifies BT.2020 colorspace - Y/CbCr 4:2:0 10-bit multi-planar.

NVBUF_COLOR_FORMAT_SIGNED_R16G16 

Specifies color format for packed 2 signed shorts

NVBUF_COLOR_FORMAT_R8_G8_B8 

Specifies RGB- unsigned 8 bit multiplanar plane.

NVBUF_COLOR_FORMAT_B8_G8_R8 

Specifies BGR- unsigned 8 bit multiplanar plane.

NVBUF_COLOR_FORMAT_R32F_G32F_B32F 

Specifies RGB-32bit Floating point multiplanar plane.

NVBUF_COLOR_FORMAT_B32F_G32F_R32F 

Specifies BGR-32bit Floating point multiplanar plane.

NVBUF_COLOR_FORMAT_YUV422 

Specifies BT.601 colorspace - YUV422 multi-planar.

NVBUF_COLOR_FORMAT_NV21_10LE 

Specifies BT.601 colorspace - Y/CrCb 4:2:0 10-bit multi-planar.

NVBUF_COLOR_FORMAT_NV21_12LE 

Specifies BT.601 colorspace - Y/CrCb 4:2:0 12-bit multi-planar.

NVBUF_COLOR_FORMAT_NV12_12LE_2020 

Specifies BT.2020 colorspace - Y/CbCr 4:2:0 12-bit multi-planar.

NVBUF_COLOR_FORMAT_NV16 

Specifies BT.601 colorspace - Y/CbCr 4:2:2 multi-planar.

NVBUF_COLOR_FORMAT_NV16_10LE 

Specifies BT.601 colorspace - Y/CbCr 4:2:2 10-bit semi-planar.

NVBUF_COLOR_FORMAT_NV24 

Specifies BT.601 colorspace - Y/CbCr 4:4:4 multi-planar.

NVBUF_COLOR_FORMAT_NV24_10LE 

Specifies BT.601 colorspace - Y/CrCb 4:4:4 10-bit multi-planar.

NVBUF_COLOR_FORMAT_NV16_ER 

Specifies BT.601_ER colorspace - Y/CbCr 4:2:2 multi-planar.

NVBUF_COLOR_FORMAT_NV24_ER 

Specifies BT.601_ER colorspace - Y/CbCr 4:4:4 multi-planar.

NVBUF_COLOR_FORMAT_NV16_709 

Specifies BT.709 colorspace - Y/CbCr 4:2:2 multi-planar.

NVBUF_COLOR_FORMAT_NV24_709 

Specifies BT.709 colorspace - Y/CbCr 4:4:4 multi-planar.

NVBUF_COLOR_FORMAT_NV16_709_ER 

Specifies BT.709_ER colorspace - Y/CbCr 4:2:2 multi-planar.

NVBUF_COLOR_FORMAT_NV24_709_ER 

Specifies BT.709_ER colorspace - Y/CbCr 4:4:4 multi-planar.

NVBUF_COLOR_FORMAT_NV24_10LE_709 

Specifies BT.709 colorspace - Y/CbCr 10 bit 4:4:4 multi-planar.

NVBUF_COLOR_FORMAT_NV24_10LE_709_ER 

Specifies BT.709 ER colorspace - Y/CbCr 10 bit 4:4:4 multi-planar.

NVBUF_COLOR_FORMAT_NV24_10LE_2020 

Specifies BT.2020 colorspace - Y/CbCr 10 bit 4:4:4 multi-planar.

NVBUF_COLOR_FORMAT_NV24_12LE_2020 

Specifies BT.2020 colorspace - Y/CbCr 12 bit 4:4:4 multi-planar.

NVBUF_COLOR_FORMAT_RGBA_10_10_10_2_709 

Specifies Non-linear RGB BT.709 colorspace - RGBA-10-10-10-2 planar.

NVBUF_COLOR_FORMAT_RGBA_10_10_10_2_2020 

Specifies Non-linear RGB BT.2020 colorspace - RGBA-10-10-10-2 planar.

NVBUF_COLOR_FORMAT_BGRA_10_10_10_2_709 

Specifies Non-linear RGB BT.709 colorspace - BGRA-10-10-10-2 planar.

NVBUF_COLOR_FORMAT_BGRA_10_10_10_2_2020 

Specifies Non-linear RGB BT.2020 colorspace - BGRA-10-10-10-2 planar.

NVBUF_COLOR_FORMAT_A32 

Specifies Optical flow SAD calculation Buffer format.

NVBUF_COLOR_FORMAT_UYVP 

Specifies BT.601 colorspace - 10 bit YUV 4:2:2 interleaved.

NVBUF_COLOR_FORMAT_UYVP_ER 

Specifies BT.601 colorspace - 10 bit YUV ER 4:2:2 interleaved.

NVBUF_COLOR_FORMAT_YUV444_ER 

Specifies BT.601 colorspace - Y/CbCr ER 4:4:4 multi-planar.

NVBUF_COLOR_FORMAT_YUV444_709 

Specifies BT.709 colorspace - Y/CbCr 4:4:4 multi-planar.

NVBUF_COLOR_FORMAT_YUV444_709_ER 

Specifies BT.709 colorspace - Y/CbCr ER 4:4:4 multi-planar.

NVBUF_COLOR_FORMAT_YUV444_2020 

Specifies BT.2020 colorspace - Y/CbCr 4:4:4 multi-planar.

NVBUF_COLOR_FORMAT_YUV444_10LE 

Specifies BT.601 colorspace - Y/CbCr 4:4:4 10-bit multi-planar.

NVBUF_COLOR_FORMAT_YUV444_10LE_ER 

Specifies BT.601 colorspace - Y/CbCr ER 4:4:4 10-bit multi-planar.

NVBUF_COLOR_FORMAT_YUV444_10LE_709 

Specifies BT.709 colorspace - Y/CbCr 4:4:4 10-bit multi-planar.

NVBUF_COLOR_FORMAT_YUV444_10LE_709_ER 

Specifies BT.709 colorspace - Y/CbCr ER 4:4:4 10-bit multi-planar.

NVBUF_COLOR_FORMAT_YUV444_10LE_2020 

Specifies BT.2020 colorspace - Y/CbCr 4:4:4 10-bit multi-planar.

NVBUF_COLOR_FORMAT_YUV444_12LE 

Specifies BT.601 colorspace - Y/CbCr 4:4:4 12-bit multi-planar.

NVBUF_COLOR_FORMAT_YUV444_12LE_ER 

Specifies BT.601 colorspace - Y/CbCr ER 4:4:4 12-bit multi-planar.

NVBUF_COLOR_FORMAT_YUV444_12LE_709 

Specifies BT.709 colorspace - Y/CbCr 4:4:4 12-bit multi-planar.

NVBUF_COLOR_FORMAT_YUV444_12LE_709_ER 

Specifies BT.709 colorspace - Y/CbCr ER 4:4:4 12-bit multi-planar.

NVBUF_COLOR_FORMAT_YUV444_12LE_2020 

Specifies BT.2020 colorspace - Y/CbCr 4:4:4 12-bit multi-planar.

NVBUF_COLOR_FORMAT_NV12_12LE_ER 

Specifies BT.601 colorspace - Y/CbCr ER 4:2:0 12-bit multi-planar.

NVBUF_COLOR_FORMAT_NV12_12LE_709 

Specifies BT.709 colorspace - Y/CbCr 4:2:0 12-bit multi-planar.

NVBUF_COLOR_FORMAT_NV12_12LE_709_ER 

Specifies BT.709 colorspace - Y/CbCr ER 4:2:0 12-bit multi-planar.

NVBUF_COLOR_FORMAT_GRAY8_ER 

Specifies 8 bit GRAY scale ER - single plane.

NVBUF_COLOR_FORMAT_UYVY_709 

Specifies BT.709 colorspace - Y/CbCr 4:2:2 planar.

NVBUF_COLOR_FORMAT_UYVY_709_ER 

Specifies BT.709 colorspace - Y/CbCr ER 4:2:2 planar.

NVBUF_COLOR_FORMAT_UYVY_2020 

Specifies BT.2020 colorspace - Y/CbCr 4:2:2 planar.

NVBUF_COLOR_FORMAT_GRAY16_LE 

Specifies 16 bit GRAY scale - single plane.

NVBUF_COLOR_FORMAT_BGRA64_LE 

Specifies 64 bit BGRA (B16 G16 R16 A16) interleaved.

NVBUF_COLOR_FORMAT_NV16_2020 

Specifies BT.2020 colorspace - Y/CbCr 4:2:2 multi-planar.

NVBUF_COLOR_FORMAT_NV16_10LE_ER 

Specifies BT.601_ER colorspace - Y/CbCr 4:2:2 10-bit semi-planar.

NVBUF_COLOR_FORMAT_NV16_10LE_709 

Specifies BT.709 colorspace - Y/CbCr 4:2:2 10-bit semi-planar.

NVBUF_COLOR_FORMAT_NV16_10LE_709_ER 

Specifies BT.709_ER colorspace - Y/CbCr 4:2:2 10-bit semi-planar.

NVBUF_COLOR_FORMAT_NV16_10LE_2020 

Specifies BT.2020 colorspace - Y/CbCr 4:2:2 10-bit semi-planar.

NVBUF_COLOR_FORMAT_NV16_12LE 

Specifies BT.601 colorspace - Y/CbCr 4:2:2 12-bit semi-planar.

NVBUF_COLOR_FORMAT_NV16_12LE_ER 

Specifies BT.601_ER colorspace - Y/CbCr 4:2:2 12-bit semi-planar.

NVBUF_COLOR_FORMAT_NV16_12LE_709 

Specifies BT.709 colorspace - Y/CbCr 4:2:2 12-bit semi-planar.

NVBUF_COLOR_FORMAT_NV16_12LE_709_ER 

Specifies BT.709_ER colorspace - Y/CbCr 4:2:2 12-bit semi-planar.

NVBUF_COLOR_FORMAT_NV16_12LE_2020 

Specifies BT.2020 colorspace - Y/CbCr 4:2:2 12-bit semi-planar.

NVBUF_COLOR_FORMAT_LAST 

Definition at line 105 of file nvbufsurface.h.

◆ NvBufSurfaceDisplayScanFormat

Defines display scan formats for NvBufSurface video planes.

Enumerator
NVBUF_DISPLAYSCANFORMAT_PROGRESSIVE 

Progessive scan formats.

NVBUF_DISPLAYSCANFORMAT_INTERLACED 

Interlaced scan formats.

Definition at line 355 of file nvbufsurface.h.

◆ NvBufSurfaceDriverType

Defines the type of underlying kernel driver detected for GPU access.

Enumerator
NVBUF_DRIVER_TYPE_UNKNOWN 
NVBUF_DRIVER_TYPE_NVGPU 
NVBUF_DRIVER_TYPE_RM 

Definition at line 685 of file nvbufsurface.h.

◆ NvBufSurfaceLayout

Specifies layout formats for NvBufSurface video planes.

Enumerator
NVBUF_LAYOUT_PITCH 

Specifies pitch layout.

NVBUF_LAYOUT_BLOCK_LINEAR 

Specifies block linear layout.

Definition at line 321 of file nvbufsurface.h.

◆ NvBufSurfaceMemMapFlags

Defines mapping types of NvBufSurface.

Enumerator
NVBUF_MAP_READ 

Specifies NvBufSurface mapping type "read.".

NVBUF_MAP_WRITE 

Specifies NvBufSurface mapping type "write.".

NVBUF_MAP_READ_WRITE 

Specifies NvBufSurface mapping type "read/write.".

Definition at line 69 of file nvbufsurface.h.

◆ NvBufSurfaceMemType

Specifies memory types for NvBufSurface.

Enumerator
NVBUF_MEM_DEFAULT 

Specifies the default memory type, i.e.

NVBUF_MEM_CUDA_DEVICE for dGPU, NVBUF_MEM_SURFACE_ARRAY for Jetson. Use NVBUF_MEM_DEFAULT to allocate whichever type of memory is appropriate for the platform.

NVBUF_MEM_CUDA_PINNED 

Specifies CUDA Host memory type.

NVBUF_MEM_CUDA_DEVICE 

Specifies CUDA Device memory type.

NVBUF_MEM_CUDA_UNIFIED 

Specifies CUDA Unified memory type.

NVBUF_MEM_SURFACE_ARRAY 

Specifies NVRM Surface Array type.

Valid only for Jetson.

NVBUF_MEM_HANDLE 

Specifies NVRM Handle type.

Valid only for Jetson.

NVBUF_MEM_SYSTEM 

Specifies memory allocated by malloc().

Definition at line 332 of file nvbufsurface.h.

◆ NvBufSurfaceTag

Defines tags that identify the components requesting a memory allocation.

The tags can be used later to identify the total memory allocated to particular types of components. TODO: Check if DeepStream require more tags to be defined.

Enumerator
NvBufSurfaceTag_NONE 

tag None.

NvBufSurfaceTag_CAMERA 

tag for Camera.

NvBufSurfaceTag_JPEG 

tag for Jpeg Encoder/Decoder.

NvBufSurfaceTag_PROTECTED 

tag for VPR Buffers.

NvBufSurfaceTag_VIDEO_ENC 

tag for H264/H265 Video Encoder.

NvBufSurfaceTag_VIDEO_DEC 

tag for H264/H265/VP9 Video Decoder.

NvBufSurfaceTag_VIDEO_CONVERT 

tag for Video Transform/Composite/Blend.

Definition at line 84 of file nvbufsurface.h.

Function Documentation

◆ NvBufSurface2Raw()

int NvBufSurface2Raw ( NvBufSurface Surf,
unsigned int  index,
unsigned int  plane,
unsigned int  out_width,
unsigned int  out_height,
unsigned char *  ptr 
)

Copies the NvBufSurface plane memory content to a raw buffer plane for a specific batched buffer.

This function can be used to copy plane memory content from source raw buffer pointer to specific destination batch buffer of supported memory type.

Parameters
[in]Surfpointer to NvBufSurface structure.
[in]indexindex of buffer in the batch.
[in]planeindex of plane in buffer.
[in]out_widthaligned width of the raw data plane.
[in]out_heightaligned height of the raw data plane.
[in]ptrpointer to the output raw plane data.
Returns
0 for success, -1 for failure.

◆ NvBufSurfaceAllocate()

int NvBufSurfaceAllocate ( NvBufSurface **  surf,
uint32_t  batchSize,
NvBufSurfaceAllocateParams paramsext 
)

Allocate batch of buffers.

(Using extended buffer allocation parameters)

Allocates memory for batchSize buffers and returns in *surf a pointer to allocated NvBufSurface. params structure should have allocation parameters of single buffer. If size field in params is set, buffer of that size will be allocated and all other parameters (w, h, color format etc.) will be ignored.

Use NvBufSurfaceDestroy to free all the resources.

Parameters
[out]surfpointer to allocated batched buffers.
[in]batchSizebatch size of buffers.
[in]paramsextpointer to NvBufSurfaceAllocateParams structure.
Returns
0 for success, -1 for failure.

◆ NvBufSurfaceCopy()

int NvBufSurfaceCopy ( NvBufSurface srcSurf,
NvBufSurface dstSurf 
)

Copies the content of source batched buffer(s) to destination batched buffer(s).

You can use this function to copy source buffer(s) of one memory type to destination buffer(s) of another memory type, e.g. CUDA host to CUDA device, malloc'ed memory to CUDA device, etc.

The source and destination NvBufSurface objects must have same buffer and batch size.

Parameters
[in]srcSurfA pointer to the source NvBufSurface structure.
[in]dstSurfA pointer to the destination NvBufSurface structure.
Returns
0 if successful, or -1 otherwise.

◆ NvBufSurfaceCreate()

int NvBufSurfaceCreate ( NvBufSurface **  surf,
uint32_t  batchSize,
NvBufSurfaceCreateParams params 
)

Allocates a batch of buffers.

Allocates memory for batchSize buffers and returns a pointer to an allocated NvBufSurface. The params structure must have the allocation parameters of a single buffer. If params.size is set, a buffer of that size is allocated, and all other parameters (width, height, color format, etc.) are ignored.

Call NvBufSurfaceDestroy() to free resources allocated by this function.

Parameters
[out]surfAn indirect pointer to the allocated batched buffers.
[in]batchSizeBatch size of buffers.
[in]paramsA pointer to an NvBufSurfaceCreateParams structure.
Returns
0 if successful, or -1 otherwise.

◆ NvBufSurfaceDestroy()

int NvBufSurfaceDestroy ( NvBufSurface surf)

Free the batched buffers previously allocated through NvBufSurfaceCreate.

Parameters
[in]surfA pointer to an NvBufSurface to be freed.
Returns
0 if successful, or -1 otherwise.

◆ NvBufSurfaceFromFd()

int NvBufSurfaceFromFd ( int  dmabuf_fd,
void **  buffer 
)

Gets the NvBufSurface from the DMABUF FD.

Parameters
[in]dmabuf_fdDMABUF FD of the buffer.
[out]bufferA pointer to the NvBufSurface.
Returns
0 for success, or -1 otherwise.

◆ NvBufSurfaceGetDeviceInfo()

int NvBufSurfaceGetDeviceInfo ( NvBufSurfaceDeviceInfo info)

Retrieves information about the underlying GPU device driver.

This function attempts to determine if the system is using 'nvgpu' or an OpenRM-based driver by checking loaded kernel modules. Also it checks if VIC is present on the platform.

◆ NvBufSurfaceGetMapParams()

int NvBufSurfaceGetMapParams ( const NvBufSurface surf,
int  index,
NvBufSurfaceMapParams params 
)

Get buffer information to map the buffer in another process.

Parameters
[in]surfPointer to NvBufSurface structure.
[in]indexIndex of a buffer in the batch.
[out]paramsPointer to NvBufSurfaceMapParams information of the buffer.
Returns
0 for success, -1 for failure.

◆ NvBufSurfaceImport()

int NvBufSurfaceImport ( NvBufSurface **  out_nvbuf_surf,
const NvBufSurfaceMapParams in_params 
)

Import parameters received from another process and create hardware buffer.

Calling process must need to call NvBufferDestroy() to remove reference count for hardware buffer handle of the imported DMA buffer.

Parameters
[out]out_nvbuf_surfPointer to hardware buffer.
[in]in_paramsParameters to create hardware buffer.
Returns
0 for success, -1 for failure.

◆ NvBufSurfaceMap()

int NvBufSurfaceMap ( NvBufSurface surf,
int  index,
int  plane,
NvBufSurfaceMemMapFlags  type 
)

Maps hardware batched buffers to the HOST or CPU address space.

Valid for NVBUF_MEM_CUDA_UNIFIED type memory for dGPU and NVBUF_MEM_SURFACE_ARRAY and NVBUF_MEM_HANDLE type memory for Jetson.

This function fills an array of pointers at surf->surfaceList->mappedAddr->addr. surf is a pointer to an NvBufSurface. surfaceList is a pointer to an NvBufSurfaceParams. mappedAddr is a pointer to an NvBufSurfaceMappedAddr. addr is declared as an array of pointers to void, and holds pointers to the buffers.

The client must call NvBufSurfaceSyncForCpu() with the virtual address populated by this function before accessing mapped memory in the CPU.

After memory mapping is complete, mapped memory modification must be coordinated between the CPU and the hardware device as follows:

  • CPU: If the CPU modifies mapped memory, the client must call NvBufSurfaceSyncForDevice() before any hardware device accesses the memory.
  • Hardware device: If a hardware device modifies mapped memory, the client must call NvBufSurfaceSyncForCpu() before the CPU accesses the memory.

Use NvBufSurfaceUnMap() to unmap buffer(s) and release any resource.

Parameters
[in,out]surfA pointer to an NvBufSurface structure. The function stores pointers to the buffers in a descendant of this structure; see the notes above.
[in]indexIndex of a buffer in the batch. -1 refers to all buffers in the batch.
[in]planeIndex of a plane in buffer. -1 refers to all planes in the buffer.
[in]typeA flag for mapping type.
Returns
0 if successful, or -1 otherwise.

◆ NvBufSurfaceMapCudaBuffer()

int NvBufSurfaceMapCudaBuffer ( NvBufSurface surf,
int  index 
)

Creates an CUDA buffer from the memory of one or more NvBufSurface buffers.

Only memory type NVBUF_MEM_SURFACE_ARRAY is supported.

This function returns the created CUDA buffer by storing its address at surf->surfaceList->mappedAddr->cudaPtr. (surf is a pointer to an NvBufSurface. surfaceList is a pointer to an NvBufSurfaceParams. mappedAddr is a pointer to an NvBufSurfaceMappedAddr. cudaPtr is a pointer to an NvBufSurfaceCudaBuffer.

You can use this function in scenarios where a CUDA operation on Jetson hardware memory (identified by NVBUF_MEM_SURFACE_ARRAY) is required. The NvBufSurfaceCudaBuffer struct provided by this function can be used to get dataPtr of CUDA memory.

Parameters
[in,out]surfA pointer to an NvBufSurface structure. The function stores a pointer to the created CUDA buffer in a descendant of this structure; see the notes above.
[in]indexIndex of a buffer in the batch. -1 specifies all buffers in the batch.
Returns
0 for success, or -1 otherwise.

◆ NvBufSurfaceMapEglImage()

int NvBufSurfaceMapEglImage ( NvBufSurface surf,
int  index 
)

Creates an EGLImage from the memory of one or more NvBufSurface buffers.

Only memory type NVBUF_MEM_SURFACE_ARRAY is supported.

This function returns the created EGLImage by storing its address at surf->surfaceList->mappedAddr->eglImage. (surf is a pointer to an NvBufSurface. surfaceList is a pointer to an NvBufSurfaceParams. mappedAddr is a pointer to an NvBufSurfaceMappedAddr. eglImage is declared as a pointer to void, and holds an EGLImageKHR.)

You can use this function in scenarios where a CUDA operation on Jetson hardware memory (identified by NVBUF_MEM_SURFACE_ARRAY) is required. The EGLImageKHR struct provided by this function can then be registered with CUDA for further CUDA operations.

Parameters
[in,out]surfA pointer to an NvBufSurface structure. The function stores a pointer to the created EGLImage in a descendant of this structure; see the notes above.
[in]indexIndex of a buffer in the batch. -1 specifies all buffers in the batch.
Returns
0 for success, or -1 otherwise.

◆ NvBufSurfaceMapNvmmBuffer()

int NvBufSurfaceMapNvmmBuffer ( NvBufSurface surf,
int  index 
)

Creates an NVMM buffer from the memory of one or more NvBufSurface buffers.

Only memory type NVBUF_MEM_CUDA_DEVICE and NVBUF_MEM_CUDA_PINNED are supported.

This function returns the created NVMM buffer by storing its address at surf->surfaceList->mappedAddr->nvmmPtr. (surf is a pointer to an NvBufSurface. surfaceList is a pointer to an NvBufSurfaceParams. mappedAddr is a pointer to an NvBufSurfaceMappedAddr. nvmmPtr is a pointer to NVMM buffer of memory type NVBUF_MEM_SURFACE_ARRAY.

You can use this function in scenarios where a NVBUF_MEM_SURFACE_ARRAY operation on Jetson hardware memory identified by NVBUF_MEM_CUDA_DEVICE and NVBUF_MEM_CUDA_PINNED are required.

Parameters
[in,out]surfA pointer to an NvBufSurface structure. The function stores a pointer to the created NVMM buffer in a descendant of this structure; see the notes above.
[in]indexIndex of a buffer in the batch. -1 specifies all buffers in the batch.
Returns
0 for success, or -1 otherwise.

◆ NvBufSurfaceMemSet()

int NvBufSurfaceMemSet ( NvBufSurface surf,
int  index,
int  plane,
uint8_t  value 
)

Fills each byte of the buffer(s) in an NvBufSurface with a provided value.

You can also use this function to reset the buffer(s) in the batch.

Parameters
[in]surfA pointer to the NvBufSurface structure.
[in]indexIndex of a buffer in the batch. -1 refers to all buffers in the batch.
[in]planeIndex of a plane in the buffer. -1 refers to all planes in the buffer.
[in]valueThe value to be used as fill.
Returns
0 if successful, or -1 otherwise.

◆ NvBufSurfaceSyncForCpu()

int NvBufSurfaceSyncForCpu ( NvBufSurface surf,
int  index,
int  plane 
)

Syncs the HW memory cache for the CPU.

Valid only for memory types NVBUF_MEM_SURFACE_ARRAY and NVBUF_MEM_HANDLE.

Parameters
[in]surfA pointer to an NvBufSurface structure.
[in]indexIndex of the buffer in the batch. -1 refers to all buffers in the batch.
[in]planeIndex of a plane in the buffer. -1 refers to all planes in the buffer.
Returns
0 if successful, or -1 otherwise.

◆ NvBufSurfaceSyncForDevice()

int NvBufSurfaceSyncForDevice ( NvBufSurface surf,
int  index,
int  plane 
)

Syncs the hardware memory cache for the device.

Valid only for memory types NVBUF_MEM_SURFACE_ARRAY and NVBUF_MEM_HANDLE.

Parameters
[in]surfA pointer to an NvBufSurface structure.
[in]indexIndex of a buffer in the batch. -1 refers to all buffers in the batch.
[in]planeIndex of a plane in the buffer. -1 refers to all planes in the buffer.
Returns
0 if successful, or -1 otherwise.

◆ NvBufSurfaceUnMap()

int NvBufSurfaceUnMap ( NvBufSurface surf,
int  index,
int  plane 
)

Unmaps previously mapped buffer(s).

Parameters
[in]surfA pointer to an NvBufSurface structure.
[in]indexIndex of a buffer in the batch. -1 indicates all buffers in the batch.
[in]planeIndex of a plane in the buffer. -1 indicates all planes in the buffer.
Returns
0 if successful, or -1 otherwise.

◆ NvBufSurfaceUnMapCudaBuffer()

int NvBufSurfaceUnMapCudaBuffer ( NvBufSurface surf,
int  index 
)

Destroys the previously created CUDA buffer.

Parameters
[in]surfA pointer to an NvBufSurface structure.
[in]indexThe index of a buffer in the batch. -1 specifies all buffers in the batch.
Returns
0 if successful, or -1 otherwise.

◆ NvBufSurfaceUnMapEglImage()

int NvBufSurfaceUnMapEglImage ( NvBufSurface surf,
int  index 
)

Destroys the previously created EGLImage object(s).

Parameters
[in]surfA pointer to an NvBufSurface structure.
[in]indexThe index of a buffer in the batch. -1 specifies all buffers in the batch.
Returns
0 if successful, or -1 otherwise.

◆ NvBufSurfaceUnMapNvmmBuffer()

int NvBufSurfaceUnMapNvmmBuffer ( NvBufSurface surf,
int  index 
)

Destroys the previously created NVMM buffer.

Parameters
[in]surfA pointer to an NvBufSurface structure.
[in]indexThe index of a buffer in the batch. -1 specifies all buffers in the batch.
Returns
0 if successful, or -1 otherwise.

◆ Raw2NvBufSurface()

int Raw2NvBufSurface ( unsigned char *  ptr,
unsigned int  index,
unsigned int  plane,
unsigned int  in_width,
unsigned int  in_height,
NvBufSurface Surf 
)

Copies the raw buffer plane memory content to the NvBufSurface plane memory of a specific batched buffer.

This function can be used to copy plane memory content from batch buffer to specific destination raw buffer pointer.

Parameters
[in]ptrpointer to the input raw plane data.
[in]indexindex of buffer in the batch.
[in]planeindex of plane in buffer.
[in]in_widthaligned width of the raw data plane.
[in]in_heightaligned height of the raw data plane.
[in]Surfpointer to NvBufSurface structure.
Returns
0 for success, -1 for failure.

Variable Documentation

◆ _reserved [1/10]

uint8_t NvBufSurfaceChromaSubsamplingParams::_reserved[6]

Reserved for alignment.

Definition at line 421 of file nvbufsurface.h.

◆ _reserved [2/10]

void* NvBufSurfacePlaneParamsEx::_reserved[STRUCTURE_PADDING *NVBUF_MAX_PLANES]

Holds the reserved space for future use.

Definition at line 381 of file nvbufsurface.h.

◆ _reserved [3/10]

void* NvBufSurfacePlaneParams::_reserved[STRUCTURE_PADDING *NVBUF_MAX_PLANES]

Holds the reserved space for future use.

Definition at line 404 of file nvbufsurface.h.

◆ _reserved [4/10]

void* NvBufSurfaceCreateParams::_reserved[STRUCTURE_PADDING]

Holds the reserved space for future use.

Definition at line 448 of file nvbufsurface.h.

◆ _reserved [5/10]

void* NvBufSurfaceAllocateParams::_reserved[STRUCTURE_PADDING]

Holds the reserved space for future use.

Definition at line 473 of file nvbufsurface.h.

◆ _reserved [6/10]

void* NvBufSurfaceMappedAddr::_reserved[STRUCTURE_PADDING]

Holds the reserved space for future use.

Definition at line 489 of file nvbufsurface.h.

◆ _reserved [7/10]

void* NvBufSurfaceParamsEx::_reserved[STRUCTURE_PADDING]

Definition at line 510 of file nvbufsurface.h.

◆ _reserved [8/10]

void* NvBufSurfaceParams::_reserved[STRUCTURE_PADDING]

Definition at line 571 of file nvbufsurface.h.

◆ _reserved [9/10]

void* NvBufSurface::_reserved[STRUCTURE_PADDING]

Definition at line 595 of file nvbufsurface.h.

◆ _reserved [10/10]

void* NvBufSurfaceMapParams::_reserved[STRUCTURE_PADDING]

Holds the reserved space for future use.

Definition at line 667 of file nvbufsurface.h.

◆ _reservedParam

uint32_t NvBufSurfaceAllocateParams::_reservedParam

Used void* from custom param for 64 bit machine, using other uint32_t param.

Definition at line 471 of file nvbufsurface.h.

◆ addr

void* NvBufSurfaceMappedAddr::addr[NVBUF_MAX_PLANES]

Holds planewise pointers to a CPU mapped buffer.

Definition at line 481 of file nvbufsurface.h.

◆ basePtr

void* NvBufSurfaceCudaBuffer::basePtr

Holds a base pointer to allocated CUDA memory.

It is different from dataPtr when CUDA allocated address is not page aligned for image buffers. It is same as dataPtr for other buffers.

Definition at line 524 of file nvbufsurface.h.

◆ batchSize

uint32_t NvBufSurface::batchSize

Holds the batch size.

Definition at line 581 of file nvbufsurface.h.

◆ blockheightlog2 [1/2]

uint32_t NvBufSurfaceMapPlaneParams::blockheightlog2

Holds block height of the planes for blockLinear layout buffer.

Definition at line 616 of file nvbufsurface.h.

◆ blockheightlog2 [2/2]

uint32_t NvBufSurfacePlaneParamsEx::blockheightlog2[NVBUF_MAX_PLANES]

block height of the planes for blockLinear layout buffer.

Definition at line 373 of file nvbufsurface.h.

◆ bufferDesc [1/2]

uint64_t NvBufSurfaceParams::bufferDesc

Holds a DMABUF FD.

Valid only for NVBUF_MEM_SURFACE_ARRAY and NVBUF_MEM_HANDLE type memory.

Definition at line 555 of file nvbufsurface.h.

◆ bufferDesc [2/2]

uint64_t NvBufSurfaceNvmmBuffer::bufferDesc

Holds a DMABUF FD.

Definition at line 677 of file nvbufsurface.h.

◆ bytesPerPix

uint32_t NvBufSurfacePlaneParams::bytesPerPix[NVBUF_MAX_PLANES]

Holds the number of bytes occupied by a pixel in each plane.

Definition at line 402 of file nvbufsurface.h.

◆ chromaLocHoriz

uint8_t NvBufSurfaceChromaSubsamplingParams::chromaLocHoriz

location settings

Definition at line 418 of file nvbufsurface.h.

◆ chromaLocVert

uint8_t NvBufSurfaceChromaSubsamplingParams::chromaLocVert

Definition at line 419 of file nvbufsurface.h.

◆ chromaSubsampling [1/3]

NvBufSurfaceChromaSubsamplingParams NvBufSurfaceAllocateParams::chromaSubsampling

Chroma Subsampling parameters.

Definition at line 461 of file nvbufsurface.h.

◆ chromaSubsampling [2/3]

NvBufSurfaceChromaSubsamplingParams NvBufSurfaceParamsEx::chromaSubsampling

chroma subsampling parameters.

(Applicable for NVBUF_MEM_SURFACE_ARRAY)

Definition at line 504 of file nvbufsurface.h.

◆ chromaSubsampling [3/3]

NvBufSurfaceChromaSubsamplingParams NvBufSurfaceMapParams::chromaSubsampling

Holds chroma subsampling parameters.

Definition at line 661 of file nvbufsurface.h.

◆ colorFormat [1/3]

NvBufSurfaceColorFormat NvBufSurfaceCreateParams::colorFormat

Holds the color format of the buffer.

Definition at line 441 of file nvbufsurface.h.

◆ colorFormat [2/3]

NvBufSurfaceColorFormat NvBufSurfaceParams::colorFormat

Holds the color format of the buffer.

Definition at line 550 of file nvbufsurface.h.

◆ colorFormat [3/3]

NvBufSurfaceColorFormat NvBufSurfaceMapParams::colorFormat

Holds the color format.

Definition at line 659 of file nvbufsurface.h.

◆ cudaBuffer

NvBufSurfaceCudaBuffer* NvBufSurfaceParams::cudaBuffer

Holds a pointer to CUDA buffer.

Applicable for only CUDA Device and CUDA Host memory on tegra OpenRM.

Definition at line 569 of file nvbufsurface.h.

◆ cudaPtr

void* NvBufSurfaceMappedAddr::cudaPtr

Holds a pointer to a mapped CUDA memory.

Definition at line 487 of file nvbufsurface.h.

◆ dataPtr [1/3]

void* NvBufSurfaceCudaBuffer::dataPtr

Holds a page aligned data pointer to CUDA memory for image buffers if CUDA allocated address is not page aligned.

It is same as basePtr for other buffers.

Definition at line 530 of file nvbufsurface.h.

◆ dataPtr [2/3]

void* NvBufSurfaceParams::dataPtr

Holds a pointer to allocated memory.

Not valid for NVBUF_MEM_SURFACE_ARRAY or NVBUF_MEM_HANDLE.

Definition at line 560 of file nvbufsurface.h.

◆ dataPtr [3/3]

void* NvBufSurfaceNvmmBuffer::dataPtr

Holds a pointer to mapped nvmm memory.

Definition at line 675 of file nvbufsurface.h.

◆ dataSize

uint32_t NvBufSurfaceParams::dataSize

Holds the amount of allocated memory.

Definition at line 557 of file nvbufsurface.h.

◆ disablePitchPadding

bool NvBufSurfaceAllocateParams::disablePitchPadding

disable pitch padding allocation only applicable for cuda and system memory allocation pitch would be width times bytes per pixel for the plane, for odd width it would be multiple of 2, also note for some non standard video resolution cuda kernels may fail due to unaligned pitch

Definition at line 469 of file nvbufsurface.h.

◆ displayscanformat

NvBufSurfaceDisplayScanFormat NvBufSurfaceAllocateParams::displayscanformat

Display scan format.

Definition at line 459 of file nvbufsurface.h.

◆ driverType

NvBufSurfaceDriverType NvBufSurfaceDeviceInfo::driverType

The detected device type (nvgpu, OpenRM, etc.).

Definition at line 696 of file nvbufsurface.h.

◆ drmModifier

uint64_t NvBufSurfacePlaneParamsEx::drmModifier[NVBUF_MAX_PLANES]

DRM modifier for plane.

Definition at line 379 of file nvbufsurface.h.

◆ eglImage

void* NvBufSurfaceMappedAddr::eglImage

Holds a pointer to a mapped EGLImage.

Definition at line 483 of file nvbufsurface.h.

◆ extendedMapParams

void* NvBufSurfaceMapParams::extendedMapParams

Holds the extended Map parameters.

Definition at line 665 of file nvbufsurface.h.

◆ extMem

void* NvBufSurfaceCudaBuffer::extMem

Holds a pointer to external CUDA memory for imported CUDA buffers.

Definition at line 532 of file nvbufsurface.h.

◆ fd

uint64_t NvBufSurfaceMapParams::fd

Holds a DMABUF FD.

Definition at line 649 of file nvbufsurface.h.

◆ flags [1/2]

uint64_t NvBufSurfaceMapPlaneParams::flags

Holds flags associated with the planes.

Definition at line 618 of file nvbufsurface.h.

◆ flags [2/2]

uint64_t NvBufSurfacePlaneParamsEx::flags[NVBUF_MAX_PLANES]

flags associated with planes

Definition at line 377 of file nvbufsurface.h.

◆ gpuId [1/3]

uint32_t NvBufSurfaceCreateParams::gpuId

Holds the GPU ID.

Valid only for a multi-GPU system.

Definition at line 429 of file nvbufsurface.h.

◆ gpuId [2/3]

uint32_t NvBufSurface::gpuId

Holds a GPU ID.

Valid only for a multi-GPU system.

Definition at line 579 of file nvbufsurface.h.

◆ gpuId [3/3]

uint32_t NvBufSurfaceMapParams::gpuId

Holds a GPU ID.

Definition at line 647 of file nvbufsurface.h.

◆ height [1/4]

uint32_t NvBufSurfaceCreateParams::height

Holds the height of the buffer.

Definition at line 433 of file nvbufsurface.h.

◆ height [2/4]

uint32_t NvBufSurfaceParams::height

Holds the height of the buffer.

Definition at line 546 of file nvbufsurface.h.

◆ height [3/4]

uint32_t NvBufSurfaceMapPlaneParams::height

Holds the heights of planes.

Definition at line 606 of file nvbufsurface.h.

◆ height [4/4]

uint32_t NvBufSurfacePlaneParams::height[NVBUF_MAX_PLANES]

Holds the heights of planes.

Definition at line 394 of file nvbufsurface.h.

◆ is_protected

bool NvBufSurfaceParamsEx::is_protected

get buffer vpr information.

Definition at line 506 of file nvbufsurface.h.

◆ isContiguous [1/2]

bool NvBufSurfaceCreateParams::isContiguous

Holds a "contiguous memory" flag.

If set, contiguous memory is allocated for the batch. Valid only for CUDA memory types.

Definition at line 439 of file nvbufsurface.h.

◆ isContiguous [2/2]

bool NvBufSurface::isContiguous

Holds an "is contiguous" flag.

If set, memory allocated for the batch is contiguous.

Definition at line 587 of file nvbufsurface.h.

Referenced by nvdsinferserver::SurfaceBuffer::getBufOffset().

◆ isImportedBuf

bool NvBufSurface::isImportedBuf

Holds a flag for Imported buffer.

Definition at line 593 of file nvbufsurface.h.

◆ isVicPresent

bool NvBufSurfaceDeviceInfo::isVicPresent

Indicates if VIC is present on the platform.

Definition at line 698 of file nvbufsurface.h.

◆ layout [1/3]

NvBufSurfaceLayout NvBufSurfaceCreateParams::layout

Holds the surface layout.

May be Block Linear (BL) or Pitch Linear (PL). For a dGPU, only PL is valid.

Definition at line 444 of file nvbufsurface.h.

◆ layout [2/3]

NvBufSurfaceLayout NvBufSurfaceParams::layout

Holds BL or PL.

For dGPU, only PL is valid.

Definition at line 552 of file nvbufsurface.h.

◆ layout [3/3]

NvBufSurfaceLayout NvBufSurfaceMapParams::layout

Holds BL or PL layout.

Definition at line 655 of file nvbufsurface.h.

◆ mappedAddr

NvBufSurfaceMappedAddr NvBufSurfaceParams::mappedAddr

Holds pointers to mapped buffers.

Initialized to NULL when the structure is created.

Definition at line 565 of file nvbufsurface.h.

◆ memHandle

NvBufSurfaceCudaIpcMemHandle NvBufSurfaceExtendedMapParams_t::memHandle

Definition at line 636 of file nvbufsurface.h.

◆ memtag

NvBufSurfaceTag NvBufSurfaceAllocateParams::memtag

components tag to be used for memory allocation

Definition at line 463 of file nvbufsurface.h.

◆ memType [1/3]

NvBufSurfaceMemType NvBufSurfaceCreateParams::memType

Holds the type of memory to be allocated.

Definition at line 446 of file nvbufsurface.h.

◆ memType [2/3]

NvBufSurfaceMemType NvBufSurface::memType

Holds type of memory for buffers in the batch.

Definition at line 589 of file nvbufsurface.h.

◆ memType [3/3]

NvBufSurfaceMemType NvBufSurfaceMapParams::memType

Holds type of memory.

Definition at line 653 of file nvbufsurface.h.

◆ mipmap

void* NvBufSurfaceCudaBuffer::mipmap

Holds a pointer to external CUDA mipmaped array for imported CUDA buffers.

Definition at line 534 of file nvbufsurface.h.

◆ num_planes [1/2]

uint32_t NvBufSurfacePlaneParams::num_planes

Holds the number of planes.

Definition at line 390 of file nvbufsurface.h.

◆ num_planes [2/2]

uint32_t NvBufSurfaceMapParams::num_planes

Holds the number of planes.

Definition at line 645 of file nvbufsurface.h.

◆ numFilled

uint32_t NvBufSurface::numFilled

Holds the number valid and filled buffers.

Initialized to zero when an instance of the structure is created.

Definition at line 584 of file nvbufsurface.h.

◆ nvmmPtr

void* NvBufSurfaceMappedAddr::nvmmPtr

Holds a pointer to a mapped NVRM memory.

Definition at line 485 of file nvbufsurface.h.

◆ offset [1/2]

uint32_t NvBufSurfaceMapPlaneParams::offset

Holds the offsets of planes in bytes.

Definition at line 610 of file nvbufsurface.h.

◆ offset [2/2]

uint32_t NvBufSurfacePlaneParams::offset[NVBUF_MAX_PLANES]

Holds the offsets of planes in bytes.

Definition at line 398 of file nvbufsurface.h.

◆ paramex

NvBufSurfaceParamsEx* NvBufSurfaceParams::paramex

pointers of extended parameters of single buffer in the batch.

Definition at line 567 of file nvbufsurface.h.

◆ params

NvBufSurfaceCreateParams NvBufSurfaceAllocateParams::params

Hold legacy NvBufSurface creation parameters.

Definition at line 457 of file nvbufsurface.h.

◆ physicaladdress

uint32_t NvBufSurfacePlaneParamsEx::physicaladdress[NVBUF_MAX_PLANES]

physical address of allocated planes.

Definition at line 375 of file nvbufsurface.h.

◆ pitch [1/3]

uint32_t NvBufSurfaceParams::pitch

Holds the pitch of the buffer.

Definition at line 548 of file nvbufsurface.h.

◆ pitch [2/3]

uint32_t NvBufSurfaceMapPlaneParams::pitch

Holds the pitches of planes in bytes.

Definition at line 608 of file nvbufsurface.h.

◆ pitch [3/3]

uint32_t NvBufSurfacePlaneParams::pitch[NVBUF_MAX_PLANES]

Holds the pitches of planes in bytes.

Definition at line 396 of file nvbufsurface.h.

◆ planeParams

NvBufSurfacePlaneParams NvBufSurfaceParams::planeParams

Holds planewise information (width, height, pitch, offset, etc.).

Definition at line 562 of file nvbufsurface.h.

◆ planeParamsex

NvBufSurfacePlaneParamsEx NvBufSurfaceParamsEx::planeParamsex

plane wise extended info

Definition at line 508 of file nvbufsurface.h.

◆ planes

NvBufSurfaceMapPlaneParams NvBufSurfaceMapParams::planes[NVBUF_MAX_PLANES]

Holds plane parameters.

Definition at line 663 of file nvbufsurface.h.

◆ psize [1/2]

uint32_t NvBufSurfaceMapPlaneParams::psize

Holds the sizes of planes in bytes.

Definition at line 612 of file nvbufsurface.h.

◆ psize [2/2]

uint32_t NvBufSurfacePlaneParams::psize[NVBUF_MAX_PLANES]

Holds the sizes of planes in bytes.

Definition at line 400 of file nvbufsurface.h.

◆ reserved [1/6]

uint8_t NvBufSurfaceCudaBuffer::reserved[64]

Reserved.

Definition at line 536 of file nvbufsurface.h.

◆ reserved [2/6]

uint8_t NvBufSurfaceMapPlaneParams::reserved[64]

Reserved.

Definition at line 620 of file nvbufsurface.h.

◆ reserved [3/6]

char NvBufSurfaceCudaIpcMemHandle_t::reserved[64]

Definition at line 628 of file nvbufsurface.h.

◆ reserved [4/6]

void* NvBufSurfaceExtendedMapParams_t::reserved[64]

Definition at line 637 of file nvbufsurface.h.

◆ reserved [5/6]

uint8_t NvBufSurfaceNvmmBuffer::reserved[64]

Reserved.

Definition at line 679 of file nvbufsurface.h.

◆ reserved [6/6]

uint8_t NvBufSurfaceDeviceInfo::reserved[64]

Reserved for future use.

Definition at line 700 of file nvbufsurface.h.

◆ scanformat [1/2]

NvBufSurfaceDisplayScanFormat NvBufSurfaceMapParams::scanformat

Holds display scan format.

Definition at line 657 of file nvbufsurface.h.

◆ scanformat [2/2]

NvBufSurfaceDisplayScanFormat NvBufSurfacePlaneParamsEx::scanformat[NVBUF_MAX_PLANES]

display scan format - progressive/interlaced.

Definition at line 369 of file nvbufsurface.h.

◆ secondfieldoffset [1/2]

uint32_t NvBufSurfaceMapPlaneParams::secondfieldoffset

Holds offset of the second field for interlaced buffer.

Definition at line 614 of file nvbufsurface.h.

◆ secondfieldoffset [2/2]

uint32_t NvBufSurfacePlaneParamsEx::secondfieldoffset[NVBUF_MAX_PLANES]

offset of the second field for interlaced buffer.

Definition at line 371 of file nvbufsurface.h.

◆ size

uint32_t NvBufSurfaceCreateParams::size

Holds the amount of memory to be allocated.

Optional; if set, all other parameters (width, height, etc.) are ignored.

Definition at line 436 of file nvbufsurface.h.

◆ sizeofvaliddatainbytes

int32_t NvBufSurfaceParamsEx::sizeofvaliddatainbytes

size of the valid data from the first to the last valid byte.

(Applicable for NVBUF_MEM_HANDLE)

Definition at line 501 of file nvbufsurface.h.

◆ startofvaliddata

int32_t NvBufSurfaceParamsEx::startofvaliddata

offset in bytes from the start of the buffer to the first valid byte.

(Applicable for NVBUF_MEM_HANDLE)

Definition at line 498 of file nvbufsurface.h.

◆ surfaceList

NvBufSurfaceParams* NvBufSurface::surfaceList

Holds a pointer to an array of batched buffers.

Definition at line 591 of file nvbufsurface.h.

◆ totalSize

uint32_t NvBufSurfaceMapParams::totalSize

Holds the total size of allocated memory.

Definition at line 651 of file nvbufsurface.h.

◆ width [1/4]

uint32_t NvBufSurfaceCreateParams::width

Holds the width of the buffer.

Definition at line 431 of file nvbufsurface.h.

◆ width [2/4]

uint32_t NvBufSurfaceParams::width

Holds the width of the buffer.

Definition at line 544 of file nvbufsurface.h.

◆ width [3/4]

uint32_t NvBufSurfaceMapPlaneParams::width

Holds the widths of planes.

Definition at line 604 of file nvbufsurface.h.

◆ width [4/4]

uint32_t NvBufSurfacePlaneParams::width[NVBUF_MAX_PLANES]

Holds the widths of planes.

Definition at line 392 of file nvbufsurface.h.