我有一个应用程序,使用ALSA在8Khz采样音频。这是通过设置snd_pcm_hw_params(),并且可以通过查看/ proc予以确认:ALSA采样率漂移与单调时钟
cat /proc/asound/card1/pcm0c/sub0/hw_params
access: MMAP_INTERLEAVED
format: S32_LE
subformat: STD
channels: 12
rate: 8000 (8000/1)
period_size: 400
buffer_size: 1200
样品的计数阅读随时间有效地是一个单调时钟。 如果我用系统单调时钟比较读取的样本数,我注意到随着时间的推移会出现漂移。相对于单调时钟,采样时钟似乎每5个小时大约损失1s。 我有代码可以在应用程序级别对此进行补偿(即将样本数量正确映射到挂钟时间),但我想知道我们是否可以或为什么我们无法在较低级别上做得更好?