我有一個應用程序,使用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。 我有代碼可以在應用程序級別對此進行補償(即將樣本數量正確映射到掛鐘時間),但我想知道我們是否可以或爲什麼我們無法在較低級別上做得更好?