7.23. ioctl VIDIOC_G_AUDOUT, VIDIOC_S_AUDOUT

7.23.1. 名称

VIDIOC_G_AUDOUT - VIDIOC_S_AUDOUT - 查询或选择当前的音频输出

7.23.2. 概要

VIDIOC_G_AUDOUT

int ioctl(int fd, VIDIOC_G_AUDOUT, struct v4l2_audioout *argp)

VIDIOC_S_AUDOUT

int ioctl(int fd, VIDIOC_S_AUDOUT, const struct v4l2_audioout *argp)

7.23.3. 参数

fd

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

argp

指向 v4l2_audioout 结构的指针。

7.23.4. 描述

要查询当前的音频输出,应用程序需要将 v4l2_audioout 结构的 reserved 数组清零,并调用带有指向此结构的指针的 VIDIOC_G_AUDOUT ioctl。当设备没有音频输入,或者没有与当前视频输出结合使用的音频输入时,驱动程序会填充结构的其余部分或返回 EINVAL 错误代码。

音频输出没有可写属性。然而,要选择当前的音频输出,应用程序可以初始化 v4l2_audioout 结构的 index 字段和 reserved 数组(将来可能包含可写属性),并调用 VIDIOC_S_AUDOUT ioctl。驱动程序切换到请求的输出,或者当索引超出范围时返回 EINVAL 错误代码。这是一个只写 ioctl,它不会像 VIDIOC_G_AUDOUT 那样返回当前的音频输出属性。

注意

电视卡上将接收到的音频信号环回到声卡的连接器不属于此意义上的音频输出。

type v4l2_audioout
struct v4l2_audioout

__u32

index

标识音频输出,由驱动程序或应用程序设置。

__u8

name[32]

音频输出的名称,以 NUL 结尾的 ASCII 字符串,例如:“Line Out”。此信息供用户使用,最好是设备本身的连接器标签。

__u32

capability

音频功能标志,尚未定义。驱动程序必须将此字段设置为零。

__u32

mode

音频模式,尚未定义。驱动程序和应用程序(在 VIDIOC_S_AUDOUT 上)必须将此字段设置为零。

__u32

reserved[2]

保留供将来扩展使用。驱动程序和应用程序必须将此数组设置为零。

7.23.5. 返回值

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

EINVAL

没有音频输出与当前视频输出结合使用,或者所选音频输出的编号超出范围,或者它没有结合使用。