Linux ALSA 图解
生活随笔
收集整理的这篇文章主要介绍了
Linux ALSA 图解
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
最近在解决一个音频的问题,所以正好借这个机会来把音频的东西重新梳理一下,总结是一个很好的习惯,能方便自以后遇到问题快速排查问题。
平台「MT8167」
内核版本「kernel 4.4」
音频读数据函数流程
tinyalsa调用读取函数IOCTL调用流程读取数据到应用层内核注册声卡流程
注册注册PCM创建pcm设备创建pcm设备内核驱动里面的platform、machine和codec
如果看alsa驱动,不能清楚这三个「怪兽」的联系,会很容易陷入迷宫里面之中不能自拔。
machine 「可以理解成一个主板、一套代码是可以适配很多很多主板的」
platform 「这个代表的是CPU型号,平台相关的东西」
codec「也就是音频芯片,有编解码的AD或者DA」
machine、platform、codec 关键结构体
machine用来指定使用哪个platform和codec。
machineplatformcodec总结
比较简单,主要是画了几张图片,这些图片对初学者或者是排查问题理清楚框架是有作用的,音频下还有一些ring_buff和路由相关的,自己如何计算没一帧数据的大小,下一次再总结下。
推荐阅读:
专辑|Linux文章汇总
专辑|程序人生
专辑|C语言
嵌入式Linux
微信扫描二维码,关注我的公众号
总结
以上是生活随笔为你收集整理的Linux ALSA 图解的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: AD9371、AD9361、ADRV90
- 下一篇: 【Linux笔记】LED驱动程序