7.64. ioctl VIDIOC_SUBDEV_G_CLIENT_CAP, VIDIOC_SUBDEV_S_CLIENT_CAP

7.64.1. 名称

VIDIOC_SUBDEV_G_CLIENT_CAP - VIDIOC_SUBDEV_S_CLIENT_CAP - 获取或设置客户端功能。

7.64.2. 概要

VIDIOC_SUBDEV_G_CLIENT_CAP

int ioctl(int fd, VIDIOC_SUBDEV_G_CLIENT_CAP, struct v4l2_subdev_client_capability *argp)

VIDIOC_SUBDEV_S_CLIENT_CAP

int ioctl(int fd, VIDIOC_SUBDEV_S_CLIENT_CAP, struct v4l2_subdev_client_capability *argp)

7.64.3. 参数

fd

open() 返回的文件描述符。

argp

指向结构体 v4l2_subdev_client_capability 的指针。

7.64.4. 描述

这些 ioctl 用于获取和设置客户端(使用子设备 ioctl 的应用程序)的功能。客户端功能存储在已打开的子设备节点的文件句柄中,客户端必须为每个单独打开的子设备设置功能。

默认情况下,打开子设备节点时,不设置客户端功能。

客户端功能的目的是通知内核客户端的行为,主要与保持与不同内核和用户空间版本的兼容性有关。

VIDIOC_SUBDEV_G_CLIENT_CAP ioctl 返回与文件句柄 fd 关联的当前客户端功能。

VIDIOC_SUBDEV_S_CLIENT_CAP ioctl 为文件句柄 fd 设置客户端功能。新的功能完全替换当前的功能,因此该 ioctl 也可用于删除先前设置的功能。

VIDIOC_SUBDEV_S_CLIENT_CAP 修改结构体 v4l2_subdev_client_capability 以反映已接受的功能。内核不接受功能的常见情况是,内核版本比用户空间使用的头文件旧,因此内核不了解该功能。

type v4l2_subdev_client_capability
struct v4l2_subdev_client_capability

__u64

capabilities

已打开设备的子设备客户端功能。

客户端功能

功能

描述

V4L2_SUBDEV_CLIENT_CAP_STREAMS

客户端知道流。设置此标志可启用在各种 ioctl 中使用“流”字段(指流号)。如果未设置此标志(默认),内核会将“流”字段强制设置为 0。

V4L2_SUBDEV_CLIENT_CAP_INTERVAL_USES_WHICH

客户端知道 v4l2_subdev_frame_interval which 字段。如果未设置此标志(默认),内核会将 which 字段强制设置为 V4L2_SUBDEV_FORMAT_ACTIVE

7.64.5. 返回值

成功时返回 0,错误时返回 -1,并设置 errno 变量。通用错误代码在 通用错误代码 章节中描述。

ENOIOCTLCMD

内核不支持此 ioctl。