Jetson Linux API 参考文档

32.7.4 版本
Buffer 管理器

详细描述

NVIDIA 缓冲实用程序库,供应用程序使用。该实用程序还支持转换、合成和混合。

数据结构

struct  _NvBufferSyncObjParams
 保存缓冲区同步点对象参数。 更多...
 
struct  _NvBufferSyncObjRec
 缓冲区同步点对象。 更多...
 
struct  NvBufferCompositeBackground
 保存合成背景 r,g,b 颜色。 更多...
 
struct  NvBufferRect
 保存矩形的坐标。 更多...
 
struct  _NvBufferChromaSubSamplingParams
 保存色度二次采样参数。 更多...
 
struct  _NvBufferCreateParams
 保存硬件缓冲区创建的输入参数。 更多...
 
struct  _NvBufferParams
 保存硬件缓冲区的参数。 更多...
 
struct  _NvBufferParamsEx
 保存硬件缓冲区的扩展参数。 更多...
 
struct  _NvBufferCompositeParams
 保存与合成/混合相关的参数。 更多...
 
struct  _NvBufferTransformParams
 保存缓冲区转换函数的参数。 更多...
 

#define MAX_NUM_PLANES   4
 定义视频帧的最大平面数。 更多...
 
#define MAX_COMPOSITE_FRAME   16
 定义可用于合成的最大输入视频帧数。 更多...
 
#define NVBUF_CHROMA_SUBSAMPLING_HORIZ_DEFAULT   0
 定义色度二次采样的默认值。 更多...
 
#define NVBUF_CHROMA_SUBSAMPLING_VERT_DEFAULT   1
 
#define NVBUF_MAX_SYNCOBJ_PARAMS   5
 定义同步对象参数的最大数量。 更多...
 
#define NVBUFFER_SYNCPOINT_WAIT_INFINITE   0xFFFFFFFF
 使用此值表示无限等待间隔。 更多...
 
#define NVBUF_CHROMA_SUBSAMPLING_PARAMS_DEFAULT
 

类型定义

typedef struct _NvBufferSyncObjParams NvBufferSyncObjParams
 保存缓冲区同步点对象参数。 更多...
 
typedef struct _NvBufferSyncObjRec NvBufferSyncObj
 缓冲区同步点对象。 更多...
 
typedef struct _NvBufferSession * NvBufferSession
 保存并行缓冲区转换和合成所需的 opaque NvBuffer 会话类型。 更多...
 
typedef struct _NvBufferChromaSubSamplingParams NvBufferChromaSubsamplingParams
 保存色度二次采样参数。 更多...
 
typedef struct _NvBufferCreateParams NvBufferCreateParams
 保存硬件缓冲区创建的输入参数。 更多...
 
typedef struct _NvBufferParams NvBufferParams
 保存硬件缓冲区的参数。 更多...
 
typedef struct _NvBufferParamsEx NvBufferParamsEx
 保存硬件缓冲区的扩展参数。 更多...
 
typedef struct _NvBufferCompositeParams NvBufferCompositeParams
 保存与合成/混合相关的参数。 更多...
 
typedef struct _NvBufferTransformParams NvBufferTransformParams
 保存缓冲区转换函数的参数。 更多...
 

枚举

enum  NvBufferPayloadType {
  NvBufferPayload_SurfArray,
  NvBufferPayload_MemHandle
}
 定义 NvBuffer 的 Payload 类型。 更多...
 
enum  NvBufferDisplayScanFormat {
  NvBufferDisplayScanFormat_Progressive = 0,
  NvBufferDisplayScanFormat_Interlaced
}
 定义 NvBuffer 视频平面的显示扫描格式。 更多...
 
enum  NvBufferLayout {
  NvBufferLayout_Pitch,
  NvBufferLayout_BlockLinear
}
 定义 NvBuffer 视频平面的 Layout 格式。 更多...
 
enum  NvBufferMemFlags {
  NvBufferMem_Read,
  NvBufferMem_Write,
  NvBufferMem_Read_Write
}
 定义 NvBuffer 的内存访问标志。 更多...
 
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
}
 定义标识请求内存分配的组件的标签。 更多...
 
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_YUV444,
  NvBufferColorFormat_SignedR16G16,
  NvBufferColorFormat_A32,
  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
}
 定义 NvBuffer 的颜色格式。 更多...
 
enum  NvBufferTransform_Flip {
  NvBufferTransform_None,
  NvBufferTransform_Rotate90,
  NvBufferTransform_Rotate180,
  NvBufferTransform_Rotate270,
  NvBufferTransform_FlipX,
  NvBufferTransform_FlipY,
  NvBufferTransform_Transpose,
  NvBufferTransform_InvTranspose
}
 定义视频翻转方法。 更多...
 
enum  NvBufferTransform_Filter {
  NvBufferTransform_Filter_Nearest,
  NvBufferTransform_Filter_Bilinear,
  NvBufferTransform_Filter_5_Tap,
  NvBufferTransform_Filter_10_Tap,
  NvBufferTransform_Filter_Smart,
  NvBufferTransform_Filter_Nicest
}
 定义转换视频滤波器类型。 更多...
 
