我正在查看 AudioHardwareALSA.cpp 中的 getInputBufferSize(...) 函数,它返回硬编码的值 320。我的问题是:这个值是如何计算的?
我已经做了一些 pre-cals,但仍然有一些问题。
sample_rate = 8000
format = S16_LE = 2 bytes/sample
period_time = 10000 us (guessing)
buffer_size = 2 * period_size
period_size = period_time * bytes/sec
buffer_size = 2 * (0.01 * sample_rate * 2) = 320 bytes.
我在代码中找不到 period_time,所以一个问题是:它是在哪里定义的还是只是一个粗略的计算?
我也在尝试添加更多的采样率,即 16000 和 32000(以后可能会更多)。如何计算正确的最小缓冲区大小?所有采样率的延迟是否总是 10 毫秒?
任何帮助表示赞赏。