我很难搞清楚如何制作完全在用户空间中运行的 Linux PCM 播放设备。当应用程序调用 snd_pcm_open/snd_pcm_readi/writei 时,我希望调用在用户空间驱动程序中结束,并且 pcm 数据在用户空间驱动程序初始化时创建的线程中处理。然后音频处理线程将调用一个实际的 ALSA 内核驱动程序,它将 pcm 输出到 HW。 这基本上是我想要实现的目标:
应用程序 -> ALSA (pcmC1D0p) -> 音频处理线程(用户空间) -> ALSA (pcmC0D0p) -> HW
我看过一些插件,但不确定这是正确的做法吗?也不确定如何实际启动我的插件?我编译了一个 .so 文件,但不确定将其放置在何处或如何/如何调用它?
如有任何指点,我们将不胜感激。
最佳答案
这样的事情可以用 external filter plugin SDK 来完成,这基本上没有记录。
关于linux - 用户空间中的 ALSA PCM 播放设备,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35128242/