Jetson Linux API 参考文档

32.7.4 版本
V4L2 视频摄像头

详细描述

NVIDIA V4L2 摄像头描述和扩展。

摄像头设备节点是 "/dev/video%d"

支持的像素格式

采集平面 :------------------— V4L2_PIX_FMT_NV12M

支持的内存类型

内存采集平面
V4L2_MEMORY_MMAP
V4L2_MEMORY_DMABUF
V4L2_MEMORY_USERPTR
注意
对于摄像头,必须先设置采集平面的格式,然后才能请求缓冲区。

支持的控件

以下章节描述了支持的控件。

来自开源 V4L2-Controls 头的控件

控件 ID用途运行时可配置
- V4L2_CID_3A_LOCKAWB/AE 锁定

所有非运行时可配置的选项都必须在设置采集平面格式之后和请求缓冲区之前设置。

NVIDIA 特有控件

设置帧率

可以使用 VIDIOC_S_PARM IOCTL,通过设置 v4l2_streamparm.parm.output.timeperframe 中的分子和分母来设置摄像头帧率。选择摄像头模式可以覆盖此设置。如果要同时选择摄像头模式和指定的帧率,则必须在设置帧率之前选择摄像头模式。

摄像头采集元数据

可以查询摄像头以报告与帧相关的元数据。有关更多信息,请参阅 V4L2_CID_ARGUS_METADATA

EOS 处理

如果没有更多空闲缓冲区排队,摄像头会输出所有排队的带有数据和 TIME_OUT 的空闲缓冲区。如果遇到错误,则会将一个带有 V4L2_BUF_FLAG_LAST 标志的空闲缓冲区排队到输出。

数据结构

struct  _v4l2_argus_denoise_strength
 保存去噪操作的强度值。 更多...
 
struct  _v4l2_argus_edge_enhance_strength
 保存边缘增强操作的强度值。 更多...
 
struct  _v4l2_argus_exposure_compensation
 保存曝光补偿的值。 更多...
 
struct  _v4l2_argus_ispdigital_gainrange
 保存 ISP 数字增益范围的值。 更多...
 
struct  _v4l2_argus_color_saturation
 保存绝对色彩饱和度的值。 更多...
 
struct  _v4l2_argus_gainrange
 保存增益范围的值。 更多...
 
struct  _v4l2_argus_exposure_timerange
 保存曝光范围的值。 更多...
 
struct  _v4l2_argus_ctrl_metadata
 保存摄像头输出元数据的值。 更多...
 

#define V4L2_CID_ARGUS_AUTO_WHITE_BALANCE_MODE   (V4L2_CID_CAMERA_CLASS_BASE+20)
 定义用于设置摄像头自动白平衡模式的控件 ID。 更多...
 
#define V4L2_CID_ARGUS_SENSOR_MODE   (V4L2_CID_CAMERA_CLASS_BASE+32)
 定义用于设置摄像头传感器模式的控件 ID。 更多...
 
#define V4L2_CID_ARGUS_DENOISE_STRENGTH   (V4L2_CID_CAMERA_CLASS_BASE+33)
 定义用于设置摄像头去噪强度的控件 ID。 更多...
 
#define V4L2_CID_ARGUS_DENOISE_MODE   (V4L2_CID_CAMERA_CLASS_BASE+34)
 定义用于设置摄像头去噪模式的控件 ID。 更多...
 
#define V4L2_CID_ARGUS_EE_STRENGTH   (V4L2_CID_CAMERA_CLASS_BASE+35)
 定义用于设置摄像头边缘增强强度的控件 ID。 更多...
 
#define V4L2_CID_ARGUS_EE_MODE   (V4L2_CID_CAMERA_CLASS_BASE+36)
 定义用于设置摄像头边缘增强模式的控件 ID。 更多...
 
#define V4L2_CID_ARGUS_AE_ANTIBANDING_MODE   (V4L2_CID_CAMERA_CLASS_BASE+37)
 定义用于设置摄像头自动曝光防闪烁模式的控件 ID。 更多...
 
#define V4L2_CID_ARGUS_EXPOSURE_COMPENSATION   (V4L2_CID_CAMERA_CLASS_BASE+38)
 定义用于设置摄像头边缘增强设置的控件 ID。 更多...
 
#define V4L2_CID_ARGUS_ISP_DIGITAL_GAIN_RANGE   (V4L2_CID_CAMERA_CLASS_BASE+39)
 定义用于设置摄像头边缘增强设置的控件 ID。 更多...
 
