ALSA_sound
小K仔
这个作者很懒,什么都没留下…
展开
-
声音、音频采样率、采样精度等常识概念
什么是声音?能量波,有频率有振幅,频率高低就是音调,振幅大小就是音量;采样率是对频率采样,采样精度是对幅度采样人耳能听到的频率范围是200-20KHz,什么是CODEC?音频压缩CO+解压缩DEC,CODEC就是多媒体数字信号编解码器,主要负责DAC和ADC。不管是音频加速器好,还是I/O控制器好,他们输入输出的都是纯数字信号,我们要使用声卡上的Line转载 2013-01-30 19:54:27 · 3514 阅读 · 0 评论 -
音频底层驱动
驱动组成部分ASoCsplits an embedded audio system into 3 components :- * Codec driver: The codec driver is platformindependent and contains audio controls, audio interface capabilities,codec DAPM转载 2013-01-30 20:11:03 · 840 阅读 · 0 评论 -
Linux ALSA声卡驱动之四:Control设备的创建
声明:本博内容均由http://blog.csdn.net/droidphone原创,转载请注明出处,谢谢!Control接口Control接口主要让用户空间的应用程序(alsa-lib)可以访问和控制音频codec芯片中的多路开关,滑动控件等。对于Mixer(混音)来说,Control接口显得尤为重要,从ALSA 0.9.x版本开始,所有的mixer工作都是通过control转载 2013-01-15 16:36:47 · 597 阅读 · 0 评论 -
snd_soc_codec_device 之 snd_soc_new_pcms(下)
(2)soc_new_pcm根据card->num_links,创建所有的pcm,主要是播放流playback 和录音流record ,每次创建新PCM都是调用static int soc_new_pcm(struct snd_soc_device *socdev,struct snd_soc_dai_link *dai_link, int num)第一个参数讲转载 2013-01-30 19:53:48 · 784 阅读 · 0 评论 -
Android的MediaPlayer架构介绍
第一部分 MediaPlayer概述 Android的MediaPlayer包含了Audio和video的播放功能,在Android的界面上,Music和Video两个应用程序都是调用MediaPlayer实现的。 MediaPlayer在底层是基于OpenCore(PacketVideo)的库实现的,为了构建一个MediaPlayer程序,上层还包含了转载 2013-01-31 11:58:55 · 909 阅读 · 0 评论 -
Linux ALSA 系统架构
ALSA是Linux声卡驱动的架构,下面基于linux-2.6.32描述下ALSA系统架构。ALSA系统可以分为alsa-lib、alsa-driver,而alsa-driver又分为core层和底层硬件层。作为开发者,我们只需移植底层硬件层,根据自己硬件特性,实现底层的移植。而core层基本属于ALSA标准框架,不需要自己实现。介绍ALSA框架,下面是大体框架图。 如上图转载 2013-03-02 13:37:02 · 829 阅读 · 0 评论 -
alsa_utils 使用
Alsa-utils使用方法 一.alsa-utils介绍 ALSA是kernel中的一个声音驱动程序.它包括alsa核心和其他声卡的驱动.alsa-utils是alsa的一个工具包,里面包含有声卡测试和音频编辑的工具.二.alsa-utils的安装1.RPM包方式 Turbolinux 10.5,11版本已经包含转载 2013-03-25 14:12:02 · 1400 阅读 · 0 评论 -
Wav 格式音频播放实例
本设计思路:先打开一个普通wav音频文件,从定义的文件头前面的44个字节中,取出文件头的定义消息,置于一个文件头的结构体中。然后打开alsa音频驱动,从文件头结构体取出采样精度,声道数,采样频率三个重要参数,利用alsa音频驱动的API设置好参数,最后打开wav文件,定位到数据区,把音频数据依次写到音频驱动中去,开始播放,当写入完成后,退出写入的循环。 注意:本设计需要alsa的l转载 2013-03-25 14:09:01 · 1687 阅读 · 0 评论 -
A10+Android4.0 音频驱动
A10+Android4.0 音频驱动linux-3.0目录make ARCH=arm menuconfig进到内核配置界面,可以看到 知道我们的配置项名字,然后进目录 :\lichee\linux-3.0\sound\soc 看Kconfig文件,可以看到config SOUND_SUN4I tristate "SOUND转载 2013-03-25 14:40:39 · 4778 阅读 · 0 评论 -
理解和使用Alsa的配置文件
最近在做音频相关的驱动,使用到了Alsa。过程中涉及到一些硬件的设置和测试,需要了解Alsa的配置文件的写法,稍微学习了一下,这里把自己的一些简单理解记录如下。1 相关说明1.1 网站资源Alsa项目的官方网址:http://www.alsa-project.org/Alsa LIB API Reference:http://www.alsa-project.org/alsa转载 2013-03-26 17:31:46 · 1092 阅读 · 0 评论 -
基于ALSA的WAV播放和录音程序
这段时间在探索ALSA架构,从ALSA Core到ALSA Lib,再到Android Audio System。在看ALSA Lib时,写了一个比较典型的基于ALSA的播放录音程序。程序包包含四个部分:WAV Parser是对WAV文件的分析和封装,这里只针对Standard WAV File;SND Common是Playback 和Record共同操作,如SetParams、Re转载 2013-03-27 10:34:41 · 1169 阅读 · 0 评论 -
ALSA SOC在Linux3.1上的一些改进
2012已经到来,无论这个世界是否行将毁灭,在那之前的日子还得要继续。Android迈进了4.0,相应的Linux内核也进入了3.x时代。之后的一个工作估计要将2.6.32的驱动移植到3.x上面来。因此趁现在有空,看看alsa在这方面有什么改动。总的来说,架构大的改动是不大可能的。codec中几个关键结构体没有大的变化,如snd_soc_dai_ops、snd_soc_dai_dr转载 2013-10-22 17:41:22 · 1310 阅读 · 0 评论 -
4.0音频系统HAL初探 tinymix
一、代码模块位置1、AudioFlingerframeworks/base/services/audioflinger/+-- Android.mk+-- AudioBufferProvider.h+-- AudioFlinger.cpp+-- AudioFlinger.h+-- AudioMixer.cpp+-- AudioMixer.h+--转载 2013-10-22 17:38:46 · 7928 阅读 · 0 评论 -
音频数据流程
在系统启动时MediaSever加载了两个服务:AudioPolicyService和AudioFlinger。 1.3.1 AudioPolicyServiceAudioPolicyService主要完成以下任务JAVA应用层通过JNI,经由IAudioPolicyService接口,访问AudioPolicyService提供的服务输入输出设备的连接状态系统的音频策略(转载 2013-01-30 20:10:07 · 1293 阅读 · 0 评论 -
ALSA驱动、设备函数调用关系
soc_probe==> snd_soc_register_card或者snd_soc_register_dai或者snd_soc_register_platform或者snd_soc_register_codec==> snd_soc_instantiate_cards==> snd_soc_instantiate_card==> codec_dev->probe==> ud转载 2013-01-30 20:09:24 · 1613 阅读 · 0 评论 -
硬件参数 调整 麦克风MIC灵敏度 原理
1、先看MIC电路连接这是个差分输入的例子,MICP2和MICN2是一对差分信号,经过C156的滤波,输入到MIC两端MIC两引脚分别是到地和供电,上图的R177参数就关系到MIC输入的灵敏度2、电阻R177影响灵敏度分析MICBIAS是提供MIC的偏置电压,其大小一般是由codec的内部寄存器配置的,比如为0.6AVDD;显然,电阻R177越大,通过R转载 2013-01-30 19:54:56 · 3056 阅读 · 0 评论 -
Linux ALSA声卡驱动之一:ALSA架构简介
一. 概述 ALSA是Advanced Linux Sound Architecture 的缩写,目前已经成为了linux的主流音频体系结构,想了解更多的关于ALSA的这一开源项目的信息和知识,请查看以下网址:http://www.alsa-project.org/。 在内核设备驱动层,ALSA提供了alsa-driver,同时在应用层,ALSA为我们提供了alsa-lib,转载 2013-01-15 16:11:44 · 548 阅读 · 0 评论 -
Linux ALSA声卡驱动之六:ASoC架构中的Machine
目录(?)[+]注册Platform Device注册Platform Driver初始化入口soc_probe前面一节的内容我们提到,ASoC被分为Machine、Platform和Codec三大部分,其中的Machine驱动负责Platform和Codec之间的耦合以及部分和设备或板子特定的代码,再次引用上一节的内容:Machine驱动负责处理机器特有的一些控件和音频事件(转载 2013-01-15 16:38:29 · 577 阅读 · 0 评论 -
Linux ALSA声卡驱动之七:ASoC架构中的Codec
1. Codec简介在移动设备中,Codec的作用可以归结为4种,分别是:对PCM等信号进行D/A转换,把数字的音频信号转换为模拟信号对Mic、Linein或者其他输入源的模拟信号进行A/D转换,把模拟的声音信号转变CPU能够处理的数字信号对音频通路进行控制,比如播放音乐,收听调频收音机,又或者接听电话时,音频信号在codec内的流通路线是不一样的对音频信号做出相应的处理,例如音转载 2013-01-15 16:39:28 · 913 阅读 · 0 评论 -
Linux ALSA声卡驱动之八:ASoC架构中的Platform
1. Platform驱动在ASoC中的作用前面几章内容已经说过,ASoC被分为Machine,Platform和Codec三大部件,Platform驱动的主要作用是完成音频数据的管理,最终通过CPU的数字音频接口(DAI)把音频数据传送给Codec进行处理,最终由Codec输出驱动耳机或者是喇叭的音信信号。在具体实现上,ASoC有把Platform驱动分为两个部分:snd_soc_plat转载 2013-01-15 16:40:18 · 805 阅读 · 0 评论 -
Linux ALSA声卡驱动之二:声卡的创建
目录(?)[+]struct snd_cardsnd_card是什么snd_card的定义声卡的建立流程第一步创建snd_card的一个实例第二步创建声卡的芯片专用数据第三步设置Driver的ID和名字第四步创建声卡的功能部件逻辑设备例如PCMMixerMIDI等第五步注册声卡一个实际的例子snd_card_createsnd_card_register转载 2013-01-15 16:12:56 · 573 阅读 · 0 评论 -
Linux ALSA声卡驱动之三:PCM设备的创建
声明:本博内容均由http://blog.csdn.net/droidphone原创,转载请注明出处,谢谢!1. PCM是什么PCM是英文Pulse-code modulation的缩写,中文译名是脉冲编码调制。我们知道在现实生活中,人耳听到的声音是模拟信号,PCM就是要把声音从模拟转换成数字信号的一种技术,他的原理简单地说就是利用一个固定的频率对模拟信号进行采样,采样后的信号转载 2013-01-15 16:14:10 · 572 阅读 · 0 评论 -
Linux ALSA声卡驱动之五:移动设备中的ALSA(ASoC)
1. ASoC的由来ASoC--ALSA System on Chip ,是建立在标准ALSA驱动层上,为了更好地支持嵌入式处理器和移动设备中的音频Codec的一套软件体系。在ASoc出现之前,内核对于SoC中的音频已经有部分的支持,不过会有一些局限性: Codec驱动与SoC CPU的底层耦合过于紧密,这种不理想会导致代码的重复,例如,仅是wm8731的驱动,当时Lin转载 2013-01-15 16:37:27 · 576 阅读 · 0 评论 -
Android音频流程二(Binder部分)
2、libmedia MediaPlayer至MediaPlayerService (binder)client和service之间的通信通过android binder机制,只是对于用户而言是透明的。继续按照上面play调用流程,上面已经调用到了frameworks的mediaplayer.cpp方法start[csharp] view plaincopy转载 2013-01-30 19:50:52 · 1204 阅读 · 0 评论 -
Android音频流程三(各种类及主要方法)
AudioTrack音轨创建:AudioTrack::createTrack1)AudioSystem::get_audio_flinger2)AudioSystem::getOutputSamplingRate3)AudioSystem::getOutputFrameCount4)AudioSystem::getOutputLatency5)audioFlinge转载 2013-01-30 19:51:22 · 2677 阅读 · 0 评论 -
snd_soc_codec_device 之 snd_soc_new_pcms(上)
以wolfsen的wm8900 codec为例,在wm8900.c中可以看到struct snd_soc_codec_device soc_codec_dev_wm8900 = {.probe = wm8900_probe,.remove = wm8900_remove,.suspend = wm8900_suspend,.resume = wm8900_resume,};转载 2013-01-30 19:53:16 · 1544 阅读 · 0 评论 -
Android音频流程一(JNI部分)
1、Music.apk至java MediaPlayer 至 libmedia MediaPlayer (JNI)Start是Java空间代码,在框架层的frameworks/base/media/java/android/media/mediaPlayer.java中,通过JNI和android binder机制,向C++空间调用实现;向上打包成mediaplayer库提过给应用开发使用转载 2013-01-30 19:50:04 · 1801 阅读 · 0 评论 -
Audio codec linux driver 之 ALSA 架构的 DAPM 学习
Dynamic Audio Power Management for Portable Devices ===================================================1. Description ==============Dynamic Audio Power Management (DAPM) is designed to allow p转载 2013-01-30 19:52:28 · 1290 阅读 · 0 评论 -
试探Galaxy的音频设计框架
之前转载过一篇文章-智能手机音频系统概述,描述了手机音频系统设计框图。实际上那是一个简单的做法,应用中有较大的局限性。那么一个完善的音频框架应该是什么样的呢?这两天根据Android4.0源码的一些线索,找到了相应的硬件资料,摘录下来。注:以samsung tuna方案(即galaxy nexus)为例。audio_hw在ANDROID音频系统散记之四:4.0音频系统H转载 2013-10-22 17:43:02 · 1545 阅读 · 0 评论