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