私は(カスタムデバイスに接続されている)ALSAを使用した再生と録音の両方を利用してLinuxでプログラムを書いています。データの読み書きの両方に非同期コールバックアーキテクチャを使用したいと思います。ALSA PCMコールバックにはどのような制限がありますか?
しかし、私はコールバック内でできることの制限に関する情報を得ることができませんでした。具体的には、私は同期安全でなければならないのですか?もしそうなら、これは例えば、実行のメインスレッドによって満たされているバッファから読み出しまたは書き込み、重度にかなりハードそれを作る、とりわけ、私はすべてのグローバル変数を参照しないはずなので、何ができるかを制限するようですその後、コールバックの外側のファイルに保存されます。
メインスレッドとグローバルの使用を調整するためにALSAコールバックで使用できるC並行構成はありますか?たとえば、POSIXセマフォを使用できますか? ALSAのコールバックがメインスレッドに関してアトミックであるという保証はありますか(他のALSAコールバックに対してアトミックではないことはわかっています)。
人々がこれに耐えることができる任意の洞察に多くの感謝。
ちょうどあなたが知っているように、ここではこれらのAPIを使用すると良いアイデアではないかもしれない理由を説明したリンクです。 http:///0pointer.de/blog/projects/guide-to-sound-apis.html – ldav1s
ありがとう!非常に有益。悲しいことに、それはサードパーティのデバイスのためだから、私はALSAに固執しています。 –
しかし、あなたは非同期APIに悩まされていますか? – ldav1s