Jetson Linux API Reference

32.7.5 Release
nvbuf_utils.h File Reference

Detailed Description

NVIDIA Multimedia Utilities: Buffering and Transform/Composition/Blending

Definition in file nvbuf_utils.h.

Go to the source code of this file.

Data Structures

struct  _NvBufferSyncObjParams
 Holds parameters for buffer sync point object. More...
 
struct  _NvBufferSyncObjRec
 buffer sync point object. More...
 
struct  NvBufferCompositeBackground
 Holds composition background r,g,b colors. More...
 
struct  NvBufferRect
 Holds coordinates for a rectangle. More...
 
struct  _NvBufferChromaSubSamplingParams
 Holds Chroma Subsampling parameters. More...
 
struct  _NvBufferCDEParams
 Holds CDE parameters. More...
 
struct  _NvBufferCreateParams
 Holds the input parameters for hardware buffer creation. More...
 
struct  _NvBufferParams
 Holds parameters for a hardware buffer. More...
 
struct  _NvBufferParamsEx
 Holds extended parameters for a hardware buffer. More...
 
struct  _NvBufferCompositeParams
 Holds parameters related to compositing/blending. More...
 
struct  _NvBufferTransformParams
 Holds parameters for buffer transform functions. More...
 

Macros

#define MAX_NUM_PLANES   4
 Defines the maximum number of planes for a video frame. More...
 
#define MAX_COMPOSITE_FRAME   16
 Defines the maximum number of input video frames that can be used for composition. More...
 
#define NVBUF_CHROMA_SUBSAMPLING_HORIZ_DEFAULT   0
 Defines the default values for chroma subsampling. More...
 
#define NVBUF_CHROMA_SUBSAMPLING_VERT_DEFAULT   1
 
#define NVBUF_MAX_SYNCOBJ_PARAMS   5
 Defines the maximum number of sync object parameters. More...
 
#define NVBUFFER_SYNCPOINT_WAIT_INFINITE   0xFFFFFFFF
 Use this value to represent an infinite wait interval. More...
 
#define NVBUF_CHROMA_SUBSAMPLING_PARAMS_DEFAULT
 

Typedefs

typedef struct _NvBufferSyncObjParams NvBufferSyncObjParams
 Holds parameters for buffer sync point object. More...
 
typedef struct _NvBufferSyncObjRec NvBufferSyncObj
 buffer sync point object. More...
 
typedef struct _NvBufferSession * NvBufferSession
 Holds an opaque NvBuffer session type required for parallel buffer tranformations and compositions. More...
 
typedef struct _NvBufferChromaSubSamplingParams NvBufferChromaSubsamplingParams
 Holds Chroma Subsampling parameters. More...
 
typedef struct _NvBufferCDEParams NvBufferCDEParams
 Holds CDE parameters. More...
 
typedef struct _NvBufferCreateParams NvBufferCreateParams
 Holds the input parameters for hardware buffer creation. More...
 
typedef struct _NvBufferParams NvBufferParams
 Holds parameters for a hardware buffer. More...
 
typedef struct _NvBufferParamsEx NvBufferParamsEx
 Holds extended parameters for a hardware buffer. More...
 
typedef struct _NvBufferCompositeParams NvBufferCompositeParams
 Holds parameters related to compositing/blending. More...
 
typedef struct _NvBufferTransformParams NvBufferTransformParams
 Holds parameters for buffer transform functions. More...
 

Enumerations

enum  NvBufferPayloadType {
  NvBufferPayload_SurfArray,
  NvBufferPayload_MemHandle
}
 Defines Payload types for NvBuffer. More...
 
enum  NvBufferDisplayScanFormat {
  NvBufferDisplayScanFormat_Progressive = 0,
  NvBufferDisplayScanFormat_Interlaced
}
 Defines display scan formats for NvBuffer video planes. More...
 
enum  NvBufferCompression {
  NvBufferCompression_Disabled = 0,
  NvBufferCompression_Enabled
}
 Defines Compression flag for NvBuffer. More...
 
enum  NvBufferLayout {
  NvBufferLayout_Pitch,
  NvBufferLayout_BlockLinear
}
 Defines Layout formats for NvBuffer video planes. More...
 
enum  NvBufferMemFlags {
  NvBufferMem_Read,
  NvBufferMem_Write,
  NvBufferMem_Read_Write
}
 Defines memory access flags for NvBuffer. More...
 
enum  NvBufferTag {
  NvBufferTag_NONE = 0x0,
  NvBufferTag_CAMERA = 0x200,
  NvBufferTag_JPEG = 0x1500,
  NvBufferTag_PROTECTED = 0x1504,
  NvBufferTag_VIDEO_ENC = 0x1200,
  NvBufferTag_VIDEO_DEC = 0x1400,
  NvBufferTag_VIDEO_CONVERT = 0xf01
}
 Defines tags that identify the components requesting a memory allocation. More...
 
