ALSA架构
手把手带你深入理解经典的ALSA架构
change_fate_vs_god
这个作者很懒,什么都没留下…
展开
-
[ALSA架构][ASOC架构][第七话]如何写ALSA app 程序
简单粗暴,直接上图:如果是capture的话,只需要修改:a.SND_PCM_STREAM_PLAYBACK -> SND_PCM_STREAM_CAPTURE if ((err = snd_pcm_open (&capture_handle, argv[1], SND_PCM_STREAM_CAPTURE, 0)) < 0) { fprintf (stderr, "cannot open audio device %s (%s)\...原创 2021-10-06 10:53:14 · 111 阅读 · 0 评论 -
[ALSA架构][ASOC架构][第六话]Control接口与snd_kcontrol_new结构体分析
1.Control接口Control接口主要让用户空间的应用程序(alsa-lib)可以访问和控制音频codec芯片中的多路开关,滑动控件等。对于Mixer(混音)来说, Control接口显得尤为重要,从ALSA 0.9.x版本开始,所有的mixer工作都是通过control接口的API来实现的, 比如设置音量等。可以用如下命令来查看:a. alsamixer是Linux 音频架构ALSA中的Alsa工具的其中一个,用于配置音频的各个参数。alsamixer是基于文本下的图形界面的,.原创 2021-10-06 10:05:29 · 618 阅读 · 0 评论 -
[ALSA架构][ASOC架构][第五话]DMA buffer 分析
1. 数据流向其中当playback 播放时:app -> 音频数据写入DMA buffer -> platform 通过I2S 将音频数据发给codec-> codec进行DAC转换-> 驱动扬声器发声。今天我们重点来分析这里的DMA buffer。2. DMA buffera. ring buffer环形缓冲器(ringr buffer),也称作圆形队列(circular queue),循环缓冲区(cyclic buffer..原创 2021-10-06 09:27:58 · 1118 阅读 · 0 评论 -
[ALSA架构][ASOC架构][第四话]platform框架里的snd_pcm_ops结构体分析
1. 先复习一下架构图2.snd_pcm_ops结构体分析原创 2021-10-05 22:26:20 · 178 阅读 · 0 评论 -
[ALSA架构][ASOC架构][第三话]machine/platform/codec框架
废话不多说,全部都是干货。其中ASOC layer可以细分为:Machine: 某一款机器,可直接理解成一块开发板。做为 Codec 和 Platform 的载体,将硬件设备关联起来,形成完整的硬件通路Platform:一般是指某一个SoC平台, 直接理解为SOC。主要负责 SoC 芯片上音频 DMA 的传输控制,和数字音频接口的配置和控制,如I2S、PCM、AC97等。Codec: 编解码芯片。完成音频采集和播放过程中模拟与数字间的转换。图示:...原创 2021-10-05 16:07:10 · 369 阅读 · 0 评论 -
[ALSA框架][第二话]设备节点与框架图
1. 设备节点:C0D0代表的是声卡0中的设备0,C0D1代表的是声卡0中的设备1pcmC0D0c最后一个c代表capture //录音pcmC0D0p最后一个p代表playback// 播放timer 代表定时器 controlc0用于声卡的控制,例如通道选择,混音,麦克风的控制等用户空间可以这样打开设备: open("/dev/snd/controlC0") // 打开控制设备; open("/dev/snd/pcmC0D0p") ...原创 2021-10-05 11:13:53 · 504 阅读 · 0 评论 -
[ALSA框架][第一话]音频的基础知识
目录2. 音频的基础知识2.1 模拟信号 数字信号 采样2.2 录音与播放2.3 双声道波形ALSA是Advanced Linux Sound Architecture,高级Linux声音架构的简称,它在Linux操作系统上提供了音频和MIDI(Musical Instrument Digital Interface,音乐设备数字化接口)的支持。在2.6系列内核中,ALSA已经成为默认的声音子系统,用来替换2.4系列内核中的OSS(Open Sound System,开放声音系统)。..原创 2021-10-03 16:38:58 · 163 阅读 · 0 评论