linux内核之alsa,浅谈linux内核alsa音频架构(一)

鄙人现在还不是什么大虾,近几周 是想对音频有个深入的研究学习。下面的浅析有哪些方面不到位的,请多多拍砖.

基于linux-3.14.25内核 版本

内核的sound 架构 ,这里 基于两条主线

1. 数据结构 include/sound/core.h

snd_card

snd_devices

snd_devices_ops

2.函数入口 sound/core/init.c –> pcm.c +pcm_lib.c jack.c …. *.c snd_card_register snd_device_register_all 通过遍历dev->list 链表回调 dev_register完成一系列的音频控件初始化以及注册 下面列出主要的音频”控件”(为了方便理解 这里暂取名音频控件) a. snd_ctl_dev_register //主要实现contrl控件入口函数的注册及初始化 snd_register_device 注册snd_ctl_f_ops 里面提供音频文件的访问/ 设置等api b. snd_pcm_dev_register snd_register_device_for_dev 注册snd_pcm_f_ops 里面提供 音频文件数据流(playback/capture) write open poll等api 其中pcm也是音频中一个关键性的控件, pcm是脉冲编码调制,主要负责音频数据的转换 主要有两大核心 playback: 将app传输过来的音频数据 转化为 人耳可以辨别的 模拟数据 capture: 将mic等设备采集的数据 传输给用户空间的app c. snd_jack_dev_register input_register_device 注册 音频相关的输入设备 像类似的headphone 耳机等

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值