#define V4L2_CID_ARGUS_COLOR_SATURATION   (V4L2_CID_CAMERA_CLASS_BASE+40)
 定义用于设置摄像头传感器模式的控件 ID。 更多...
 
#define V4L2_CID_ARGUS_GAIN_RANGE   (V4L2_CID_CAMERA_CLASS_BASE+41)
 定义用于设置摄像头边缘增强设置的控件 ID。 更多...
 
#define V4L2_CID_ARGUS_EXPOSURE_TIME_RANGE   (V4L2_CID_CAMERA_CLASS_BASE+42)
 定义用于设置摄像头边缘增强设置的控件 ID。 更多...
 
#define V4L2_CID_ARGUS_METADATA   (V4L2_CID_CAMERA_CLASS_BASE+43)
 定义用于获取摄像头 Argus 输出元数据的控件 ID。 更多...
 

类型定义

typedef struct _v4l2_argus_denoise_strength v4l2_argus_denoise_strength
 保存去噪操作的强度值。 更多...
 
typedef struct _v4l2_argus_edge_enhance_strength v4l2_argus_edge_enhance_strength
 保存边缘增强操作的强度值。 更多...
 
typedef struct _v4l2_argus_exposure_compensation v4l2_argus_exposure_compensation
 保存曝光补偿的值。 更多...
 
typedef struct _v4l2_argus_ispdigital_gainrange v4l2_argus_ispdigital_gainrange
 保存 ISP 数字增益范围的值。 更多...
 
typedef struct _v4l2_argus_color_saturation v4l2_argus_color_saturation
 保存绝对色彩饱和度的值。 更多...
 
typedef struct _v4l2_argus_gainrange v4l2_argus_gainrange
 保存增益范围的值。 更多...
 
typedef struct _v4l2_argus_exposure_timerange v4l2_argus_exposure_timerange
 保存曝光范围的值。 更多...
 
typedef struct _v4l2_argus_ctrl_metadata v4l2_argus_ctrl_metadata
 保存摄像头输出元数据的值。 更多...
 

枚举

enum  v4l2_argus_denoise_mode {
  V4L2_ARGUS_DENOISE_MODE_UNKNOWN = 0,
  V4L2_ARGUS_DENOISE_MODE_OFF = 1,
  V4L2_ARGUS_DENOISE_MODE_FAST = 2,
  V4L2_ARGUS_DENOISE_MODE_HIGH_QUALITY = 3
}
 枚举指定去噪模式的类型。 更多...
 
enum  v4l2_argus_edge_enhance_mode {
  V4L2_ARGUS_EDGE_ENHANCE_MODE_UNKNOWN = 0,
  V4L2_ARGUS_EDGE_ENHANCE_MODE_OFF = 1,
  V4L2_ARGUS_EDGE_ENHANCE_MODE_FAST = 2,
  V4L2_ARGUS_EDGE_ENHANCE_MODE_HIGH_QUALITY = 3
}
 枚举指定边缘增强模式的类型。 更多...
 
enum  v4l2_argus_ac_ae_antibanding_mode {
  V4L2_ARGUS_AE_ANTIBANDING_MODE_UNKNOWN = 0,
  V4L2_ARGUS_AE_ANTIBANDING_MODE_OFF = 1,
  V4L2_ARGUS_AE_ANTIBANDING_MODE_AUTO = 2,
  V4L2_ARGUS_AE_ANTIBANDING_MODE_50HZ = 3,
  V4L2_ARGUS_AE_ANTIBANDING_MODE_60HZ = 4
}
 枚举指定 AE 防闪烁模式的类型。 更多...
 
enum  v4l2_argus_ac_awb_mode {
  V4L2_ARGUS_AWB_MODE_OFF = 1,
  V4L2_ARGUS_AWB_MODE_AUTO = 2,
  V4L2_ARGUS_AWB_MODE_INCANDESCENT = 3,
  V4L2_ARGUS_AWB_MODE_FLUORESCENT = 4,
  V4L2_ARGUS_AWB_MODE_WARM_FLUORESCENT = 5,
  V4L2_ARGUS_AWB_MODE_DAYLIGHT = 6,
  V4L2_ARGUS_AWB_MODE_CLOUDY_DAYLIGHT = 7,
  V4L2_ARGUS_AWB_MODE_TWILIGHT = 8,
  V4L2_ARGUS_AWB_MODE_SHADE = 9,
  V4L2_ARGUS_AWB_MODE_MANUAL = 10
}
 枚举指定 AC AWB 模式的类型。 更多...
 
