【问题标题】:ALSA capture stream with 8 channels but opening stream as 4具有 8 个通道的 ALSA 捕获流,但打开流为 4
【发布时间】:2020-05-16 22:10:14
【问题描述】:

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

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

snd_pcm_hw_params_test_channels()

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

如果我打开流并将频道数设置为 4,会发生什么? ALSA 会丢弃剩下的 4 个通道,我得到一个 CH1 的缓冲区吗?甲烷 |甲烷 | CH4 样品或我得到 CH1 | ... |缓冲区中的 CH8?

感谢您的帮助, 叛徒

【问题讨论】:

    标签: linux audio embedded embedded-linux alsa


    【解决方案1】:

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

    【讨论】:

    • 在这种情况下,我需要仔细检查驱动程序是否能够进行这种行为。或者您试图暗示,一旦测试返回 1-10,驱动程序就有能力进行这种行为?
    • 如果snd_pcm_hw_params_set_channels()成功,则驱动支持该值。
    猜你喜欢
    • 2021-10-07
    • 1970-01-01
    • 2017-03-18
    • 2017-01-26
    • 2014-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多