Jetson Linux API Reference

35.2.1 Release
nvbufsurface.h File Reference

Detailed Description

NvBufSurface Interface

This file specifies the NvBufSurface management API.

The NvBufSurface API provides methods to allocate / deallocate, map / unmap and copy batched buffers.

Definition in file nvbufsurface.h.

Go to the source code of this file.

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  NvBufSurfaceParams
 Hold the information of single buffer in the batch. More...
 
struct  NvBufSurface
 Holds information about batched buffers. 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 NvBufSurfaceParams NvBufSurfaceParams
 Hold the information of single buffer in the batch. More...
 
typedef struct NvBufSurface NvBufSurface
 Holds information about batched buffers. 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_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...
 

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 outwidth, unsigned int outheight, 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 inwidth, unsigned int inheight, 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...