7.18. ioctl VIDIOC_ENUMINPUT¶
7.18.1. 名称¶
VIDIOC_ENUMINPUT - 枚举视频输入
7.18.2. 概要¶
-
VIDIOC_ENUMINPUT¶
int ioctl(int fd, VIDIOC_ENUMINPUT, struct v4l2_input *argp)
7.18.3. 参数¶
fd
由
open()
返回的文件描述符。argp
指向 struct
v4l2_input
的指针。
7.18.4. 描述¶
要查询视频输入的属性,应用程序需要初始化 struct v4l2_input
的 index
字段,并使用指向此结构的指针调用 ioctl VIDIOC_ENUMINPUT。驱动程序会填充结构的其余部分,或者当索引超出范围时返回 EINVAL
错误代码。要枚举所有输入,应用程序应从索引零开始,每次递增一,直到驱动程序返回 EINVAL
。
-
类型 v4l2_input¶
__u32 |
|
标识输入,由应用程序设置。 |
__u8 |
|
视频输入的名称,一个以 NULL 结尾的 ASCII 字符串,例如:“Vin (复合 2)”。此信息供用户使用,最好是设备本身的连接器标签。 |
__u32 |
|
输入类型,请参阅 输入类型。 |
__u32 |
|
驱动程序最多可以枚举 32 个视频和音频输入。如果这是当前选择的视频输入,则此字段显示哪些音频输入可作为音频源选择。它是一个位掩码。LSB 对应于音频输入 0,MSB 对应于输入 31。可以设置任意数量的位,或者不设置任何位。 当驱动程序不枚举音频输入时,不得设置任何位。应用程序不应将其解释为缺少音频支持。一些驱动程序会自动选择音频源,并且不枚举它们,因为无论如何都没有选择。 有关音频输入以及如何选择当前输入的详细信息,请参阅 音频输入和输出。 |
__u32 |
|
捕获设备可以有零个或多个调谐器(RF 解调器)。当 |
|
每个视频输入支持一种或多种不同的视频标准。此字段是所有受支持标准的集合。有关视频标准以及如何切换的详细信息,请参阅 视频标准。 |
|
__u32 |
|
此字段提供有关输入的状态信息。有关标志,请参阅 输入状态标志。除了传感器方向位之外, |
__u32 |
|
此字段提供输入的功能。有关标志,请参阅 输入功能。 |
__u32 |
|
保留供将来扩展使用。驱动程序必须将数组设置为零。 |
|
1 |
此输入使用调谐器(RF 解调器)。 |
|
2 |
任何非调谐器视频输入,例如复合视频、S-视频、HDMI、摄像头传感器。命名为 |
|
3 |
此输入是用于捕获原始触摸数据的触摸设备。 |
通用 |
||
|
0x00000001 |
连接的设备已关闭。 |
|
0x00000002 |
|
|
0x00000004 |
硬件支持颜色解码,但未检测到信号中的颜色调制。 |
传感器方向 |
||
|
0x00000010 |
输入连接到产生水平翻转信号的设备,并且在将信号传递给用户空间之前不会对此进行校正。 |
|
0x00000020 |
输入连接到产生垂直翻转信号的设备,并且在将信号传递给用户空间之前不会对此进行校正。.. note:: 180 度旋转与 HFLIP | VFLIP 相同 |
模拟视频 |
||
|
0x00000100 |
没有水平同步锁定。 |
|
0x00000200 |
当颜色消除电路检测到没有颜色调制时,会自动禁用颜色解码。当设置此标志时,颜色消除电路已启用并且已关闭颜色解码。 |
|
0x00000400 |
没有垂直同步锁定。 |
|
0x00000800 |
如果组件自动检测格式,则没有标准格式锁定。 |
数字视频 |
||
|
0x00010000 |
没有同步锁定。 |
|
0x00020000 |
没有均衡器锁定。 |
|
0x00040000 |
载波恢复失败。 |
录像机和机顶盒 |
||
|
0x01000000 |
Macrovision 是一种模拟复制防止系统,会破坏视频信号以混淆录像机。当设置此标志时,表示已检测到 Macrovision。 |
|
0x02000000 |
条件访问被拒绝。 |
|
0x04000000 |
VTR 时间常数。[?] |
|
0x00000002 |
此输入支持使用 |
|
0x00000004 |
此输入支持使用 |
|
0x00000008 |
此输入支持使用 |
7.18.5. 返回值¶
成功时返回 0,出错时返回 -1,并适当设置 errno
变量。通用错误代码在 通用错误代码 一章中描述。
- EINVAL
struct
v4l2_input
index
超出范围。