7.19. ioctl VIDIOC_ENUMOUTPUT¶
7.19.1. 名称¶
VIDIOC_ENUMOUTPUT - 枚举视频输出
7.19.2. 概要¶
-
VIDIOC_ENUMOUTPUT¶
int ioctl(int fd, VIDIOC_ENUMOUTPUT, struct v4l2_output *argp)
7.19.3. 参数¶
fd
由
open()
返回的文件描述符。argp
指向 struct
v4l2_output
的指针。
7.19.4. 描述¶
要查询视频输出的属性,应用程序需要初始化 struct v4l2_output
的 index
字段,并调用 ioctl VIDIOC_ENUMOUTPUT,并传入指向该结构的指针。驱动程序会填充结构的其余部分,或者当索引超出范围时返回 EINVAL
错误代码。要枚举所有输出,应用程序应从索引零开始,每次递增一,直到驱动程序返回 EINVAL
。
-
type v4l2_output¶
__u32 |
|
标识输出,由应用程序设置。 |
__u8 |
|
视频输出的名称,一个以 NUL 结尾的 ASCII 字符串,例如:“Vout”。此信息旨在提供给用户,最好是设备本身上的连接器标签。 |
__u32 |
|
输出类型,请参阅 输出类型。 |
__u32 |
|
驱动程序最多可以枚举 32 个视频和音频输出。如果这是当前选择的视频输出,则此字段显示哪些音频输出可选为当前输出。它是一个位掩码。LSB 对应于音频输出 0,MSB 对应于输出 31。可以设置任意数量的位,也可以不设置。 当驱动程序不枚举音频输出时,不得设置任何位。应用程序不应将其解释为缺少音频支持。驱动程序可能会自动选择音频输出,而无需枚举它们。 有关音频输出以及如何选择当前输出的详细信息,请参阅 音频输入和输出。 |
__u32 |
|
输出设备可以具有零个或多个 RF 调制器。当 |
|
每个视频输出都支持一个或多个不同的视频标准。此字段是所有受支持标准的集合。有关视频标准以及如何切换的详细信息,请参阅 视频标准。 |
|
__u32 |
|
此字段提供输出的功能。有关标志,请参阅 输出功能。 |
__u32 |
|
保留用于将来的扩展。驱动程序必须将数组设置为零。 |
|
1 |
此输出是模拟电视调制器。 |
|
2 |
任何非调制器的视频输出,例如复合视频、S-Video、HDMI。命名为 |
|
3 |
视频输出将被复制到 视频覆盖层。 |
|
0x00000002 |
此输出支持使用 |
|
0x00000004 |
此输出支持使用 |
|
0x00000008 |
此输出支持使用 |
7.19.5. 返回值¶
成功时返回 0,出错时返回 -1,并且 errno
变量会进行相应的设置。通用错误代码在 通用错误代码 章节中进行了描述。
- EINVAL
struct
v4l2_output
的index
超出范围。