enum  NvBufferTransform_Flag {
  NVBUFFER_TRANSFORM_CROP_SRC = 1,
  NVBUFFER_TRANSFORM_CROP_DST = 1 << 1,
  NVBUFFER_TRANSFORM_FILTER = 1 << 2,
  NVBUFFER_TRANSFORM_FLIP = 1 << 3
}
 定义指示有效转换的标志。 更多...
 
enum  NvBufferComposite_Flag {
  NVBUFFER_COMPOSITE = 1,
  NVBUFFER_BLEND = 1 << 1,
  NVBUFFER_COMPOSITE_FILTER = 1 << 2
}
 定义指定有效合成/混合操作的标志。 更多...
 

函数

int NvBufferSyncObjWait (NvBufferSyncObjParams *syncobj_params, unsigned int timeout)
 此方法可用于等待同步点 ID。 更多...
 
int NvBufferGetSize (void)
 此方法可用于获取硬件 Buffer 结构体大小。 更多...
 
EGLImageKHR NvEGLImageFromFd (EGLDisplay display, int dmabuf_fd)
 从 DMABUF FD 创建 EGLImage 实例。 更多...
 
int NvDestroyEGLImage (EGLDisplay display, EGLImageKHR eglImage)
 销毁 EGLImage 对象。 更多...
 
int NvBufferCreate (int *dmabuf_fd, int width, int height, NvBufferLayout layout, NvBufferColorFormat colorFormat)
 分配硬件缓冲区(已弃用)。 更多...
 
int NvBufferCreateEx (int *dmabuf_fd, NvBufferCreateParams *input_params)
 分配硬件缓冲区。 更多...
 
int NvBufferCreateInterlace (int *dmabuf_fd, NvBufferCreateParams *input_params)
 为隔行扫描格式分配硬件缓冲区。 更多...
 
int NvBufferCreateWithChromaLoc (int *dmabuf_fd, NvBufferCreateParams *input_params, NvBufferChromaSubsamplingParams *chromaSubsampling)
 使用给定的色度二次采样位置分配硬件缓冲区。 更多...
 
int NvBufferGetParams (int dmabuf_fd, NvBufferParams *params)
 获取缓冲区参数。 更多...
 
int NvBufferGetParamsEx (int dmabuf_fd, NvBufferParamsEx *exparams)
 获取缓冲区扩展参数。 更多...
 
int NvBufferDestroy (int dmabuf_fd)
 销毁硬件缓冲区。 更多...
 
int ExtractFdFromNvBuffer (void *nvbuf, int *dmabuf_fd)
 从硬件缓冲区提取 dmabuf_fd更多...
 
int NvReleaseFd (int dmabuf_fd)
 释放 dmabuf_fd 缓冲区。 更多...
 
int NvBufferMemSyncForCpu (int dmabuf_fd, unsigned int plane, void **pVirtAddr)
 为 CPU 同步硬件内存缓存。 更多...
 
int NvBufferMemSyncForCpuEx (int dmabuf_fd, NvBufferParamsEx *exparams, unsigned int plane, void **pVirtAddr)
 为 CPU 同步硬件内存缓存,用于另一个进程的 API。 更多...
 
int NvBufferMemSyncForDevice (int dmabuf_fd, unsigned int plane, void **pVirtAddr)
 为设备同步硬件内存缓存。 更多...
 
int NvBufferMemSyncForDeviceEx (int dmabuf_fd, NvBufferParamsEx *exparams, unsigned int plane, void **pVirtAddr)
 为设备同步硬件内存缓存,用于另一个进程的 API。 更多...
 
int NvBufferMemMap (int dmabuf_fd, unsigned int plane, NvBufferMemFlags memflag, void **pVirtAddr)
 获取平面的内存映射虚拟地址。 更多...
 
int NvBufferMemMapEx (int dmabuf_fd, NvBufferParamsEx *exparams, unsigned int plane, NvBufferMemFlags memflag, void **pVirtAddr)
 获取平面的内存映射虚拟地址,用于另一个进程的 API。 更多...
 
int NvBufferMemUnMap (int dmabuf_fd, unsigned int plane, void **pVirtAddr)
 取消映射平面的映射虚拟地址。 更多...
 
int NvBufferMemUnMapEx (int dmabuf_fd, NvBufferParamsEx *exparams, unsigned int plane, void **pVirtAddr)
 取消映射平面的映射虚拟地址,用于另一个进程的 API。 更多...
 
int NvBuffer2Raw (int dmabuf_fd, unsigned int plane, unsigned int out_width, unsigned int out_height, unsigned char *ptr)
 NvBuffer 平面内容复制到原始缓冲区平面。 更多...
 
int Raw2NvBuffer (unsigned char *ptr, unsigned int plane, unsigned int in_width, unsigned int in_height, int dmabuf_fd)
 将原始缓冲区平面内容复制到 NvBuffer 平面。 更多...
 
NvBufferSession NvBufferSessionCreate (void)
 创建新的 NvBufferSession,用于并行调度缓冲区转换和合成。 更多...
 
void NvBufferSessionDestroy (NvBufferSession session)
 销毁现有的 NvBufferSession更多...
 
int NvBufferTransform (int src_dmabuf_fd, int dst_dmabuf_fd, NvBufferTransformParams *transform_params)
 将一个 DMA 缓冲区转换为另一个 DMA 缓冲区。 更多...
 
