文章分类 - 视音频处理
摘要:转这篇文章是因为刚开始时不太了解alsa中的period和frames等概念的具体含义,本文中有提到。ALSA(Advanced Linux Sound Architecture)是由内核驱动,标准的API库和一系列实用程序组成.因为涉及到版权和BUG的问题Linux 2.6内核抛弃了旧的OSS,A...
阅读全文
摘要:1) PCM设备的句柄.2) 指定同时可供回放或截获的PCM流的方向3) 提供一些关于我们想要使用的设置选项的信息,比如缓冲区大小,采样率,PCM数据格式等4) 检查硬件是否支持设置选项. 4.1) 初始化PCM变量 4.2) 分配hwparams结构 4.3) 打开PCM设备 4.4) 以声卡的全...
阅读全文
摘要:采样(sample):PCM audio不论是输入还是输出,都包含采样,采样达标声音的一个声道在某个特定时间点的振幅。 很多这样的采样组成了声音。样本是记录音频数据的最基本单位。对于CD audio,每秒有44100个采样。采样的尺寸从8bit 到64bit精度。采样的格式也各式各样: 大端整形,小...
阅读全文
摘要:[csharp] view plaincopy/**alsaplaytest*ALSA用户空间编译,ALSA驱动的声卡在用户空间,不宜直接使用*文件接口中,而应使用alsa-lib*打开---->设置参数--->读写音频数据ALSA全部使用alsa-lib中的API*交叉编译*exportLD_LI...
阅读全文
摘要:ALSA是Advanced Linux Sound Architecture简称。它包含一组kernel 驱动,一个应用编程接口(API)库以及一组工具函数。本文中,我们会向读者展示ALSA项目和组成部件的概况。后面会重点介绍ALSA PCM接口的编程。ALSA不仅仅是sound API。选择ALS...
阅读全文
摘要:1. Codec简介在移动设备中,Codec的作用可以归结为4种,分别是:对PCM等信号进行D/A转换,把数字的音频信号转换为模拟信号对Mic、Linein或者其他输入源的模拟信号进行A/D转换,把模拟的声音信号转变CPU能够处理的数字信号对音频通路进行控制,比如播放音乐,收听调频收音机,又或者接听...
阅读全文
摘要:1. ASoC的由来ASoC--ALSA System on Chip ,是建立在标准ALSA驱动层上,为了更好地支持嵌入式处理器和移动设备中的音频Codec的一套软件体系。在ASoc出现之前,内核对于SoC中的音频已经有部分的支持,不过会有一些局限性: Codec驱动与SoC CPU的底层耦合过于...
阅读全文
摘要:前 面一节的内容我们提到,ASoC被分为Machine、Platform和Codec三大部分,其中的Machine驱动负责Platform和 Codec之间的耦合以及部分和设备或板子特定的代码,再次引用上一节的内容:Machine驱动负责处理机器特有的一些控件和音频事件(例如,当播放音 频时,需要先...
阅读全文
摘要:Control接口Control 接口主要让用户空间的应用程序(alsa-lib)可以访问和控制音频codec芯片中的多路开关,滑动控件等。对于Mixer(混音)来 说,Control接口显得尤为重要,从ALSA 0.9.x版本开始,所有的mixer工作都是通过control接口的API来实现的。A...
阅读全文
摘要:1. PCM是什么PCM 是英文Pulse-code modulation的缩写,中文译名是脉冲编码调制。我们知道在现实生活中,人耳听到的声音是模拟信号,PCM就是要把声音从模拟转换成数字信号的一种 技术,他的原理简单地说就是利用一个固定的频率对模拟信号进行采样,采样后的信号在波形上看就像一串连续的...
阅读全文
摘要:1. struct snd_card1.1. snd_card是什么snd_card 可以说是整个ALSA音频驱动最顶层的一个结构,整个声卡的软件逻辑结构开始于该结构,几乎所有与声音相关的逻辑设备都是在snd_card的管理之下, 声卡驱动的第一个动作通常就是创建一个snd_card结构体。正因为如...
阅读全文
摘要:一. 概述ALSA是Advanced Linux Sound Architecture 的缩写,目前已经成为了linux的主流音频体系结构,想了解更多的关于ALSA的这一开源项目的信息和知识,请查看以下网址:http://www.alsa-project.org/。 在内核设备驱动层,ALSA提供了...
阅读全文
摘要:1.Android+alsa音频体系大体结构: 从alsa的角度由下往上看:linux中有alsa驱动层,其中,/sound/core/pcm_native.c文件中的 snd_pcm_f_ops是alsa驱动层对alsa_lib层的接口;Android中有alsa_lib层(在donut/exte...
阅读全文
摘要:在Linux中,先后出现了音频设备的两种框架OSS和ALSA,本节将在介绍数字音频设备及音频设备硬件接口的基础上,展现OSS和ALSA驱动的结构。17.1~17.2节讲解了音频设备及PCM、IIS和AC97硬件接口。17.3节阐述了Linux OSS音频设备驱动的组成、mixer接口、dsp接口及用...
阅读全文
摘要:链接分析: core/pcm_native.c文件中snd_pcm_hw_params()函数调用err = substream->ops->hw_params(substream, params)。根据soc/soc-core.c文件中snd_pcm_set_ops(pcm, SNDRV_PCM_...
阅读全文
摘要:前言: linux中,无论是oss还是alsa体系,录音和放音的数据流必须分析清楚。先分析alsa驱动层,然后关联到alsa库层和应用层。链接分析: core/pcm_native.c文件中.mmap = snd_pcm_mmap调用snd_pcm_mmap_data(substream, file...
阅读全文
摘要:alsa 是在LINUX出现比较晚的音频处理库,主要是针对原有的OSS的库进行改进.性能更好,支持多个播放源等.但相应的,增加的编程的复杂性. 旧的oss是采用标准文件IO接口,设备打开采用open,声音播录是采用数据IO接口(read/write),设备的参数采用ioctl来控制.都是 系统调用因...
阅读全文
摘要:刚装好了显卡这回轮到安声卡了,安装声卡比安装显卡简单多,主要原因网上的资料比较全自然省心不少 。好了言归正转。 1.下载驱动 你可以到这里下载ALSA的驱动: 你需要下载以下几个包: alsa-driver-1.0.10.tar.bz2 alsa-lib-1.0.10.tar....
阅读全文
摘要:ALSA (Advanced Linux Sound Architecture(高级Linux声音体系)的缩写) 是为声卡提供驱动的Linux内核组件,以替代原先的OSS(开放声音系统)。ALSA除了像OSS那样提供一组内核驱动程序模块以外,还专门为简化应用程序的编写提供了相应的库函数,与OSS提供...
阅读全文
摘要:snd_pcm_readi ()snd_pcm_sframes_t snd_pcm_readi ( snd_pcm_t *pcm, void* buffer, snd_pcm_uframes_t size )Read interleaved frames from a PCM. Parameter...
阅读全文