<返回更多

Linux ALSA 图解

2020-09-02    
加入收藏

最近在解决一个音频的问题,所以正好借这个机会来把音频的东西重新梳理一下,总结是一个很好的习惯,能方便自以后遇到问题快速排查问题。

音频读数据函数流程

Linux ALSA 图解

 

tinyalsa调用读取函数

Linux ALSA 图解

 

IOCTL调用流程

Linux ALSA 图解

 

读取数据到应用层

内核注册声卡流程

Linux ALSA 图解

 

注册

Linux ALSA 图解

 

注册PCM

Linux ALSA 图解

 

创建pcm设备

Linux ALSA 图解

 

创建pcm设备

内核驱动里面的platform、machine和codec

如果看alsa驱动,不能清楚这三个「怪兽」的联系,会很容易陷入迷宫里面之中不能自拔。

Linux ALSA 图解

 

三者联系

machine、platform、codec 关键结构体

machine用来指定使用哪个platform和codec。

Linux ALSA 图解

 

machine

Linux ALSA 图解

 

platform

Linux ALSA 图解

 

codec

总结

比较简单,主要是画了几张图片,这些图片对初学者或者是排查问题理清楚框架是有作用的,音频下还有一些ring_buff和路由相关的,自己如何计算没一帧数据的大小,下一次再总结下。

声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多资讯 >>>