int NvBufferTransformEx (int src_dmabuf_fd, NvBufferParamsEx *input_params, int dst_dmabuf_fd, NvBufferParamsEx *output_params, NvBufferTransformParams *transform_params)
 将一个 DMA 缓冲区转换为另一个 DMA 缓冲区,用于另一个进程的 API。 更多...
 
int NvBufferTransformAsync (int src_dmabuf_fd, int dst_dmabuf_fd, NvBufferTransformParams *transform_params, NvBufferSyncObj *syncobj)
 异步(非阻塞)地将一个 DMA 缓冲区转换为另一个 DMA 缓冲区。 更多...
 
int NvBufferComposite (int *src_dmabuf_fds, int dst_dmabuf_fd, NvBufferCompositeParams *composite_params)
 将多个输入 DMA 缓冲区合成为一个输出 DMA 缓冲区。 更多...
 

宏定义文档

◆ MAX_COMPOSITE_FRAME

#define MAX_COMPOSITE_FRAME   16

定义可用于合成的最大输入视频帧数。

定义于文件 46nvbuf_utils.h

◆ MAX_NUM_PLANES

#define MAX_NUM_PLANES   4

定义视频帧的最大平面数。

定义于文件 41nvbuf_utils.h

◆ NVBUF_CHROMA_SUBSAMPLING_HORIZ_DEFAULT

#define NVBUF_CHROMA_SUBSAMPLING_HORIZ_DEFAULT   0

定义色度二次采样的默认值。

默认值与 JPEG/MPEG 用例匹配。

定义于文件 52nvbuf_utils.h

◆ NVBUF_CHROMA_SUBSAMPLING_PARAMS_DEFAULT

#define NVBUF_CHROMA_SUBSAMPLING_PARAMS_DEFAULT
{ \
NVBUF_CHROMA_SUBSAMPLING_HORIZ_DEFAULT, \
NVBUF_CHROMA_SUBSAMPLING_VERT_DEFAULT \
}

定义于文件 394nvbuf_utils.h

◆ NVBUF_CHROMA_SUBSAMPLING_VERT_DEFAULT

#define NVBUF_CHROMA_SUBSAMPLING_VERT_DEFAULT   1

定义于文件 53nvbuf_utils.h

◆ NVBUF_MAX_SYNCOBJ_PARAMS

#define NVBUF_MAX_SYNCOBJ_PARAMS   5

定义同步对象参数的最大数量。

定义于文件 58nvbuf_utils.h

◆ NVBUFFER_SYNCPOINT_WAIT_INFINITE

#define NVBUFFER_SYNCPOINT_WAIT_INFINITE   0xFFFFFFFF

使用此值表示无限等待间隔。

零值不应被解释为无限,而应解释为“立即超时”,并简单地检查事件是否已发生。

定义于文件 66nvbuf_utils.h

类型定义文档

◆ NvBufferChromaSubsamplingParams

保存色度二次采样参数。

◆ NvBufferCompositeParams

保存与合成/混合相关的参数。

◆ NvBufferCreateParams

保存硬件缓冲区创建的输入参数。

◆ NvBufferParams

保存硬件缓冲区的参数。

◆ NvBufferParamsEx

保存硬件缓冲区的扩展参数。

◆ NvBufferSession

typedef struct _NvBufferSession* NvBufferSession

保存并行缓冲区转换和合成所需的 opaque NvBuffer 会话类型。

使用单个会话的操作按顺序调度,在前一个操作完成后进行。 多个会话的操作并行调度。

定义于文件 382nvbuf_utils.h

◆ NvBufferSyncObj

缓冲区同步点对象。

◆ NvBufferSyncObjParams

保存缓冲区同步点对象参数。

同步对象参数只是一个数据结构,包含 [同步点 ID, 值] 对。客户端可以使用它来描述可能想要等待的事件。

◆ NvBufferTransformParams

保存缓冲区转换函数的参数。

枚举类型文档

◆ NvBufferColorFormat

定义 NvBuffer 的颜色格式。

枚举器
NvBufferColorFormat_YUV420 

BT.601 色彩空间 - YUV420 多平面。

NvBufferColorFormat_YVU420 

BT.601 色彩空间 - YUV420 多平面。

NvBufferColorFormat_YUV422 

BT.601 色彩空间 - YUV422 多平面。

NvBufferColorFormat_YUV420_ER 

BT.601 色彩空间 - YUV420 ER 多平面。

NvBufferColorFormat_YVU420_ER 

BT.601 色彩空间 - YVU420 ER 多平面。

NvBufferColorFormat_NV12 

BT.601 色彩空间 - Y/CbCr 4:2:0 多平面。

NvBufferColorFormat_NV12_ER 

BT.601 色彩空间 - Y/CbCr ER 4:2:0 多平面。

NvBufferColorFormat_NV21 

BT.601 色彩空间 - Y/CbCr 4:2:0 多平面。

NvBufferColorFormat_NV21_ER 

BT.601 色彩空间 - Y/CbCr ER 4:2:0 多平面。

NvBufferColorFormat_UYVY 

BT.601 色彩空间 - YUV 4:2:2 平面。

NvBufferColorFormat_UYVY_ER 