enum  NvBufferColorFormat {
  NvBufferColorFormat_YUV420,
  NvBufferColorFormat_YVU420,
  NvBufferColorFormat_YUV422,
  NvBufferColorFormat_YUV420_ER,
  NvBufferColorFormat_YVU420_ER,
  NvBufferColorFormat_NV12,
  NvBufferColorFormat_NV12_ER,
  NvBufferColorFormat_NV21,
  NvBufferColorFormat_NV21_ER,
  NvBufferColorFormat_UYVY,
  NvBufferColorFormat_UYVY_ER,
  NvBufferColorFormat_VYUY,
  NvBufferColorFormat_VYUY_ER,
  NvBufferColorFormat_YUYV,
  NvBufferColorFormat_YUYV_ER,
  NvBufferColorFormat_YVYU,
  NvBufferColorFormat_YVYU_ER,
  NvBufferColorFormat_ABGR32,
  NvBufferColorFormat_XRGB32,
  NvBufferColorFormat_ARGB32,
  NvBufferColorFormat_NV12_10LE,
  NvBufferColorFormat_NV12_10LE_709,
  NvBufferColorFormat_NV12_10LE_709_ER,
  NvBufferColorFormat_NV12_10LE_2020,
  NvBufferColorFormat_NV21_10LE,
  NvBufferColorFormat_NV12_12LE,
  NvBufferColorFormat_NV12_12LE_2020,
  NvBufferColorFormat_NV21_12LE,
  NvBufferColorFormat_YUV420_709,
  NvBufferColorFormat_YUV420_709_ER,
  NvBufferColorFormat_NV12_709,
  NvBufferColorFormat_NV12_709_ER,
  NvBufferColorFormat_YUV420_2020,
  NvBufferColorFormat_NV12_2020,
  NvBufferColorFormat_SignedR16G16,
  NvBufferColorFormat_A32,
  NvBufferColorFormat_YUV444,
  NvBufferColorFormat_GRAY8,
  NvBufferColorFormat_NV16,
  NvBufferColorFormat_NV16_10LE,
  NvBufferColorFormat_NV24,
  NvBufferColorFormat_NV24_10LE,
  NvBufferColorFormat_NV16_ER,
  NvBufferColorFormat_NV24_ER,
  NvBufferColorFormat_NV16_709,
  NvBufferColorFormat_NV24_709,
  NvBufferColorFormat_NV16_709_ER,
  NvBufferColorFormat_NV24_709_ER,
  NvBufferColorFormat_NV24_10LE_709,
  NvBufferColorFormat_NV24_10LE_709_ER,
  NvBufferColorFormat_NV24_10LE_2020,
  NvBufferColorFormat_NV24_12LE_2020,
  NvBufferColorFormat_RGBA_10_10_10_2_709,
  NvBufferColorFormat_RGBA_10_10_10_2_2020,
  NvBufferColorFormat_BGRA_10_10_10_2_709,
  NvBufferColorFormat_BGRA_10_10_10_2_2020,
  NvBufferColorFormat_Invalid
}
 Defines color formats for NvBuffer. More...
 
enum  NvBufferTransform_Flip {
  NvBufferTransform_None,
  NvBufferTransform_Rotate90,
  NvBufferTransform_Rotate180,
  NvBufferTransform_Rotate270,
  NvBufferTransform_FlipX,
  NvBufferTransform_FlipY,
  NvBufferTransform_Transpose,
  NvBufferTransform_InvTranspose
}
 Defines video flip methods. More...
 
enum  NvBufferTransform_Filter {
  NvBufferTransform_Filter_Nearest,
  NvBufferTransform_Filter_Bilinear,
  NvBufferTransform_Filter_5_Tap,
  NvBufferTransform_Filter_10_Tap,
  NvBufferTransform_Filter_Smart,
  NvBufferTransform_Filter_Nicest
}
 Defines transform video filter types. More...
 
enum  NvBufferTransform_Flag {
  NVBUFFER_TRANSFORM_CROP_SRC = 1,
  NVBUFFER_TRANSFORM_CROP_DST = 1 << 1,
  NVBUFFER_TRANSFORM_FILTER = 1 << 2,
  NVBUFFER_TRANSFORM_FLIP = 1 << 3
}
 Defines flags to indicate for valid transform. More...
 
enum  NvBufferComposite_Flag {
  NVBUFFER_COMPOSITE = 1,
  NVBUFFER_BLEND = 1 << 1,
  NVBUFFER_COMPOSITE_FILTER = 1 << 2
}
 Defines flags that specify valid composition/blending operations. More...
 

Functions

int NvBufferSyncObjWait (NvBufferSyncObjParams *syncobj_params, unsigned int timeout)
 This method can be used to wait on sync point ID. More...
 
int NvBufferSyncObjParamsFromFile (int file, NvBufferSyncObjParams *syncobjparams, unsigned int *nparams)
 This method can be used to get sync point object parameters from sync point FD. More...
 
int NvBufferGetSize (void)
 This method can be used to get hardware Buffer struct size. More...
 
EGLImageKHR NvEGLImageFromFd (EGLDisplay display, int dmabuf_fd)
 Creates an instance of EGLImage from a DMABUF FD. More...
 
int NvDestroyEGLImage (EGLDisplay display, EGLImageKHR eglImage)
 Destroys an EGLImage object. More...
 
