欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 运维知识 > linux >内容正文

linux

Linux ALSA 图解

发布时间:2023/12/20 linux 50 豆豆
生活随笔 收集整理的这篇文章主要介绍了 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。

machine

platform

codec

总结

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


  

 

  推荐阅读:

    专辑|Linux文章汇总

    专辑|程序人生

    专辑|C语言

嵌入式Linux

微信扫描二维码,关注我的公众号 

总结

以上是生活随笔为你收集整理的Linux ALSA 图解的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。