BT.601 色彩空间 - YUV ER 4:2:2 平面。

NvBufferColorFormat_VYUY 

BT.601 色彩空间 - YUV 4:2:2 平面。

NvBufferColorFormat_VYUY_ER 

BT.601 色彩空间 - YUV ER 4:2:2 平面。

NvBufferColorFormat_YUYV 

BT.601 色彩空间 - YUV 4:2:2 平面。

NvBufferColorFormat_YUYV_ER 

BT.601 色彩空间 - YUV ER 4:2:2 平面。

NvBufferColorFormat_YVYU 

BT.601 色彩空间 - YUV 4:2:2 平面。

NvBufferColorFormat_YVYU_ER 

BT.601 色彩空间 - YUV ER 4:2:2 平面。

NvBufferColorFormat_ABGR32 

LegacyRGBA 色彩空间 - BGRA-8-8-8-8 平面。

NvBufferColorFormat_XRGB32 

LegacyRGBA 色彩空间 - XRGB-8-8-8-8 平面。

NvBufferColorFormat_ARGB32 

LegacyRGBA 色彩空间 - ARGB-8-8-8-8 平面。

NvBufferColorFormat_NV12_10LE 

BT.601 色彩空间 - Y/CbCr 4:2:0 10 位多平面。

NvBufferColorFormat_NV12_10LE_709 

BT.709 色彩空间 - Y/CbCr 4:2:0 10 位多平面。

NvBufferColorFormat_NV12_10LE_709_ER 

BT.709_ER 色彩空间 - Y/CbCr 4:2:0 10 位多平面。

NvBufferColorFormat_NV12_10LE_2020 

BT.2020 色彩空间 - Y/CbCr 4:2:0 10 位多平面。

NvBufferColorFormat_NV21_10LE 

BT.601 色彩空间 - Y/CrCb 4:2:0 10 位多平面。

NvBufferColorFormat_NV12_12LE 

BT.601 色彩空间 - Y/CbCr 4:2:0 12 位多平面。

NvBufferColorFormat_NV12_12LE_2020 

BT.2020 色彩空间 - Y/CbCr 4:2:0 12 位多平面。

NvBufferColorFormat_NV21_12LE 

BT.601 色彩空间 - Y/CrCb 4:2:0 12 位多平面。

NvBufferColorFormat_YUV420_709 

BT.709 色彩空间 - YUV420 多平面。

NvBufferColorFormat_YUV420_709_ER 

BT.709 色彩空间 - YUV420 ER 多平面。

NvBufferColorFormat_NV12_709 

BT.709 色彩空间 - Y/CbCr 4:2:0 多平面。

NvBufferColorFormat_NV12_709_ER 

BT.709 色彩空间 - Y/CbCr ER 4:2:0 多平面。

NvBufferColorFormat_YUV420_2020 

BT.2020 色彩空间 - YUV420 多平面。

NvBufferColorFormat_NV12_2020 

BT.2020 色彩空间 - Y/CbCr 4:2:0 多平面。

NvBufferColorFormat_YUV444 

BT.601 色彩空间 - YUV444 多平面。

NvBufferColorFormat_SignedR16G16 

光流。

NvBufferColorFormat_A32 

光流 SAD 计算缓冲区格式。

NvBufferColorFormat_GRAY8 

8 位灰度。

NvBufferColorFormat_NV16 

BT.601 色彩空间 - Y/CbCr 4:2:2 多平面。

NvBufferColorFormat_NV16_10LE 

BT.601 色彩空间 - Y/CbCr 4:2:2 10 位半平面。

NvBufferColorFormat_NV24 

BT.601 色彩空间 - Y/CbCr 4:4:4 多平面。

NvBufferColorFormat_NV24_10LE 

BT.601 色彩空间 - Y/CrCb 4:4:4 10 位多平面。

NvBufferColorFormat_NV16_ER 

BT.601_ER 色彩空间 - Y/CbCr 4:2:2 多平面。

NvBufferColorFormat_NV24_ER 

BT.601_ER 色彩空间 - Y/CbCr 4:4:4 多平面。

NvBufferColorFormat_NV16_709 

BT.709 色彩空间 - Y/CbCr 4:2:2 多平面。

NvBufferColorFormat_NV24_709 

BT.709 色彩空间 - Y/CbCr 4:4:4 多平面。

NvBufferColorFormat_NV16_709_ER 

BT.709_ER 色彩空间 - Y/CbCr 4:2:2 多平面。

NvBufferColorFormat_NV24_709_ER 

BT.709_ER 色彩空间 - Y/CbCr 4:4:4 多平面。

NvBufferColorFormat_NV24_10LE_709 

BT.709 色彩空间 - Y/CbCr 10 位 4:4:4 多平面。

NvBufferColorFormat_NV24_10LE_709_ER 

BT.709 ER 色彩空间 - Y/CbCr 10 位 4:4:4 多平面。

NvBufferColorFormat_NV24_10LE_2020 

BT.2020 色彩空间 - Y/CbCr 10 位 4:4:4 多平面。

NvBufferColorFormat_NV24_12LE_2020 

BT.2020 色彩空间 - Y/CbCr 12 位 4:4:4 多平面。

NvBufferColorFormat_RGBA_10_10_10_2_709 