enum  v4l2_argus_ae_state {
  V4L2_ARGUS_AeState_Unknown = 0,
  V4L2_ARGUS_AE_STATE_INACTIVE = 1,
  V4L2_ARGUS_AE_STATE_SEARCHING = 2,
  V4L2_ARGUS_AE_STATE_CONVERGED = 3,
  V4L2_ARGUS_AE_STATE_FLASH_REQUIRED = 4,
  V4L2_ARGUS_AE_STATE_TIMEOUT = 5
}
 枚举指定 AE 状态的类型。 更多...
 
enum  v4l2_argus_awb_state {
  V4L2_ARGUS_AwbState_Unknown = 0,
  V4L2_ARGUS_AWB_STATE_INACTIVE = 1,
  V4L2_ARGUS_AWB_STATE_SEARCHING = 2,
  V4L2_ARGUS_AWB_STATE_CONVERGED = 3,
  V4L2_ARGUS_AWB_STATE_LOCKED = 4
}
 枚举指定 AWB 状态的类型。 更多...
 

宏定义文档

◆ V4L2_CID_ARGUS_AE_ANTIBANDING_MODE

#define V4L2_CID_ARGUS_AE_ANTIBANDING_MODE   (V4L2_CID_CAMERA_CLASS_BASE+37)

定义用于设置摄像头自动曝光防闪烁模式的控件 ID。

类型为 v4l2_argus_ac_ae_antibanding_mode 的值必须与此控件一起提供。

注意
此控件应在设置采集平面格式后设置。

定义位于文件 v4l2_nv_extensions.h 的第 1514 行。

◆ V4L2_CID_ARGUS_AUTO_WHITE_BALANCE_MODE

#define V4L2_CID_ARGUS_AUTO_WHITE_BALANCE_MODE   (V4L2_CID_CAMERA_CLASS_BASE+20)

定义用于设置摄像头自动白平衡模式的控件 ID。

类型为 v4l2_argus_ac_awb_mode 的值必须与此控件一起提供。

注意
此控件应在设置采集平面格式后设置。

定义位于文件 v4l2_nv_extensions.h 的第 1449 行。

◆ V4L2_CID_ARGUS_COLOR_SATURATION

#define V4L2_CID_ARGUS_COLOR_SATURATION   (V4L2_CID_CAMERA_CLASS_BASE+40)

定义用于设置摄像头传感器模式的控件 ID。

类型为 v4l2_argus_color_saturation 的有效结构的指针必须与此控件一起提供。必须将标志 EnableSaturation 设置为 true 才能启用设置指定的色彩饱和度

注意
此控件应在设置格式之后和请求采集平面上的缓冲区之前设置。

定义位于文件 v4l2_nv_extensions.h 的第 1549 行。

◆ V4L2_CID_ARGUS_DENOISE_MODE

#define V4L2_CID_ARGUS_DENOISE_MODE   (V4L2_CID_CAMERA_CLASS_BASE+34)

定义用于设置摄像头去噪模式的控件 ID。

类型为 v4l2_argus_denoise_mode 的值必须与此控件一起提供。

注意
此控件应在设置采集平面格式后设置。

定义位于文件 v4l2_nv_extensions.h 的第 1481 行。

◆ V4L2_CID_ARGUS_DENOISE_STRENGTH

#define V4L2_CID_ARGUS_DENOISE_STRENGTH   (V4L2_CID_CAMERA_CLASS_BASE+33)

定义用于设置摄像头去噪强度的控件 ID。

类型为 v4l2_argus_denoise_strength 的有效结构的指针必须与此控件一起提供。

注意
此控件应在设置采集平面格式后设置。

定义位于文件 v4l2_nv_extensions.h 的第 1470 行。

◆ V4L2_CID_ARGUS_EE_MODE

#define V4L2_CID_ARGUS_EE_MODE   (V4L2_CID_CAMERA_CLASS_BASE+36)

定义用于设置摄像头边缘增强模式的控件 ID。

类型为 v4l2_argus_edge_enhance_mode 的值必须与此控件一起提供。

注意
此控件应在设置采集平面格式后设置。

