ALSA直通潜伏期

时间:2015-11-03 17:57:58

标签: latency alsa

我正在开发一个使用ALSA进行音频直通的嵌入式Linux应用程序。它具有非常严格的延迟要求。

输出缓冲区尽可能小,导致输出偶尔(可能每小时一次)欠载。这是可以接受的。但是,当它发生时,它会导致"备份"在捕获缓冲区中,结果是延迟逐渐增加。

似乎并不是一种可靠的方法来了解丢失了多少输出数据以丢弃相同数量的输入。我可以试验,但即使它是嵌入式应用程序,它也需要与设备无关,因此我们需要一个可靠的解决方案。

有没有人知道确定丢失了多少数据的方法,或者它是否总是一个缓冲区,还是有其他建议?

1 个答案:

答案 0 :(得分:1)

如果您不希望PCM设备停止欠载/超限,请通过将停止阈值设置为边界值来配置它们不要停止。然后它们将继续运行,并且可用帧的数量将继续增加(用于捕获)或减少(用于回放)。 (并非所有这些帧都可用;环形缓冲区只是环绕。)