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... | |
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... | |
#define NVBUF_MAX_PLANES 4 |
Defines the maximum number of planes.
Definition at line 51 of file nvbufsurface.h.
#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.
#define NVBUFSURFACE_CHROMA_SUBSAMPLING_PARAMS_DEFAULT |
Definition at line 60 of file nvbufsurface.h.
#define NVBUFSURFACE_CHROMA_SUBSAMPLING_VERT_DEFAULT 1 |
Definition at line 58 of file nvbufsurface.h.
#define STRUCTURE_PADDING 4 |
Defines the default padding length for reserved fields of structures.
Definition at line 48 of file nvbufsurface.h.
typedef struct NvBufSurface NvBufSurface |
Holds information about batched buffers.
typedef struct NvBufSurfaceAllocateParams NvBufSurfaceAllocateParams |
Hold extended parameters required to allocate NvBufSurface.
(Applicable for NvBufSurfaceAllocate API)
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
typedef struct NvBufSurfaceCreateParams NvBufSurfaceCreateParams |
Holds parameters required to allocate an NvBufSurface.
typedef struct NvBufSurfaceCudaBuffer NvBufSurfaceCudaBuffer |
Holds information of CUDA buffer.
Applicable for tegra OpenRM only.
typedef struct NvBufSurfaceCudaIpcMemHandle_t NvBufSurfaceCudaIpcMemHandle |
CUDA IPC memory handle for NvBufSurface.
typedef struct NvBufSurfaceDeviceInfo NvBufSurfaceDeviceInfo |
Holds information about the underlying device.
typedef struct NvBufSurfaceExtendedMapParams_t NvBufSurfaceExtendedMapParams |
The extended map parameters NvBufSurface.
typedef struct NvBufSurfaceMapParams NvBufSurfaceMapParams |
Holds buffer parameters to map the buffer received from another process.
typedef struct NvBufSurfaceMappedAddr NvBufSurfaceMappedAddr |
Hold the pointers of mapped buffer.
typedef struct NvBufSurfaceMapPlaneParams NvBufSurfaceMapPlaneParams |
Holds plane parameters to map the buffer received from another process.
typedef struct NvBufSurfaceNvmmBuffer NvBufSurfaceNvmmBuffer |
Holds information about mapped CUDA buffer.
typedef struct NvBufSurfaceParams NvBufSurfaceParams |
Hold the information of single buffer in the batch.
typedef struct NvBufSurfaceParamsEx NvBufSurfaceParamsEx |
Hold the information(extended) of single buffer in the batch.
typedef struct NvBufSurfacePlaneParams NvBufSurfacePlaneParams |
Holds plane wise parameters of a buffer.
typedef struct NvBufSurfacePlaneParamsEx NvBufSurfacePlaneParamsEx |
Holds plane wise parameters(extended) of a buffer.
Defines color formats for NvBufSurface.
Definition at line 105 of file nvbufsurface.h.
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.
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.
enum 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.
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.
enum 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.
enum 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.
Definition at line 84 of file nvbufsurface.h.
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.
[in] | Surf | pointer to NvBufSurface structure. |
[in] | index | index of buffer in the batch. |
[in] | plane | index of plane in buffer. |
[in] | out_width | aligned width of the raw data plane. |
[in] | out_height | aligned height of the raw data plane. |
[in] | ptr | pointer to the output raw plane data. |
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.
[out] | surf | pointer to allocated batched buffers. |
[in] | batchSize | batch size of buffers. |
[in] | paramsext | pointer to NvBufSurfaceAllocateParams structure. |
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.
[in] | srcSurf | A pointer to the source NvBufSurface structure. |
[in] | dstSurf | A pointer to the destination NvBufSurface structure. |
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.
[out] | surf | An indirect pointer to the allocated batched buffers. |
[in] | batchSize | Batch size of buffers. |
[in] | params | A pointer to an NvBufSurfaceCreateParams structure. |
int NvBufSurfaceDestroy | ( | NvBufSurface * | surf | ) |
Free the batched buffers previously allocated through NvBufSurfaceCreate.
[in] | surf | A pointer to an NvBufSurface to be freed. |
int NvBufSurfaceFromFd | ( | int | dmabuf_fd, |
void ** | buffer | ||
) |
Gets the NvBufSurface from the DMABUF FD.
[in] | dmabuf_fd | DMABUF FD of the buffer. |
[out] | buffer | A pointer to the NvBufSurface. |
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.
int NvBufSurfaceGetMapParams | ( | const NvBufSurface * | surf, |
int | index, | ||
NvBufSurfaceMapParams * | params | ||
) |
Get buffer information to map the buffer in another process.
[in] | surf | Pointer to NvBufSurface structure. |
[in] | index | Index of a buffer in the batch. |
[out] | params | Pointer to NvBufSurfaceMapParams information of the buffer. |
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.
[out] | out_nvbuf_surf | Pointer to hardware buffer. |
[in] | in_params | Parameters to create hardware buffer. |
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:
Use NvBufSurfaceUnMap() to unmap buffer(s) and release any resource.
[in,out] | surf | A pointer to an NvBufSurface structure. The function stores pointers to the buffers in a descendant of this structure; see the notes above. |
[in] | index | Index of a buffer in the batch. -1 refers to all buffers in the batch. |
[in] | plane | Index of a plane in buffer. -1 refers to all planes in the buffer. |
[in] | type | A flag for mapping type. |
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.
[in,out] | surf | A 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] | index | Index of a buffer in the batch. -1 specifies all buffers in the batch. |
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.
[in,out] | surf | A 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] | index | Index of a buffer in the batch. -1 specifies all buffers in the batch. |
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.
[in,out] | surf | A 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] | index | Index of a buffer in the batch. -1 specifies all buffers in the batch. |
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.
[in] | surf | A pointer to the NvBufSurface structure. |
[in] | index | Index of a buffer in the batch. -1 refers to all buffers in the batch. |
[in] | plane | Index of a plane in the buffer. -1 refers to all planes in the buffer. |
[in] | value | The value to be used as fill. |
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.
[in] | surf | A pointer to an NvBufSurface structure. |
[in] | index | Index of the buffer in the batch. -1 refers to all buffers in the batch. |
[in] | plane | Index of a plane in the buffer. -1 refers to all planes in the buffer. |
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.
[in] | surf | A pointer to an NvBufSurface structure. |
[in] | index | Index of a buffer in the batch. -1 refers to all buffers in the batch. |
[in] | plane | Index of a plane in the buffer. -1 refers to all planes in the buffer. |
int NvBufSurfaceUnMap | ( | NvBufSurface * | surf, |
int | index, | ||
int | plane | ||
) |
Unmaps previously mapped buffer(s).
[in] | surf | A pointer to an NvBufSurface structure. |
[in] | index | Index of a buffer in the batch. -1 indicates all buffers in the batch. |
[in] | plane | Index of a plane in the buffer. -1 indicates all planes in the buffer. |
int NvBufSurfaceUnMapCudaBuffer | ( | NvBufSurface * | surf, |
int | index | ||
) |
Destroys the previously created CUDA buffer.
[in] | surf | A pointer to an NvBufSurface structure. |
[in] | index | The index of a buffer in the batch. -1 specifies all buffers in the batch. |
int NvBufSurfaceUnMapEglImage | ( | NvBufSurface * | surf, |
int | index | ||
) |
Destroys the previously created EGLImage object(s).
[in] | surf | A pointer to an NvBufSurface structure. |
[in] | index | The index of a buffer in the batch. -1 specifies all buffers in the batch. |
int NvBufSurfaceUnMapNvmmBuffer | ( | NvBufSurface * | surf, |
int | index | ||
) |
Destroys the previously created NVMM buffer.
[in] | surf | A pointer to an NvBufSurface structure. |
[in] | index | The index of a buffer in the batch. -1 specifies all buffers in the batch. |
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.
[in] | ptr | pointer to the input raw plane data. |
[in] | index | index of buffer in the batch. |
[in] | plane | index of plane in buffer. |
[in] | in_width | aligned width of the raw data plane. |
[in] | in_height | aligned height of the raw data plane. |
[in] | Surf | pointer to NvBufSurface structure. |
uint8_t NvBufSurfaceChromaSubsamplingParams::_reserved[6] |
Reserved for alignment.
Definition at line 421 of file nvbufsurface.h.
void* NvBufSurfacePlaneParamsEx::_reserved[STRUCTURE_PADDING *NVBUF_MAX_PLANES] |
Holds the reserved space for future use.
Definition at line 381 of file nvbufsurface.h.
void* NvBufSurfacePlaneParams::_reserved[STRUCTURE_PADDING *NVBUF_MAX_PLANES] |
Holds the reserved space for future use.
Definition at line 404 of file nvbufsurface.h.
void* NvBufSurfaceCreateParams::_reserved[STRUCTURE_PADDING] |
Holds the reserved space for future use.
Definition at line 448 of file nvbufsurface.h.
void* NvBufSurfaceAllocateParams::_reserved[STRUCTURE_PADDING] |
Holds the reserved space for future use.
Definition at line 473 of file nvbufsurface.h.
void* NvBufSurfaceMappedAddr::_reserved[STRUCTURE_PADDING] |
Holds the reserved space for future use.
Definition at line 489 of file nvbufsurface.h.
void* NvBufSurfaceParamsEx::_reserved[STRUCTURE_PADDING] |
Definition at line 510 of file nvbufsurface.h.
void* NvBufSurfaceParams::_reserved[STRUCTURE_PADDING] |
Definition at line 571 of file nvbufsurface.h.
void* NvBufSurface::_reserved[STRUCTURE_PADDING] |
Definition at line 595 of file nvbufsurface.h.
void* NvBufSurfaceMapParams::_reserved[STRUCTURE_PADDING] |
Holds the reserved space for future use.
Definition at line 667 of file nvbufsurface.h.
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.
void* NvBufSurfaceMappedAddr::addr[NVBUF_MAX_PLANES] |
Holds planewise pointers to a CPU mapped buffer.
Definition at line 481 of file nvbufsurface.h.
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.
uint32_t NvBufSurface::batchSize |
Holds the batch size.
Definition at line 581 of file nvbufsurface.h.
uint32_t NvBufSurfaceMapPlaneParams::blockheightlog2 |
Holds block height of the planes for blockLinear layout buffer.
Definition at line 616 of file nvbufsurface.h.
uint32_t NvBufSurfacePlaneParamsEx::blockheightlog2[NVBUF_MAX_PLANES] |
block height of the planes for blockLinear layout buffer.
Definition at line 373 of file nvbufsurface.h.
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.
uint64_t NvBufSurfaceNvmmBuffer::bufferDesc |
Holds a DMABUF FD.
Definition at line 677 of file nvbufsurface.h.
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.
uint8_t NvBufSurfaceChromaSubsamplingParams::chromaLocHoriz |
location settings
Definition at line 418 of file nvbufsurface.h.
uint8_t NvBufSurfaceChromaSubsamplingParams::chromaLocVert |
Definition at line 419 of file nvbufsurface.h.
NvBufSurfaceChromaSubsamplingParams NvBufSurfaceAllocateParams::chromaSubsampling |
Chroma Subsampling parameters.
Definition at line 461 of file nvbufsurface.h.
NvBufSurfaceChromaSubsamplingParams NvBufSurfaceParamsEx::chromaSubsampling |
chroma subsampling parameters.
(Applicable for NVBUF_MEM_SURFACE_ARRAY)
Definition at line 504 of file nvbufsurface.h.
NvBufSurfaceChromaSubsamplingParams NvBufSurfaceMapParams::chromaSubsampling |
Holds chroma subsampling parameters.
Definition at line 661 of file nvbufsurface.h.
NvBufSurfaceColorFormat NvBufSurfaceCreateParams::colorFormat |
Holds the color format of the buffer.
Definition at line 441 of file nvbufsurface.h.
NvBufSurfaceColorFormat NvBufSurfaceParams::colorFormat |
Holds the color format of the buffer.
Definition at line 550 of file nvbufsurface.h.
NvBufSurfaceColorFormat NvBufSurfaceMapParams::colorFormat |
Holds the color format.
Definition at line 659 of file nvbufsurface.h.
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.
void* NvBufSurfaceMappedAddr::cudaPtr |
Holds a pointer to a mapped CUDA memory.
Definition at line 487 of file nvbufsurface.h.
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.
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.
void* NvBufSurfaceNvmmBuffer::dataPtr |
Holds a pointer to mapped nvmm memory.
Definition at line 675 of file nvbufsurface.h.
uint32_t NvBufSurfaceParams::dataSize |
Holds the amount of allocated memory.
Definition at line 557 of file nvbufsurface.h.
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.
NvBufSurfaceDisplayScanFormat NvBufSurfaceAllocateParams::displayscanformat |
Display scan format.
Definition at line 459 of file nvbufsurface.h.
NvBufSurfaceDriverType NvBufSurfaceDeviceInfo::driverType |
The detected device type (nvgpu, OpenRM, etc.).
Definition at line 696 of file nvbufsurface.h.
uint64_t NvBufSurfacePlaneParamsEx::drmModifier[NVBUF_MAX_PLANES] |
DRM modifier for plane.
Definition at line 379 of file nvbufsurface.h.
void* NvBufSurfaceMappedAddr::eglImage |
Holds a pointer to a mapped EGLImage.
Definition at line 483 of file nvbufsurface.h.
void* NvBufSurfaceMapParams::extendedMapParams |
Holds the extended Map parameters.
Definition at line 665 of file nvbufsurface.h.
void* NvBufSurfaceCudaBuffer::extMem |
Holds a pointer to external CUDA memory for imported CUDA buffers.
Definition at line 532 of file nvbufsurface.h.
uint64_t NvBufSurfaceMapParams::fd |
Holds a DMABUF FD.
Definition at line 649 of file nvbufsurface.h.
uint64_t NvBufSurfaceMapPlaneParams::flags |
Holds flags associated with the planes.
Definition at line 618 of file nvbufsurface.h.
uint64_t NvBufSurfacePlaneParamsEx::flags[NVBUF_MAX_PLANES] |
flags associated with planes
Definition at line 377 of file nvbufsurface.h.
uint32_t NvBufSurfaceCreateParams::gpuId |
uint32_t NvBufSurface::gpuId |
uint32_t NvBufSurfaceMapParams::gpuId |
Holds a GPU ID.
Definition at line 647 of file nvbufsurface.h.
uint32_t NvBufSurfaceCreateParams::height |
Holds the height of the buffer.
Definition at line 433 of file nvbufsurface.h.
uint32_t NvBufSurfaceParams::height |
Holds the height of the buffer.
Definition at line 546 of file nvbufsurface.h.
uint32_t NvBufSurfaceMapPlaneParams::height |
Holds the heights of planes.
Definition at line 606 of file nvbufsurface.h.
uint32_t NvBufSurfacePlaneParams::height[NVBUF_MAX_PLANES] |
Holds the heights of planes.
Definition at line 394 of file nvbufsurface.h.
bool NvBufSurfaceParamsEx::is_protected |
get buffer vpr information.
Definition at line 506 of file nvbufsurface.h.
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.
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().
bool NvBufSurface::isImportedBuf |
Holds a flag for Imported buffer.
Definition at line 593 of file nvbufsurface.h.
bool NvBufSurfaceDeviceInfo::isVicPresent |
Indicates if VIC is present on the platform.
Definition at line 698 of file nvbufsurface.h.
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.
NvBufSurfaceLayout NvBufSurfaceParams::layout |
NvBufSurfaceLayout NvBufSurfaceMapParams::layout |
Holds BL or PL layout.
Definition at line 655 of file nvbufsurface.h.
NvBufSurfaceMappedAddr NvBufSurfaceParams::mappedAddr |
Holds pointers to mapped buffers.
Initialized to NULL when the structure is created.
Definition at line 565 of file nvbufsurface.h.
NvBufSurfaceCudaIpcMemHandle NvBufSurfaceExtendedMapParams_t::memHandle |
Definition at line 636 of file nvbufsurface.h.
NvBufSurfaceTag NvBufSurfaceAllocateParams::memtag |
components tag to be used for memory allocation
Definition at line 463 of file nvbufsurface.h.
NvBufSurfaceMemType NvBufSurfaceCreateParams::memType |
Holds the type of memory to be allocated.
Definition at line 446 of file nvbufsurface.h.
NvBufSurfaceMemType NvBufSurface::memType |
Holds type of memory for buffers in the batch.
Definition at line 589 of file nvbufsurface.h.
NvBufSurfaceMemType NvBufSurfaceMapParams::memType |
Holds type of memory.
Definition at line 653 of file nvbufsurface.h.
void* NvBufSurfaceCudaBuffer::mipmap |
Holds a pointer to external CUDA mipmaped array for imported CUDA buffers.
Definition at line 534 of file nvbufsurface.h.
uint32_t NvBufSurfacePlaneParams::num_planes |
Holds the number of planes.
Definition at line 390 of file nvbufsurface.h.
uint32_t NvBufSurfaceMapParams::num_planes |
Holds the number of planes.
Definition at line 645 of file nvbufsurface.h.
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.
void* NvBufSurfaceMappedAddr::nvmmPtr |
Holds a pointer to a mapped NVRM memory.
Definition at line 485 of file nvbufsurface.h.
uint32_t NvBufSurfaceMapPlaneParams::offset |
Holds the offsets of planes in bytes.
Definition at line 610 of file nvbufsurface.h.
uint32_t NvBufSurfacePlaneParams::offset[NVBUF_MAX_PLANES] |
Holds the offsets of planes in bytes.
Definition at line 398 of file nvbufsurface.h.
NvBufSurfaceParamsEx* NvBufSurfaceParams::paramex |
pointers of extended parameters of single buffer in the batch.
Definition at line 567 of file nvbufsurface.h.
NvBufSurfaceCreateParams NvBufSurfaceAllocateParams::params |
Hold legacy NvBufSurface creation parameters.
Definition at line 457 of file nvbufsurface.h.
uint32_t NvBufSurfacePlaneParamsEx::physicaladdress[NVBUF_MAX_PLANES] |
physical address of allocated planes.
Definition at line 375 of file nvbufsurface.h.
uint32_t NvBufSurfaceParams::pitch |
Holds the pitch of the buffer.
Definition at line 548 of file nvbufsurface.h.
uint32_t NvBufSurfaceMapPlaneParams::pitch |
Holds the pitches of planes in bytes.
Definition at line 608 of file nvbufsurface.h.
uint32_t NvBufSurfacePlaneParams::pitch[NVBUF_MAX_PLANES] |
Holds the pitches of planes in bytes.
Definition at line 396 of file nvbufsurface.h.
NvBufSurfacePlaneParams NvBufSurfaceParams::planeParams |
Holds planewise information (width, height, pitch, offset, etc.).
Definition at line 562 of file nvbufsurface.h.
NvBufSurfacePlaneParamsEx NvBufSurfaceParamsEx::planeParamsex |
plane wise extended info
Definition at line 508 of file nvbufsurface.h.
NvBufSurfaceMapPlaneParams NvBufSurfaceMapParams::planes[NVBUF_MAX_PLANES] |
Holds plane parameters.
Definition at line 663 of file nvbufsurface.h.
uint32_t NvBufSurfaceMapPlaneParams::psize |
Holds the sizes of planes in bytes.
Definition at line 612 of file nvbufsurface.h.
uint32_t NvBufSurfacePlaneParams::psize[NVBUF_MAX_PLANES] |
Holds the sizes of planes in bytes.
Definition at line 400 of file nvbufsurface.h.
uint8_t NvBufSurfaceCudaBuffer::reserved[64] |
Reserved.
Definition at line 536 of file nvbufsurface.h.
uint8_t NvBufSurfaceMapPlaneParams::reserved[64] |
Reserved.
Definition at line 620 of file nvbufsurface.h.
char NvBufSurfaceCudaIpcMemHandle_t::reserved[64] |
Definition at line 628 of file nvbufsurface.h.
void* NvBufSurfaceExtendedMapParams_t::reserved[64] |
Definition at line 637 of file nvbufsurface.h.
uint8_t NvBufSurfaceNvmmBuffer::reserved[64] |
Reserved.
Definition at line 679 of file nvbufsurface.h.
uint8_t NvBufSurfaceDeviceInfo::reserved[64] |
Reserved for future use.
Definition at line 700 of file nvbufsurface.h.
NvBufSurfaceDisplayScanFormat NvBufSurfaceMapParams::scanformat |
Holds display scan format.
Definition at line 657 of file nvbufsurface.h.
NvBufSurfaceDisplayScanFormat NvBufSurfacePlaneParamsEx::scanformat[NVBUF_MAX_PLANES] |
display scan format - progressive/interlaced.
Definition at line 369 of file nvbufsurface.h.
uint32_t NvBufSurfaceMapPlaneParams::secondfieldoffset |
Holds offset of the second field for interlaced buffer.
Definition at line 614 of file nvbufsurface.h.
uint32_t NvBufSurfacePlaneParamsEx::secondfieldoffset[NVBUF_MAX_PLANES] |
offset of the second field for interlaced buffer.
Definition at line 371 of file nvbufsurface.h.
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.
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.
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.
NvBufSurfaceParams* NvBufSurface::surfaceList |
Holds a pointer to an array of batched buffers.
Definition at line 591 of file nvbufsurface.h.
uint32_t NvBufSurfaceMapParams::totalSize |
Holds the total size of allocated memory.
Definition at line 651 of file nvbufsurface.h.
uint32_t NvBufSurfaceCreateParams::width |
Holds the width of the buffer.
Definition at line 431 of file nvbufsurface.h.
uint32_t NvBufSurfaceParams::width |
Holds the width of the buffer.
Definition at line 544 of file nvbufsurface.h.
uint32_t NvBufSurfaceMapPlaneParams::width |
Holds the widths of planes.
Definition at line 604 of file nvbufsurface.h.
uint32_t NvBufSurfacePlaneParams::width[NVBUF_MAX_PLANES] |
Holds the widths of planes.
Definition at line 392 of file nvbufsurface.h.