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_audiooutreserved 数组清零,并使用指向此结构的指针调用 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

没有与当前视频输出组合的音频输出,或者所选音频输出的编号超出范围或未组合。