zl程序教程

您现在的位置是:首页 >  其它

当前栏目

Audio中underrun与overrun问题解决(十八)

解决 十八 Audio 问题
2023-09-14 09:09:53 时间

 CPU控制DMA传输数据步骤:
(1)外设可通过DMA控制器向CPU发出DMA请求:
(2)CPU响应DMA请求,系统转变为DMA工作方式,并把总线控制权交给DMA控制器;
(3)由DMA控制器发送存储器地址,并决定传送数据块的长度;
(4)执行DMA传送;
(5)DMA操作结束,并把总线控制权交还CPU。

linux错误码定义:
#define    EPIPE        32    /* Broken pipe */

1.播放pcm时,snd_pcm_lib_write() 返回 -EPIPE,为underrun问题(上层write慢了,底层没数据了)。
  播放时音频的时候会有-EPIPE的错误,因为驱动buffer没有数据可以丢给codec所致.
  就是上层给下面喂数据的速度慢了,底层不到充足的数据,所以给上层返回一个-EPIPE错误出来。


2.录制音频时,s