7.63. ioctl VIDIOC_SUBDEV_G_SELECTION, VIDIOC_SUBDEV_S_SELECTION¶
7.63.1. 名称¶
VIDIOC_SUBDEV_G_SELECTION - VIDIOC_SUBDEV_S_SELECTION - 获取或设置子设备焊盘上的选择矩形
7.63.2. 概要¶
-
VIDIOC_SUBDEV_G_SELECTION¶
int ioctl(int fd, VIDIOC_SUBDEV_G_SELECTION, struct v4l2_subdev_selection *argp)
-
VIDIOC_SUBDEV_S_SELECTION¶
int ioctl(int fd, VIDIOC_SUBDEV_S_SELECTION, struct v4l2_subdev_selection *argp)
7.63.3. 参数¶
fd
由
open()
返回的文件描述符。argp
指向结构体
v4l2_subdev_selection
的指针。
7.63.4. 描述¶
选择用于配置子设备执行的各种影响图像尺寸的图像处理功能。这目前包括裁剪、缩放和合成。
选择API取代了旧的子设备裁剪API。选择API支持裁剪API的所有功能以及更多功能。
有关每个选择目标如何影响子设备内部图像处理管道的更多信息,请参阅子设备接口。
如果子设备节点已在只读模式下注册,则仅当 which
字段设置为 V4L2_SUBDEV_FORMAT_TRY
时,对 VIDIOC_SUBDEV_S_SELECTION
的调用才有效,否则将返回错误,并且 errno 变量设置为 -EPERM
。
7.63.4.1. 选择目标的类型¶
有两种类型的选择目标:实际的和边界的。实际目标是配置硬件的目标。 BOUNDS目标将返回一个包含所有可能的实际矩形的矩形。
7.63.4.2. 发现支持的功能¶
要发现支持哪些目标,用户可以在它们上执行 VIDIOC_SUBDEV_G_SELECTION
。任何不受支持的目标都将返回 EINVAL
。
选择目标和标志记录在通用选择定义中。
-
类型 v4l2_subdev_selection¶
__u32 |
|
来自枚举 v4l2_subdev_format_whence 的活动或尝试选择。 |
__u32 |
|
媒体框架报告的焊盘编号。 |
__u32 |
|
目标选择矩形。 请参阅通用选择定义。 |
__u32 |
|
标志。 请参阅选择标志。 |
结构体 |
|
选择矩形,以像素为单位。 |
__u32 |
|
流标识符。 |
__u32 |
|
保留供将来扩展使用。 应用程序和驱动程序必须将数组设置为零。 |
7.63.5. 返回值¶
成功时返回 0,失败时返回 -1,并且 errno
变量设置为相应的值。 通用错误代码在通用错误代码一章中描述。
- EBUSY
由于焊盘当前正忙,无法更改选择矩形。 这可能是由焊盘上的活动视频流引起的。 在不执行其他操作以首先修复问题的情况下,不得重试ioctl。 仅由
VIDIOC_SUBDEV_S_SELECTION
返回- EINVAL
结构体
v4l2_subdev_selection
的pad
引用了不存在的焊盘,which
字段具有不受支持的值,或者给定的子设备焊盘不支持选择目标。- EPERM
在只读子设备上调用了
VIDIOC_SUBDEV_S_SELECTION
ioctl,并且which
字段设置为V4L2_SUBDEV_FORMAT_ACTIVE
。