asrc调试_RK3288_Android7.1基于tinyalsa的音频调试说明

本文详细介绍了在RK3288平台Android7.1系统上,基于tinyalsa库进行的PCM设备调试,包括PCM设备的结构和命名规则,并展示了如何使用tinypcminfo、tinyplay、tinycap和tinymix四个命令行工具进行音频信息查看、播放、录制和音量调节。此外,还提到了tinyalsa的编译过程及其在调试音频通路中的作用。
摘要由CSDN通过智能技术生成

1、PCM

脉冲编码调制(PCM)是一种用于数字表示采样模拟信号的方法。它是数字音频在计算机、光盘、数字电话和其他数字音频应用中的标准形式。在PCM流中,模拟信号的振幅以均匀的间隔进行有规律的采样,并在数字步长的范围内将每个采样量子化到最接近的值。线性脉码调制(LPCM)是一种特定类型的PCM,其量化电平是线性均匀的。这与PCM编码量化水平不同振幅的函数(如 A-law算法或μ-law算法)。尽管PCM是一个更通用的术语,但它通常用于描述被编码为LPCM的数据。

pcm设备,通过阅读tinyalsa的代码和查看Android下的音频设备节点,可知在Android中一个pcm设备最多可有一个mixer设备"/dev/snd/controlC%u"(一般是controlC0)和32个/dev/snd/pcmC%uD%uc(一般是pcmC0D0c)、 /dev/snd/pcmC%uD%u%p(一般是pcmC0D0p), pcm设备中的C代表card,D代表device,c代表capture,p代表playback。

当我们新增一个pcm声卡C的值会+1,D还是从0开始,可能只有c(pcmC1D0c 例如麦克风),可能只有p(pcmC1D0p 例如音响),可能同时存在c和p(pcmC1D0c pcmC1D0p )。

rk3288:/ # ls -l dev/snd/

total 0

crw-rw---- 1 system audio 116, 2 1970-01-01 00:00 controlC0

crw-rw---- 1 system audio 116, 10 1970-01-01 00:00 controlC1

crw-rw---- 1 system audio 116, 4 1970-01-01 00:00 pcmC0D0c

crw-rw---- 1 system audio 116, 3 1970-01-01 00:00 pcmC0D0p

crw-rw---- 1 system audio 116, 6 1970-01-01 00:00 pcmC0D1c

crw-rw---- 1 system audio 116, 5 1970-01-01 00:00 pcmC0D1p

crw-rw---- 1 system audio 116, 8 1970-01-01 00:00 pcmC0D2c

crw-rw---- 1 system audio 116, 7 1970-01-01 00:00 pcmC0D2p

crw-rw---- 1 system audio 116, 9 1970-01-01 00:00 pcmC0D3p

crw-rw---- 1 system audio 116, 11 1970-01-01 00:00 pcmC1D0p

crw-rw---- 1 system audio 116, 33 1970-01-01 00:00 timer

2、ALSA

目前Linux中主流的音频体系结构是ALSA(Advanced Linux Sound Architecture),ALSA在内核驱动层提供了alsa-driver,在应用层提供了alsa-lib,应用程序只需要调用alsa-lib提供的API就可以完成对底层硬件的操作。但是Android中没有使用标准的ALSA,而是一个ALSA的简化版叫做tinyalsa。Android中使用tinyalsa控制管理所有模式的音频通路,我们也可以使用tinyalsa提供的工具进行查看、调试。

3、tinyalsa的对外提供的头文件是"asoundlib.h",提供最基础的pcm和mixer操作。实现文件为pcm.c(实现pcm api)和mixer.c(实现mixer api)。根据asoundlib.h编写了四个小工具tinypcminfo tinyplay tinycap tinymix,这四个小工具作为系统命令存放在系统中,可以很方便的使用。

代码目录:external/tinyalsa/

tinypcminfo的实现文件tinypcminfo.c (查看pcm设备的功能和信息)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值