NVIDIA V4L2 视频转换器描述和扩展。
使用视频转换器进行颜色空间转换、缩放以及硬件缓冲区内存 (V4L2_MEMORY_MMAP/
)、软件缓冲区内存 (V4L2_MEMORY_DMABUF
V4L2_MEMORY_USERPTR
) 之间的转换,以及其他操作,例如裁剪、翻转/旋转和时域噪声抑制 (TNR)。视频转换器设备节点为 "/dev/nvhost-vic"
。
像素格式 | 像素格式 |
---|---|
V4L2_PIX_FMT_YUV444M | V4L2_PIX_FMT_YVU422M |
V4L2_PIX_FMT_YUV420M | V4L2_PIX_FMT_YVU420M |
V4L2_PIX_FMT_NV12M | V4L2_PIX_FMT_GREY |
V4L2_PIX_FMT_YUYV | V4L2_PIX_FMT_YVYU |
V4L2_PIX_FMT_UYVY | V4L2_PIX_FMT_VYUY |
V4L2_PIX_FMT_ABGR32 | V4L2_PIX_FMT_XBGR32 |
像素格式 | 像素格式 |
---|---|
V4L2_PIX_FMT_YUV420M | V4L2_PIX_FMT_NV12M |
V4L2_PIX_FMT_UYVY | V4L2_PIX_FMT_YUYV |
内存 | 输出平面 | 捕获平面 |
---|---|---|
V4L2_MEMORY_MMAP | 是 | 是 |
V4L2_MEMORY_DMABUF | 是 | 是 |
V4L2_MEMORY_USERPTR | 是 | 是 |
视频转换器支持使用类型为 V4L2_BUF_TYPE_VIDEO_CAPTURE
和目标为 V4L2_SEL_TGT_CROP
的 VIDIOC_S_SELECTION
IOCTL 进行裁剪。这必须在请求任一平面上的缓冲区之前设置。
必须遵循以下顺序来发送 EOS 并从转换器接收 EOS。
v4l2_buffer.m.planes[0].bytesused = 0
) 的 bytesused = 0 的缓冲区,将 EOS 发送到转换器。数据结构 | |
struct | v4l2_ctrl_video_displaydata_ |
struct | _v4l2_ctrl_video_hdrmasteringdisplaydata |
HDR 元数据。 更多... | |
struct | _v4l2_ctrl_video_device_poll |
轮询设备。 更多... | |
宏 | |
#define | V4L2_CID_VIDEO_CONVERT_OUTPUT_PLANE_LAYOUT (V4L2_CID_MPEG_BASE+523) |
定义用于设置转换器输出平面缓冲区布局的 Control ID。 更多... | |
#define | V4L2_CID_VIDEO_CONVERT_CAPTURE_PLANE_LAYOUT (V4L2_CID_MPEG_BASE+524) |
定义用于设置转换器捕获平面缓冲区布局的 Control ID。 更多... | |
#define | V4L2_CID_VIDEO_CONVERT_FLIP_METHOD (V4L2_CID_MPEG_BASE+525) |
定义用于设置转换器翻转/旋转方法的 Control ID。 更多... | |
#define | V4L2_CID_VIDEO_CONVERT_INTERPOLATION_METHOD (V4L2_CID_MPEG_BASE+526) |
定义用于设置转换器插值方法的 Control ID。 更多... | |
#define | V4L2_CID_VIDEO_CONVERT_TNR_ALGORITHM (V4L2_CID_MPEG_BASE+527) |
定义用于设置转换器时域噪声抑制 (TNR) 算法的 Control ID。 更多... | |
类型定义 | |
typedef struct v4l2_ctrl_video_displaydata_ | v4l2_ctrl_video_displaydata |
typedef struct _v4l2_ctrl_video_hdrmasteringdisplaydata | v4l2_ctrl_video_hdrmasteringdisplaydata |
HDR 元数据。 更多... | |
typedef struct _v4l2_ctrl_video_device_poll | v4l2_ctrl_video_device_poll |
轮询设备。 更多... | |
#define V4L2_CID_VIDEO_CONVERT_CAPTURE_PLANE_LAYOUT (V4L2_CID_MPEG_BASE+524) |
定义用于设置转换器捕获平面缓冲区布局的 Control ID。
类型为 v4l2_nv_buffer_layout
的值必须与此控件一起提供。
定义于文件 v4l2_nv_extensions.h 的第 693 行。
#define V4L2_CID_VIDEO_CONVERT_FLIP_METHOD (V4L2_CID_MPEG_BASE+525) |
定义用于设置转换器翻转/旋转方法的 Control ID。
类型为 v4l2_flip_method
的值必须与此控件一起提供。
定义于文件 v4l2_nv_extensions.h 的第 702 行。
#define V4L2_CID_VIDEO_CONVERT_INTERPOLATION_METHOD (V4L2_CID_MPEG_BASE+526) |
定义用于设置转换器插值方法的 Control ID。
类型为 v4l2_interpolation_method
的值必须与此控件一起提供。
定义于文件 v4l2_nv_extensions.h 的第 711 行。
#define V4L2_CID_VIDEO_CONVERT_OUTPUT_PLANE_LAYOUT (V4L2_CID_MPEG_BASE+523) |
定义用于设置转换器输出平面缓冲区布局的 Control ID。
类型为 v4l2_nv_buffer_layout
的值必须与此控件一起提供。
定义于文件 v4l2_nv_extensions.h 的第 684 行。
#define V4L2_CID_VIDEO_CONVERT_TNR_ALGORITHM (V4L2_CID_MPEG_BASE+527) |
定义用于设置转换器时域噪声抑制 (TNR) 算法的 Control ID。
类型为 v4l2_tnr_algorithm
的值必须与此控件一起提供。
定义于文件 v4l2_nv_extensions.h 的第 722 行。
typedef struct _v4l2_ctrl_video_device_poll v4l2_ctrl_video_device_poll |
轮询设备。
typedef struct v4l2_ctrl_video_displaydata_ v4l2_ctrl_video_displaydata |
HDR 元数据。
enum v4l2_flip_method |
指定旋转/翻转算法的类型。
定义于文件 v4l2_nv_extensions.h 的第 2491 行。
指定插值方法的类型。
定义于文件 v4l2_nv_extensions.h 的第 2505 行。
枚举指定缓冲区布局的类型。
枚举器 | |
---|---|
V4L2_NV_BUFFER_LAYOUT_PITCH | Pitch 线性布局。 |
V4L2_NV_BUFFER_LAYOUT_BLOCKLINEAR | 块线性布局。 |
定义于文件 v4l2_nv_extensions.h 的第 2483 行。
enum v4l2_tnr_algorithm |
指定 TNR 算法的类型。
定义于文件 v4l2_nv_extensions.h 的第 2517 行。
指定 YUV 重新缩放方法的类型。
枚举器 | |
---|---|
V4L2_YUV_RESCALE_NONE | 禁用。 标准(有限范围 [16 235])到扩展(全范围 [0 255]) |
V4L2_YUV_RESCALE_STD_TO_EXT | 扩展(全范围 [0 255])到标准(有限范围 [16 235]) |
V4L2_YUV_RESCALE_EXT_TO_STD |
定义于文件 v4l2_nv_extensions.h 的第 2530 行。