int NvBufferCreate (int *dmabuf_fd, int width, int height, NvBufferLayout layout, NvBufferColorFormat colorFormat)
 Allocates a hardware buffer (deprecated). More...
 
int NvBufferCreateEx (int *dmabuf_fd, NvBufferCreateParams *input_params)
 Allocates a hardware buffer. More...
 
int NvBufferCreateInterlace (int *dmabuf_fd, NvBufferCreateParams *input_params)
 Allocates a hardware buffer for interlace scan format. More...
 
int NvBufferCreateWithChromaLoc (int *dmabuf_fd, NvBufferCreateParams *input_params, NvBufferChromaSubsamplingParams *chromaSubsampling)
 Allocates a hardware buffer with a given chroma subsampling location. More...
 
int NvBufferCreateCompressed (int *dmabuf_fd, NvBufferCreateParams *input_params)
 Allocates a hardware buffer with compression enabled. More...
 
int NvBufferGetParams (int dmabuf_fd, NvBufferParams *params)
 Gets buffer parameters. More...
 
int NvBufferGetParamsEx (int dmabuf_fd, NvBufferParamsEx *exparams)
 Gets buffer extended parameters. More...
 
int NvBufferDestroy (int dmabuf_fd)
 Destroys a hardware buffer. More...
 
int ExtractFdFromNvBuffer (void *nvbuf, int *dmabuf_fd)
 Extracts the dmabuf_fd from the hardware buffer. More...
 
int NvReleaseFd (int dmabuf_fd)
 Releases the dmabuf_fd buffer. More...
 
int NvBufferMemSyncForCpu (int dmabuf_fd, unsigned int plane, void **pVirtAddr)
 Syncs the hardware memory cache for the CPU. More...
 
int NvBufferMemSyncForCpuEx (int dmabuf_fd, NvBufferParamsEx *exparams, unsigned int plane, void **pVirtAddr)
 Syncs the hardware memory cache for the CPU, API to be used for another process. More...
 
int NvBufferMemSyncForDevice (int dmabuf_fd, unsigned int plane, void **pVirtAddr)
 Syncs the hardware memory cache for the device. More...
 
int NvBufferMemSyncForDeviceEx (int dmabuf_fd, NvBufferParamsEx *exparams, unsigned int plane, void **pVirtAddr)
 Syncs the hardware memory cache for the device, API to be used for another process. More...
 
int NvBufferMemMap (int dmabuf_fd, unsigned int plane, NvBufferMemFlags memflag, void **pVirtAddr)
 Gets the memory-mapped virtual address of the plane. More...
 
int NvBufferMemMapEx (int dmabuf_fd, NvBufferParamsEx *exparams, unsigned int plane, NvBufferMemFlags memflag, void **pVirtAddr)
 Gets the memory-mapped virtual address of the plane, API to be used for another process. More...
 
int NvBufferMemUnMap (int dmabuf_fd, unsigned int plane, void **pVirtAddr)
 Unmaps the mapped virtual address of the plane. More...
 
int NvBufferMemUnMapEx (int dmabuf_fd, NvBufferParamsEx *exparams, unsigned int plane, void **pVirtAddr)
 Unmaps the mapped virtual address of the plane, API to be used for another process. More...
 
int NvBuffer2Raw (int dmabuf_fd, unsigned int plane, unsigned int out_width, unsigned int out_height, unsigned char *ptr)
 Copies the NvBuffer plane contents to a raw buffer plane. More...
 
int Raw2NvBuffer (unsigned char *ptr, unsigned int plane, unsigned int in_width, unsigned int in_height, int dmabuf_fd)
 Copies raw buffer plane contents to an NvBuffer plane. More...
 
NvBufferSession NvBufferSessionCreate (void)
 Creates a new NvBufferSession for parallel scheduling of buffer transformations and compositions. More...
 
void NvBufferSessionDestroy (NvBufferSession session)
 Destroys an existing NvBufferSession. More...
 
int NvBufferTransform (int src_dmabuf_fd, int dst_dmabuf_fd, NvBufferTransformParams *transform_params)
 Transforms one DMA buffer to another DMA buffer. More...
 
int NvBufferTransformEx (int src_dmabuf_fd, NvBufferParamsEx *input_params, int dst_dmabuf_fd, NvBufferParamsEx *output_params, NvBufferTransformParams *transform_params)
 Transforms one DMA buffer to another DMA buffer, API to be used for another process. More...
 
int NvBufferTransformAsync (int src_dmabuf_fd, int dst_dmabuf_fd, NvBufferTransformParams *transform_params, NvBufferSyncObj *syncobj)
 Transforms one DMA buffer to another DMA buffer asyncroniously (non-blocking). More...
 
int NvBufferComposite (int *src_dmabuf_fds, int dst_dmabuf_fd, NvBufferCompositeParams *composite_params)
 Composites multiple input DMA buffers to one output DMA buffer. More...
 
int NvBufferImportFd (int in_dmabuf_fd, int *out_dmabuf_fd, NvBufferParamsEx *in_params)
 Imports DMA buffer FD received from another process and create hardware buffer using the input params to be used by calling process. More...