定义位于文件 v4l2_nv_extensions.h 的第 1503 行。

◆ V4L2_CID_ARGUS_EE_STRENGTH

#define V4L2_CID_ARGUS_EE_STRENGTH   (V4L2_CID_CAMERA_CLASS_BASE+35)

定义用于设置摄像头边缘增强强度的控件 ID。

类型为 v4l2_argus_edge_enhance_strength 的有效结构的指针必须与此控件一起提供。

注意
此控件应在设置采集平面格式后设置。

定义位于文件 v4l2_nv_extensions.h 的第 1492 行。

◆ V4L2_CID_ARGUS_EXPOSURE_COMPENSATION

#define V4L2_CID_ARGUS_EXPOSURE_COMPENSATION   (V4L2_CID_CAMERA_CLASS_BASE+38)

定义用于设置摄像头边缘增强设置的控件 ID。

类型为 v4l2_argus_exposure_compensation 的有效结构的指针必须与此控件一起提供。

注意
此控件应在设置采集平面格式后设置。

定义位于文件 v4l2_nv_extensions.h 的第 1525 行。

◆ V4L2_CID_ARGUS_EXPOSURE_TIME_RANGE

#define V4L2_CID_ARGUS_EXPOSURE_TIME_RANGE   (V4L2_CID_CAMERA_CLASS_BASE+42)

定义用于设置摄像头边缘增强设置的控件 ID。

类型为 v4l2_argus_exposure_timerange 的有效结构的指针必须与此控件一起提供。

注意
此控件应在设置采集平面格式后设置。

定义位于文件 v4l2_nv_extensions.h 的第 1571 行。

◆ V4L2_CID_ARGUS_GAIN_RANGE

#define V4L2_CID_ARGUS_GAIN_RANGE   (V4L2_CID_CAMERA_CLASS_BASE+41)

定义用于设置摄像头边缘增强设置的控件 ID。

类型为 v4l2_argus_gainrange 的有效结构的指针必须与此控件一起提供。

注意
此控件应在设置采集平面格式后设置。

定义位于文件 v4l2_nv_extensions.h 的第 1560 行。

◆ V4L2_CID_ARGUS_ISP_DIGITAL_GAIN_RANGE

#define V4L2_CID_ARGUS_ISP_DIGITAL_GAIN_RANGE   (V4L2_CID_CAMERA_CLASS_BASE+39)

定义用于设置摄像头边缘增强设置的控件 ID。

类型为 v4l2_argus_ispdigital_gainrange 的有效结构的指针必须与此控件一起提供。

注意
此控件应在设置采集平面格式后设置。

定义位于文件 v4l2_nv_extensions.h 的第 1536 行。

◆ V4L2_CID_ARGUS_METADATA

#define V4L2_CID_ARGUS_METADATA   (V4L2_CID_CAMERA_CLASS_BASE+43)

定义用于获取摄像头 argus 输出元数据的控件 ID。

类型为 v4l2_argus_ctrl_metadata 的有效结构的指针必须与此控件一起提供。

注意
此控件必须在从采集平面成功出队缓冲区后读取。结构中的值在缓冲区再次入队之前有效。

定义位于文件 v4l2_nv_extensions.h 的第 1583 行。

◆ V4L2_CID_ARGUS_SENSOR_MODE

#define V4L2_CID_ARGUS_SENSOR_MODE   (V4L2_CID_CAMERA_CLASS_BASE+32)

定义用于设置摄像头传感器模式的控件 ID。

非负整数值必须与此控件一起提供。

注意
此控件应在设置格式之后和请求采集平面上的缓冲区之前设置。

定义位于文件 v4l2_nv_extensions.h 的第 1459 行。

类型定义文档

◆ v4l2_argus_color_saturation

保存绝对色彩饱和度的值。

必须与 V4L2_CID_ARGUS_COLOR_SATURATION ioctl 一起使用。

◆ v4l2_argus_ctrl_metadata

保存摄像头输出元数据的值。

必须与 V4L2_CID_ARGUS_METADATA ioctl 一起使用。

◆ v4l2_argus_denoise_strength

保存去噪操作的强度值。

必须与 V4L2_CID_ARGUS_DENOISE_STRENGTH ioctl 一起使用。

◆ v4l2_argus_edge_enhance_strength

保存边缘增强操作的强度值。

必须与 V4L2_CID_ARGUS_EE_STRENGTH ioctl 一起使用。