非线性 RGB BT.709 色彩空间 - RGBA-10-10-10-2 平面。

NvBufferColorFormat_RGBA_10_10_10_2_2020 

非线性 RGB BT.2020 色彩空间 - RGBA-10-10-10-2 平面。

NvBufferColorFormat_BGRA_10_10_10_2_709 

非线性 RGB BT.709 色彩空间 - BGRA-10-10-10-2 平面。

NvBufferColorFormat_BGRA_10_10_10_2_2020 

非线性 RGB BT.2020 色彩空间 - BGRA-10-10-10-2 平面。

NvBufferColorFormat_Invalid 

无效的颜色格式。

定义于文件 140nvbuf_utils.h

◆ NvBufferComposite_Flag

定义指定有效合成/混合操作的标志。

枚举器
NVBUFFER_COMPOSITE 

用于合成的标志。

NVBUFFER_BLEND 

用于混合的标志。

NVBUFFER_COMPOSITE_FILTER 

用于设置滤波器类型的合成标志。

定义于文件 317nvbuf_utils.h

◆ NvBufferDisplayScanFormat

定义 NvBuffer 视频平面的显示扫描格式。

枚举器
NvBufferDisplayScanFormat_Progressive 

逐行扫描格式。

NvBufferDisplayScanFormat_Interlaced 

隔行扫描格式。

定义于文件 82nvbuf_utils.h

◆ NvBufferLayout

定义 NvBuffer 视频平面的布局格式。

枚举器
NvBufferLayout_Pitch 

Pitch 布局。

NvBufferLayout_BlockLinear 

BlockLinear 布局。

定义于文件 93nvbuf_utils.h

◆ NvBufferMemFlags

定义 NvBuffer 的内存访问标志。

枚举器
NvBufferMem_Read 

内存读取。

NvBufferMem_Write 

内存写入。

NvBufferMem_Read_Write 

内存读取 & 写入。

定义于文件 104nvbuf_utils.h

◆ NvBufferPayloadType

定义 NvBuffer 的 Payload 类型。

枚举器
NvBufferPayload_SurfArray 

带有硬件内存句柄的缓冲区有效载荷,用于平面集合。

NvBufferPayload_MemHandle 

带有硬件内存句柄的缓冲区有效载荷,用于特定内存大小。

定义于文件 71nvbuf_utils.h

◆ NvBufferTag

枚举 NvBufferTag

定义标识请求内存分配的组件的标签。

这些标签稍后可用于识别分配给特定类型组件的总内存。

枚举器
NvBufferTag_NONE 

无标签。

NvBufferTag_CAMERA 

相机标签。

NvBufferTag_JPEG 

Jpeg 编码器/解码器标签。

NvBufferTag_PROTECTED 

VPR 缓冲区标签。

NvBufferTag_VIDEO_ENC 

H264/H265 视频编码器标签。

NvBufferTag_VIDEO_DEC 

H264/H265/VP9 视频解码器标签。

NvBufferTag_VIDEO_CONVERT 

视频转换/合成标签。

定义于文件 119nvbuf_utils.h

◆ NvBufferTransform_Filter

定义变换视频滤波器类型。

枚举器
NvBufferTransform_Filter_Nearest 

最近邻变换滤波器。

NvBufferTransform_Filter_Bilinear 

双线性变换滤波器。

NvBufferTransform_Filter_5_Tap 

5 抽头变换滤波器。

NvBufferTransform_Filter_10_Tap 

10 抽头变换滤波器。

NvBufferTransform_Filter_Smart 

智能变换滤波器。

NvBufferTransform_Filter_Nicest 

最佳变换滤波器。

定义于文件 284nvbuf_utils.h

◆ NvBufferTransform_Flag

定义指示有效变换的标志。

枚举器
NVBUFFER_TRANSFORM_CROP_SRC 

用于裁剪源矩形的变换标志。

NVBUFFER_TRANSFORM_CROP_DST 

用于裁剪目标矩形的变换标志。

NVBUFFER_TRANSFORM_FILTER 

用于设置滤波器类型的变换标志。

NVBUFFER_TRANSFORM_FLIP 

用于设置翻转方法的变换标志。

定义于文件 303nvbuf_utils.h

◆ NvBufferTransform_Flip

定义视频翻转方法。

枚举器
NvBufferTransform_None 

无视频翻转。

NvBufferTransform_Rotate90 

视频翻转逆时针旋转 90 度。

NvBufferTransform_Rotate180 

视频翻转旋转 180 度。

NvBufferTransform_Rotate270 

视频翻转逆时针旋转 270 度。

NvBufferTransform_FlipX 

视频翻转关于 X 轴翻转。

NvBufferTransform_FlipY 

视频翻转关于 Y 轴翻转。

NvBufferTransform_Transpose 

视频翻转转置。

NvBufferTransform_InvTranspose 

视频翻转逆转置。

定义于文件 261nvbuf_utils.h

函数文档

◆ ExtractFdFromNvBuffer()

int ExtractFdFromNvBuffer ( void *  nvbuf,
int *  dmabuf_fd 
)

从硬件缓冲区中提取 dmabuf_fd

