我正在Linux下編寫一個使用ALSA(連接到自定義設備)的回放和記錄的程序。我想用異步回調體系結構來讀寫數據。對ALSA PCM回調有什麼限制?
但是,我一直無法獲得任何有關我在回調中允許執行的限制的信息。具體來說,我必須是異步安全的嗎?如果是這樣,這似乎嚴格限制了可以做什麼,因爲除其他外,我不應該引用任何全局變量,例如,從執行或寫入主線程填充的緩衝區中讀取相當困難到緩衝區,隨後保存到回調之外的文件。
是否有任何C併發構造,我可以在ALSA回調中使用以協調使用全局變量與主線程?例如,我可以使用POSIX信號量嗎?我是否有任何保證ALSA回調與主線程相關的原子(我知道它對其他ALSA回調不是原子的)?
非常感謝任何人的洞察力,可以帶來這一點。
爲了讓你知道,這裏有一個鏈接,描述爲什麼使用這些API可能不是一個好主意。 http://0pointer.de/blog/projects/guide-to-sound-apis.html – ldav1s 2012-02-28 23:52:15
謝謝!非常豐富。不幸的是,這是針對第三方設備的,所以我堅持使用ALSA。 – 2012-02-29 00:25:44
但是你堅持使用異步API嗎? – ldav1s 2012-02-29 01:38:56