ALSA框架解析

一、声音相关的几个概念

PCM: 脉冲编码调制,一种数字信号的编码方式,用于保存音频数据

MIDI: 乐器数字接口,一种乐器间通信的标准格式,用于描述声音流的产生过程,近乎“乐谱”

mixer: 混音器,管理声音通道(单声道、立体声、多通道)的合成

sequencer: 声音序列发生器(类比信号发生器),用于声音采集

playback: 播放模式

capture: 录音模式

AD/DA: 模数/数模转换器,模拟信号与数字信号转换的必要器件

DSP: 数字信号处理器,一般都会有固件支持,用于滤波处理(类比美颜功能)

二、声卡

1、声卡描述模型 ===(struct  snd_card)

    该数据结构中的void *private_data;     /* private data for soundcard */用于绑定声卡

2、声卡管理接口

    创建:snd_card_new

    注册:snd_card_register

    释放:snd_card_free

三、声音设备

1、声音设备 === (struct snd_device)

2、声音设备分类 === (enum snd_device_type)

3、声音设备管理接口

    创建:snd_device_new

    注册:snd_device_register

    断开连接:snd_device_disconnect

    释放:snd_device_free

四、PCM设备驱动

1、创建:snd_pcm_new

2、操作接口:struct snd_pcm_ops

3、绑定操作借口:snd_pcm_set_ops

4、运行时:struct snd_pcm_runtime

五、实例:linux-src-dir/sound/drivers/dummy.c

六、alsalib

猜你喜欢

转载自blog.csdn.net/Leo_ZN_0/article/details/80385977