参数
[输入]nvbuf指定 hw_buffer
[输出]dmabuf_fd返回 hw_buffer 的 DMABUF FD。
返回值
成功返回 0,失败返回 -1。

◆ NvBuffer2Raw()

int NvBuffer2Raw ( int  dmabuf_fd,
unsigned int  plane,
unsigned int  out_width,
unsigned int  out_height,
unsigned char *  ptr 
)

NvBuffer 平面内容复制到原始缓冲区平面。

参数
[输入]dmabuf_fdNvBuffer 的 DMABUF FD。
[输入]plane视频帧平面。
[输入]out_width原始数据平面的对齐宽度。
[输入]out_height原始数据平面的对齐高度。
[输入]ptr指向输出原始平面数据的指针。
返回值
成功返回 0,失败返回 -1。

◆ NvBufferComposite()

int NvBufferComposite ( int *  src_dmabuf_fds,
int  dst_dmabuf_fd,
NvBufferCompositeParams composite_params 
)

将多个输入 DMA 缓冲区合成为一个输出 DMA 缓冲区。

此函数可以将多个输入帧合成为一个输出。

参数
[输入]src_dmabuf_fds源缓冲区的 DMABUF FD 数组。这些缓冲区被合成为一起。输出被复制到 dst_dmabuf_fd 引用的输出缓冲区。
[输入]dst_dmabuf_fd合成目标缓冲区的 DMABUF FD。
[输入]composite_params合成参数。

◆ NvBufferCreate()

int NvBufferCreate ( int *  dmabuf_fd,
int  width,
int  height,
NvBufferLayout  layout,
NvBufferColorFormat  colorFormat 
)

分配硬件缓冲区(已弃用)。

已弃用
请使用 NvBufferCreateEx() 代替。
参数
[输出]dmabuf_fd返回硬件缓冲区的 DMABUF FD。
[输入]width缓冲区宽度,以字节为单位。
[输入]height缓冲区高度,以字节为单位。
[输入]layout缓冲区的布局。
[输入]colorFormat缓冲区的颜色格式。
返回值
成功返回 0,否则返回 -1。

◆ NvBufferCreateEx()

int NvBufferCreateEx ( int *  dmabuf_fd,
NvBufferCreateParams input_params 
)

分配硬件缓冲区。

参数
[输出]dmabuf_fd返回硬件缓冲区的 DMABUF FD。
[输入]input_params用于硬件缓冲区创建的输入参数。
返回值
成功返回 0,失败返回 -1

◆ NvBufferCreateInterlace()

int NvBufferCreateInterlace ( int *  dmabuf_fd,
NvBufferCreateParams input_params 
)

为隔行扫描格式分配硬件缓冲区。

参数
[输出]dmabuf_fd返回硬件缓冲区的 DMABUF FD。
[输入]input_params用于硬件缓冲区创建的输入参数。
返回值
成功返回 0,失败返回 -1

◆ NvBufferCreateWithChromaLoc()

int NvBufferCreateWithChromaLoc ( int *  dmabuf_fd,
NvBufferCreateParams input_params,
NvBufferChromaSubsamplingParams chromaSubsampling 
)

使用给定的色度二次采样位置分配硬件缓冲区。

参数
[输入]dmabuf_fd缓冲区的 DMABUF FD。
[输入]input_params用于硬件缓冲区创建的输入参数。
[输入]chromaSubsampling色度位置参数。
返回值
成功返回 0,失败返回 -1

◆ NvBufferDestroy()

int NvBufferDestroy ( int  dmabuf_fd)

销毁硬件缓冲区。

参数
[输入]dmabuf_fd指定要销毁的 dmabuf_fd hw_buffer
返回值
成功返回 0,失败返回 -1。

◆ NvBufferGetParams()

int NvBufferGetParams ( int  dmabuf_fd,
NvBufferParams params 
)

获取缓冲区参数。

参数
[输入]dmabuf_fd缓冲区的 DMABUF FD
[输出]params指向要填充参数的结构的指针。
返回值
成功返回 0,失败返回 -1。

◆ NvBufferGetParamsEx()

int NvBufferGetParamsEx ( int  dmabuf_fd,
NvBufferParamsEx exparams 
)

获取缓冲区扩展参数。

参数
[输入]dmabuf_fd缓冲区的 DMABUF FD
[输出]exparams指向要填充扩展参数的结构的指针。
返回值
成功返回 0,失败返回 -1。

◆ NvBufferGetSize()

int NvBufferGetSize ( void  )

此方法可用于获取硬件缓冲区结构大小。

返回值
硬件缓冲区结构大小。

◆ NvBufferMemMap()

int NvBufferMemMap ( int  dmabuf_fd,
unsigned int  plane,
NvBufferMemFlags  memflag,
void **  pVirtAddr 
)

获取平面的内存映射虚拟地址。

客户端必须在 CPU 中访问映射内存之前,调用 NvBufferMemSyncForCpu(),并传入此函数返回的虚拟地址。

内存映射完成后,CPU 和硬件设备之间必须协调映射内存修改,如下所示

  • CPU:如果 CPU 修改了任何映射内存,则客户端必须在任何硬件设备访问内存之前调用 NvBufferMemSyncForDevice()
  • 硬件设备:如果映射内存被任何硬件设备修改,则客户端必须在 CPU 访问内存之前调用 NvBufferMemSyncForCpu()
