我正在使用RT内核在多核(Debian)Linux机器上处理音频应用程序。音频源生成需要大量的不能由单个核处理的处理时间,所以我有三个不同的线程:0 多核Linux系统上的实时音频
- 主要portaudio线程芯1
- 源代2上芯2
线程2和3被写入到运行ringbuffer,而线程1从ringbuffer读取数据,并将其求和到portaudio缓冲器。我已经尝试了很多缓冲区大小和调度策略,我的最佳结果是FIFO策略,音频缓冲区大小为16个立体声样本,环形缓冲区大小为576.此解决方案产生超过13ms(576/44100 * 1000)的延迟,这太多了。
我相信这个延迟可以减少,但我不是Linux调度方面的专家。有任何想法吗?