ALSA采集数据 overrun

Iris_Zhou 2012-08-15 10:08:03
编写的ALSA回环的程序发现不能稳定运行,播放了大概3分钟之后,采集侧会出现overrun的报错,即snd_pcm_readn返回-EPIPE,不知道有没有人能够解答下?
...全文
359 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Iris_Zhou 2012-08-22
  • 打赏
  • 举报
回复
我尝试使用PCM的接口函数 snd_pcm_status_get_avail 来获取当前驱动缓冲区中可用的帧数,每次调用snd_pcm_readi都读取有效帧数,虽然还是偶尔会出现overrun的错误,但是出现次数少了。另外出错了可以用snd_pcm_prepare修复
Iris_Zhou 2012-08-16
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

什么平台?
以前做实验板的时候碰到过,好像是音频芯片的走线问题,有干扰不稳定
[/Quote]
介个,overrun是因为不能及时地读取导致有数据在driver buffer遗留,不断累加,导致缓冲区溢出,最后新的数据被覆盖,我尝试用低于period time的时间间隔区读取,结果还是不稳定。
LouisScola 2012-08-16
  • 打赏
  • 举报
回复
什么平台?
以前做实验板的时候碰到过,好像是音频芯片的走线问题,有干扰不稳定

4,441

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
  • 内核源代码研究区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