7.56. ioctl VIDIOC_SUBDEV_ENUM_FRAME_INTERVAL¶
7.56.1. 名称¶
VIDIOC_SUBDEV_ENUM_FRAME_INTERVAL - 枚举帧间隔
7.56.2. 概要¶
-
VIDIOC_SUBDEV_ENUM_FRAME_INTERVAL¶
int ioctl(int fd, VIDIOC_SUBDEV_ENUM_FRAME_INTERVAL, struct v4l2_subdev_frame_interval_enum * argp)
7.56.3. 参数¶
fd
由
open()
返回的文件描述符。argp
指向结构体
v4l2_subdev_frame_interval_enum
的指针。
7.56.4. 描述¶
此 ioctl 允许应用程序枚举给定子设备焊盘上的可用帧间隔。帧间隔仅对可以自行控制帧周期的子设备有意义。这包括例如图像传感器和电视调谐器。
对于图像传感器的常见用例,子设备输出焊盘上可用的帧间隔取决于同一焊盘上的帧格式和大小。因此,应用程序在枚举帧间隔时必须指定所需的格式和大小。
为了枚举帧间隔,应用程序需要初始化 index
、 pad
、 which
、 code
、 width
和 height
结构体的字段 v4l2_subdev_frame_interval_enum
并调用带有指向此结构的指针的 ioctl VIDIOC_SUBDEV_ENUM_FRAME_INTERVAL ioctl。驱动程序填充结构的其余部分,或者如果输入字段之一无效,则返回 EINVAL 错误代码。通过从索引零开始并递增一,直到返回 EINVAL
,可以枚举所有帧间隔。
可用的帧间隔可能取决于子设备其他焊盘上的当前“尝试”格式,以及当前活动链接。有关尝试格式的更多信息,请参阅 ioctl VIDIOC_SUBDEV_G_FMT, VIDIOC_SUBDEV_S_FMT 。
支持帧间隔枚举 ioctl 的子设备应仅在单个焊盘上实现它。在同一子设备的多个焊盘上支持时,其行为未定义。
-
类型 v4l2_subdev_frame_interval_enum¶
__u32 |
|
枚举中格式的编号,由应用程序设置。 |
__u32 |
|
由媒体控制器 API 报告的焊盘编号。 |
__u32 |
|
媒体总线格式代码,如 媒体总线格式 中定义。 |
__u32 |
|
帧宽度,以像素为单位。 |
__u32 |
|
帧高度,以像素为单位。 |
struct |
|
连续视频帧之间的周期,以秒为单位。 |
__u32 |
|
要枚举的帧间隔,来自枚举 v4l2_subdev_format_whence。 |
__u32 |
|
流标识符。 |
__u32 |
|
为将来扩展保留。应用程序和驱动程序必须将数组设置为零。 |
7.56.5. 返回值¶
成功时返回 0,出错时返回 -1 并适当设置 errno
变量。通用错误代码在 通用错误代码 章节中描述。
- EINVAL
结构体
v4l2_subdev_frame_interval_enum
的pad
引用了不存在的焊盘,which
字段具有不受支持的值,code
、width
或height
字段之一对于给定的焊盘无效,或者index
字段超出范围。