◆ v4l2_argus_exposure_compensation

保存曝光补偿的值。

必须与 V4L2_CID_ARGUS_EXPOSURE_COMPENSATION ioctl 一起使用。

◆ v4l2_argus_exposure_timerange

保存曝光范围的值。

必须与 V4L2_CID_ARGUS_EXPOSURE_TIME_RANGE ioctl 一起使用。

◆ v4l2_argus_gainrange

保存增益范围的值。

必须与 V4L2_CID_ARGUS_GAIN_RANGE ioctl 一起使用。

◆ v4l2_argus_ispdigital_gainrange

保存 ISP 数字增益范围的值。

必须与 V4L2_CID_ARGUS_ISP_DIGITAL_GAIN_RANGE ioctl 一起使用。

枚举类型文档

◆ v4l2_argus_ac_ae_antibanding_mode

枚举指定 AE 防闪烁模式的类型。

枚举器
V4L2_ARGUS_AE_ANTIBANDING_MODE_UNKNOWN 
V4L2_ARGUS_AE_ANTIBANDING_MODE_OFF 
V4L2_ARGUS_AE_ANTIBANDING_MODE_AUTO 
V4L2_ARGUS_AE_ANTIBANDING_MODE_50HZ 
V4L2_ARGUS_AE_ANTIBANDING_MODE_60HZ 

定义位于文件 v4l2_nv_extensions.h 的第 2306 行。

◆ v4l2_argus_ac_awb_mode

枚举指定 AC AWB 模式的类型。

枚举器
V4L2_ARGUS_AWB_MODE_OFF 
V4L2_ARGUS_AWB_MODE_AUTO 
V4L2_ARGUS_AWB_MODE_INCANDESCENT 
V4L2_ARGUS_AWB_MODE_FLUORESCENT 
V4L2_ARGUS_AWB_MODE_WARM_FLUORESCENT 
V4L2_ARGUS_AWB_MODE_DAYLIGHT 
V4L2_ARGUS_AWB_MODE_CLOUDY_DAYLIGHT 
V4L2_ARGUS_AWB_MODE_TWILIGHT 
V4L2_ARGUS_AWB_MODE_SHADE 
V4L2_ARGUS_AWB_MODE_MANUAL 

定义位于文件 v4l2_nv_extensions.h 的第 2317 行。

◆ v4l2_argus_ae_state

枚举指定 AE 状态的类型。

枚举器
V4L2_ARGUS_AeState_Unknown 
V4L2_ARGUS_AE_STATE_INACTIVE 
V4L2_ARGUS_AE_STATE_SEARCHING 
V4L2_ARGUS_AE_STATE_CONVERGED 
V4L2_ARGUS_AE_STATE_FLASH_REQUIRED 
V4L2_ARGUS_AE_STATE_TIMEOUT 

定义位于文件 v4l2_nv_extensions.h 的第 2333 行。

◆ v4l2_argus_awb_state

枚举指定 AWB 状态的类型。

枚举器
V4L2_ARGUS_AwbState_Unknown 
V4L2_ARGUS_AWB_STATE_INACTIVE 
V4L2_ARGUS_AWB_STATE_SEARCHING 
V4L2_ARGUS_AWB_STATE_CONVERGED 
V4L2_ARGUS_AWB_STATE_LOCKED 

定义位于文件 v4l2_nv_extensions.h 的第 2345 行。

◆ v4l2_argus_denoise_mode

枚举指定去噪模式的类型。

枚举器
V4L2_ARGUS_DENOISE_MODE_UNKNOWN 
V4L2_ARGUS_DENOISE_MODE_OFF 
V4L2_ARGUS_DENOISE_MODE_FAST 
V4L2_ARGUS_DENOISE_MODE_HIGH_QUALITY 

定义位于文件 v4l2_nv_extensions.h 的第 2286 行。

◆ v4l2_argus_edge_enhance_mode

枚举指定边缘增强模式的类型。

枚举器
V4L2_ARGUS_EDGE_ENHANCE_MODE_UNKNOWN 
V4L2_ARGUS_EDGE_ENHANCE_MODE_OFF 
V4L2_ARGUS_EDGE_ENHANCE_MODE_FAST 
V4L2_ARGUS_EDGE_ENHANCE_MODE_HIGH_QUALITY 

定义位于文件 v4l2_nv_extensions.h 的第 2296 行。

. All rights reserved.