参数
[输入]dmabuf_fd缓冲区的 DMABUF FD。
[输入]plane视频帧平面。(适用于 NvBufferPayload_SurfArray。)
[输入]memflagNvBuffer 内存标志。
[输出]pVirtAddr内存映射平面的虚拟地址指针。
返回值
成功返回 0,失败返回 -1。

◆ NvBufferMemMapEx()

int NvBufferMemMapEx ( int  dmabuf_fd,
NvBufferParamsEx exparams,
unsigned int  plane,
NvBufferMemFlags  memflag,
void **  pVirtAddr 
)

获取平面的内存映射虚拟地址,用于另一个进程的 API。

客户端必须在另一个进程的 CPU 中访问映射内存之前,调用 NvBufferMemSyncForCpuEx(),并传入此函数返回的虚拟地址。

内存映射完成后,CPU 和硬件设备之间必须协调映射内存修改,如下所示

  • CPU:如果 CPU 修改了任何映射内存,则客户端必须在任何硬件设备访问内存之前调用 NvBufferMemSyncForDeviceEx()
  • 硬件设备:如果映射内存被任何硬件设备修改,则客户端必须在 CPU 访问内存之前调用 NvBufferMemSyncForCpuEx()
参数
[输入]dmabuf_fd缓冲区的 DMABUF FD。
[输入]exparams硬件缓冲区的扩展参数。
[输入]plane视频帧平面。(适用于 NvBufferPayload_SurfArray。)
[输入]memflagNvBuffer 内存标志。
[输出]pVirtAddr内存映射平面的虚拟地址指针。
返回值
成功返回 0,失败返回 -1。

◆ NvBufferMemSyncForCpu()

int NvBufferMemSyncForCpu ( int  dmabuf_fd,
unsigned int  plane,
void **  pVirtAddr 
)

同步 CPU 的硬件内存缓存。

另请参阅
NvBufferMemMap 以了解函数用途
参数
[输入]dmabuf_fd缓冲区的 DMABUF FD。
[输入]plane视频帧平面。
[输入]pVirtAddr内存映射平面的虚拟地址指针。
返回值
成功返回 0,失败返回 -1。

◆ NvBufferMemSyncForCpuEx()

int NvBufferMemSyncForCpuEx ( int  dmabuf_fd,
NvBufferParamsEx exparams,
unsigned int  plane,
void **  pVirtAddr 
)

同步 CPU 的硬件内存缓存,用于另一个进程的 API。

另请参阅
NvBufferMemMapEx 以了解函数用途
参数
[输入]dmabuf_fd缓冲区的 DMABUF FD。
[输入]exparams硬件缓冲区的扩展参数。
[输入]plane视频帧平面。
[输入]pVirtAddr内存映射平面的虚拟地址指针。
返回值
成功返回 0,失败返回 -1。

◆ NvBufferMemSyncForDevice()

int NvBufferMemSyncForDevice ( int  dmabuf_fd,
unsigned int  plane,
void **  pVirtAddr 
)

同步设备的硬件内存缓存。

另请参阅
NvBufferMemMap 以了解函数用途
参数
[输入]dmabuf_fd缓冲区的 DMABUF FD。
[输入]plane视频帧平面。
[输入]pVirtAddr内存映射平面的虚拟地址指针。
返回值
成功返回 0,失败返回 -1。

◆ NvBufferMemSyncForDeviceEx()

int NvBufferMemSyncForDeviceEx ( int  dmabuf_fd,
NvBufferParamsEx exparams,
unsigned int  plane,
void **  pVirtAddr 
)

同步设备的硬件内存缓存,用于另一个进程的 API。

另请参阅
NvBufferMemMapEx 以了解函数用途
参数
[输入]dmabuf_fd缓冲区的 DMABUF FD。
[输入]exparams硬件缓冲区的扩展参数。
[输入]plane视频帧平面。
[输入]pVirtAddr内存映射平面的虚拟地址指针。
返回值
成功返回 0,失败返回 -1。

◆ NvBufferMemUnMap()

int NvBufferMemUnMap ( int  dmabuf_fd,
unsigned int  plane,
void **  pVirtAddr 
)

取消映射平面的映射虚拟地址。

如果以下两个条件都为真,则客户端必须在取消映射内存之前调用 NvBufferMemSyncForDevice()

  • 映射内存已被 CPU 修改。
  • 映射内存将被硬件设备访问。
参数
[输入]dmabuf_fd缓冲区的 DMABUF FD。
[输入]plane视频帧平面。适用于 NvBufferPayload_SurfArray
[输入]pVirtAddr指向内存映射平面的虚拟地址指针。
返回值
成功返回 0,失败返回 -1。

◆ NvBufferMemUnMapEx()

int NvBufferMemUnMapEx ( int  dmabuf_fd,
NvBufferParamsEx exparams,
unsigned int  plane,
void **  pVirtAddr 
)

取消映射平面的映射虚拟地址,用于另一个进程的 API。

如果以下两个条件都为真,则客户端必须在另一个进程中取消映射内存之前调用 NvBufferMemSyncForDeviceEx()

  • 映射内存已被 CPU 修改。
  • 映射内存将被硬件设备访问。
