【摘要】:PCM全称为脉冲编码调制,在音频处理里面就是对模拟音频进行脉冲采样。PCM数据实际就是原始的音频流数据。ALSA架构中,PCM用来管理音频流,它用snd_pcm结构描述。一个声卡可以包含多个PCM,每个PCM又包含多个播放或采集子流。图15-2为ALSA PCM流的架构。音频流的方向定义如下:PCM音频子流结构如下:snd_pcm_new函数创建一个新的PCM实例:int snd_pcm_new;snd_pcm_new_stream函数创建一个新的PCM子流:int snd_pcm_new_streamstream即子流的方向。
PCM全称为脉冲编码调制(pulse-code modulation),在音频处理里面就是对模拟音频进行脉冲采样。声卡对模拟音频信号按照一定的采样率(sample rate)以及精度(bits per sample)进行采样,每个采样点的音频数据为一帧(frame)。一帧音频数据的bit数为精度×声道,一秒音频数据的bit数为精度×声道×采样率。一帧一帧的音频数据按照时间顺序串在一起组成了音频流。PCM数据实际就是原始的音频流数据。
ALSA架构中,PCM用来管理音频流,它用snd_pcm结构描述。一个声卡可以包含多个PCM,每个PCM又包含多个播放或采集子流。图15-2为ALSA PCM流的架构。
图15-2 音频流组织结构
音频流包括播放流与采集流,播放流与采集流均有多个子流,分别存放在snd_pcm结构的streams[2]成员中。音频流的方向定义如下:
PCM音频子流结构如下:(www.xing528.com)
snd_pcm_new函数创建一个新的PCM实例:
int snd_pcm_new(struct snd_card*card,char*id,int device,
int playback_count,int capture_count,struct snd_pcm**rpcm);
snd_pcm_new_stream函数创建一个新的PCM子流:
int snd_pcm_new_stream(struct snd_pcm*pcm,int stream,int substream_count)
stream即子流的方向。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。