alsaloop:缓冲区欠载时会发生什么?

alsaloop:缓冲区欠载时会发生什么?

我正在调整我的声音接口延迟

alsaloop -C hw:1,0 -P hw:1,0 -t $LATENCY_US

当我设置$LATENCY_US为 30000 时,CPU 使用率约为 20%。

我可以重启几次并发出一些噪音,经过几次尝试后,我突然得到 100% 的 CPU 使用率(大部分时间都花在内核上,红色部分htop)。alsaloop然后多次重启也没有用,直到我“给它一些时间”再启动它 - 然后它恢复正常,我可以重复整个过程。请注意,alsaloop 在这里没有输出。

问题 1:这里发生了什么事?


如果我设置得$LATENCY_US低至 4000,CPU 使用率会在一秒钟内飙升至 100%;然后 alsaloop 报告underrun for playback hw:1,0,CPU 处于低位并保持这种状态。

问题2: 在这种情况下会发生什么?为什么冷静下来? 之后是否仍按照我设置的延迟进行录制underrun

谢谢。

相关内容