参数
[输入]dmabuf_fd缓冲区的 DMABUF FD。
[输入]exparams硬件缓冲区的扩展参数。
[输入]plane视频帧平面。适用于 NvBufferPayload_SurfArray
[输入]pVirtAddr指向内存映射平面的虚拟地址指针。
返回值
成功返回 0,失败返回 -1。

◆ NvBufferSessionCreate()

NvBufferSession NvBufferSessionCreate ( void  )

创建新的 NvBufferSession,用于并行调度缓冲区变换和合成。

返回值
会话指针,失败时为 NULL。

◆ NvBufferSessionDestroy()

void NvBufferSessionDestroy ( NvBufferSession  session)

销毁现有的 NvBufferSession

参数
[输入]session现有的 NvBufferSession。

◆ NvBufferSyncObjWait()

int NvBufferSyncObjWait ( NvBufferSyncObjParams syncobj_params,
unsigned int  timeout 
)

此方法可用于等待同步点 ID。

参数
[输入]syncobj_params同步点对象参数。
[输入]timeout同步点等待超时值。
返回值
成功返回 0,失败返回 -1

◆ NvBufferTransform()

int NvBufferTransform ( int  src_dmabuf_fd,
int  dst_dmabuf_fd,
NvBufferTransformParams transform_params 
)

将一个 DMA 缓冲区变换为另一个 DMA 缓冲区。

此函数可以支持复制、缩放、翻转、旋转和裁剪的变换。

参数
[输入]src_dmabuf_fd源缓冲区的 DMABUF FD
[输入]dst_dmabuf_fd目标缓冲区的 DMABUF FD
[输入]transform_params变换参数
返回值
成功返回 0,失败返回 -1。

◆ NvBufferTransformAsync()

int NvBufferTransformAsync ( int  src_dmabuf_fd,
int  dst_dmabuf_fd,
NvBufferTransformParams transform_params,
NvBufferSyncObj syncobj 
)

异步(非阻塞)地将一个 DMA 缓冲区变换为另一个 DMA 缓冲区。

此函数可以支持复制、缩放、翻转、旋转和裁剪的变换。

参数
[输入]src_dmabuf_fd源缓冲区的 DMABUF FD
[输入]dst_dmabuf_fd目标缓冲区的 DMABUF FD
[输入]transform_params变换参数
[输入]syncobjnvbuffer 同步点对象
返回值
成功返回 0,失败返回 -1。

◆ NvBufferTransformEx()

int NvBufferTransformEx ( int  src_dmabuf_fd,
NvBufferParamsEx input_params,
int  dst_dmabuf_fd,
NvBufferParamsEx output_params,
NvBufferTransformParams transform_params 
)

将一个 DMA 缓冲区变换为另一个 DMA 缓冲区,用于另一个进程的 API。

此函数可以支持复制、缩放、翻转、旋转和裁剪的变换。

参数
[输入]src_dmabuf_fd源缓冲区的 DMABUF FD
[输入]input_params硬件缓冲区的扩展输入参数。
[输入]dst_dmabuf_fd目标缓冲区的 DMABUF FD
[输入]output_params硬件缓冲区的扩展输出参数。
[输入]transform_params变换参数
返回值
成功返回 0,失败返回 -1。

◆ NvDestroyEGLImage()

int NvDestroyEGLImage ( EGLDisplay  display,
EGLImageKHR  eglImage 
)

销毁 EGLImage 对象。

参数
[输入]display用于销毁 EGLImage 的 EGLDisplay 对象。如果为 NULL,则 nvbuf_utils() 使用其自身的 EGLDisplay 实例。
[输入]eglImage要销毁的 EGLImageKHR 对象。
返回值
成功返回 0,失败返回 -1

◆ NvEGLImageFromFd()

EGLImageKHR NvEGLImageFromFd ( EGLDisplay  display,
int  dmabuf_fd 
)

从 DMABUF FD 创建 EGLImage 实例。

参数
[输入]display在创建 EGLImage 期间使用的 EGLDisplay 对象。如果为 NULL,则 nvbuf_utils() 使用其自身的 EGLDisplay 实例。
[输入]dmabuf_fd从中创建 EGLImage 的缓冲区的 DMABUF FD。
返回值
成功时返回 EGLImageKHR,失败时返回 NULL

◆ NvReleaseFd()

int NvReleaseFd ( int  dmabuf_fd)

释放 dmabuf_fd 缓冲区。

另请参阅
ExtractfdFromNvBuffer()
参数
[输入]dmabuf_fd指定要释放的 dmabuf_fd
返回值
成功返回 0,失败返回 -1。

◆ Raw2NvBuffer()

int Raw2NvBuffer ( unsigned char *  ptr,
unsigned int  plane,
unsigned int  in_width,
unsigned int  in_height,
int  dmabuf_fd 
)

将原始缓冲区平面内容复制到 NvBuffer 平面。

参数
[输入]ptr指向输入原始平面数据的指针。
[输入]plane视频帧平面。
[输入]in_width原始数据平面的对齐宽度。
[输入]in_height原始数据平面的对齐高度。
[输入]dmabuf_fdNvBuffer 的 DMABUF FD。
返回值
成功返回 0,失败返回 -1。
. All rights reserved.