ALSA 捕获具有 8 个通道的流,但以 4 个通道打开流

ALSA capture stream with 8 channels but opening stream as 4

我正在为嵌入式设备编写应用程序。该设备连接到一个 8 麦克风板,因此 8 个通道被传输到板中。在 ALSA 中,此设备显示为 HW:3,0.

我打开了 HW:3,0 流并使用:

snd_pcm_hw_params_test_channels()

我检查了允许的频道数。输出为 1 - 8。

如果我打开流并将通道数设置为 4,会发生什么情况? ALSA 是否丢弃其余的 4 个通道,我得到一个 CH1 的缓冲区 | CH2 | CH3 | CH4 样本或我得到 CH1 | ... |缓冲区中的 CH8?

谢谢你的帮助, 叛徒

hw_params_* 约束由驱动程序管理。所以驱动程序被告知流有四个通道,然后驱动程序负责配置硬件以每帧生成四个样本。