7.22. ioctl VIDIOC_G_AUDIO, VIDIOC_S_AUDIO¶
7.22.1. 名称¶
VIDIOC_G_AUDIO - VIDIOC_S_AUDIO - 查询或选择当前的音频输入及其属性
7.22.2. 概要¶
-
VIDIOC_G_AUDIO¶
int ioctl(int fd, VIDIOC_G_AUDIO, struct v4l2_audio *argp)
-
VIDIOC_S_AUDIO¶
int ioctl(int fd, VIDIOC_S_AUDIO, const struct v4l2_audio *argp)
7.22.3. 参数¶
fd
由
open()
返回的文件描述符。argp
指向结构体
v4l2_audio
的指针。
7.22.4. 描述¶
要查询当前的音频输入,应用程序将结构体 v4l2_audio
的 reserved
数组清零,并使用指向该结构的指针调用 VIDIOC_G_AUDIO ioctl。当设备没有音频输入,或者没有与当前视频输入组合的音频输入时,驱动程序会填充结构的其余部分或返回 EINVAL
错误代码。
音频输入有一个可写属性,即音频模式。要选择当前的音频输入并更改音频模式,应用程序需要初始化结构体 v4l2_audio
的 index
和 mode
字段以及 reserved
数组,并调用 VIDIOC_S_AUDIO ioctl。如果请求无法满足,驱动程序可能会切换到不同的音频模式。但是,这是一个只写 ioctl,它不返回实际的新音频模式。
-
type v4l2_audio¶
__u32 |
|
标识音频输入,由驱动程序或应用程序设置。 |
__u8 |
|
音频输入的名称,一个以 NULL 结尾的 ASCII 字符串,例如:“线路输入”。此信息供用户使用,最好是设备本身的连接器标签。 |
__u32 |
|
音频功能标志,请参见 音频功能标志。 |
__u32 |
|
由驱动程序和应用程序设置的音频模式标志(在 VIDIOC_S_AUDIO ioctl 上),请参见 音频模式标志。 |
__u32 |
|
保留以供将来扩展。驱动程序和应用程序必须将数组设置为零。 |
|
0x00001 |
这是一个立体声输入。该标志旨在在信号始终为单声道时自动禁用立体声录制等。除非音频输入属于调谐器,否则 API 不提供检测是否接收到立体声的方法。 |
|
0x00002 |
支持自动音量级别模式。 |
|
0x00001 |
AVL 模式已开启。 |
7.22.5. 返回值¶
成功时返回 0,错误时返回 -1,并且会适当地设置 errno
变量。通用错误代码在 通用错误代码 章节中描述。
- EINVAL
没有与当前视频输入组合的音频输入,或者所选音频输入的数量超出范围,或者它没有组合。