Linux ALSA 图解

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

大家好,欢迎来到IT知识分享网。

转自《嵌入式LINUX》

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

  • 平台「MT8167」
  • 内核版本「kernel 4.4」

音频读数据函数流程

Linux ALSA 图解

tinyalsa调用读取函数

Linux ALSA 图解

IOCTL调用流程

Linux ALSA 图解

读取数据到应用层

内核注册声卡流程

Linux ALSA 图解

注册

Linux ALSA 图解

注册PCM

Linux ALSA 图解

创建pcm设备

Linux ALSA 图解

创建pcm设备

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

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

  • machine 「可以理解成一个主板、一套代码是可以适配很多很多主板的」
  • platform 「这个代表的是CPU型号,平台相关的东西」
  • codec「也就是音频芯片,有编解码的AD或者DA」
Linux ALSA 图解

三者联系

machine、platform、codec 关键结构体

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

Linux ALSA 图解

machine

Linux ALSA 图解

platform

Linux ALSA 图解

codec

总结

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

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/162711.html

(0)
上一篇 2024-12-16 15:26
下一篇 2024-12-16 15:33

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信