Android_Audio架构全分析.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Android_Audio架构全分析

Page ? * Android Audio 主要内容: 项目背景 项目平台及Android Audio整体框架 Android Audio Hardware 和驱动详细分析 1、项目背景 Android系统迅速崛起,其市场占有率已经超越iOS和Symbian成为第一大智能设备操作系统。作为一个开源的系统,Android被越来越多的硬件厂家所支持,使得Android被大量应用在智能手机和平板电脑。 多媒体应用向来是3C电子产品中的一个永恒话题,作为一个智能操作系统,Android自然少不了多媒体应用,正是在这种背景下,本项目分析Android Audio的基本框架以及底层驱动的实现。 1.1、项目平台和功能 平台: 硬件平台:smdkc100、WM9714 软件平台:Android 2.1、Linux kernel 2.6.29、alsa-lib 1.0.19、alsa-utils 1.0.19 功能: 使用 Music App 播放音频文件 使用 SoundRecorder App进行录音 2.1、Android 2.1 Audio 框架分析 Music PacketVideo Open Core Platform Hardware 2.2、Android 2.1 Audio 框架分析 用户空间 内核空间 ALSA lib ALSA 框架 ASoc 驱动 ALSA lib 用于对底层驱动进行封装,以方便应用程序的编写;ALSA 框架对底层驱动进行封装,然后对应用程序提供一个统一的接口;ASoc 驱动是基于 ALSA 框架的驱动,它的主要思想是将板级相关的代码和芯片相关的代码分离,以提供驱动程序的移植性。 3.1、Hardware Android 2.1 自带 Audio Hardware : 用于实现将PCM流输出到文件,可以用来测试音频解码是否正确。 实现基于特定驱动(eac)的通用Audio硬件抽象层 实现一个虚拟的Audio硬件抽象层,这个实现不操作实际的硬件和文件,它所进行的是空操作,在系统没有实际的Audio设备时使用这个实现可以保证系统的正常运行。 3.1、Hardware Android 2.1 基于 ALSA 的 Audio Hardware 层: 基于ALSA驱动的Android Audio Hardware层。 3.1、Hardware Android 2.1 Audio Hardware 配置: 3.1、Hardware Android 2.1 Audio Hardware(ALSA) 分析: 3.2、Alsa lib alsa-lib运行在用户空间,他对alsa-driver进行封装,应用程序只要调用alsa-lib提供的API,即可以完成对底层音频硬件的控制。ALSA lib 编译后会生成 libasound.so,该库会被 AudioFlinger 动态链接,除此之外,编译后还会生成 alsa lib 配置文件。 3.3、ALSA驱动分析 ALSA框架的逻辑结构: snd_card 是整个 ALSA 框架的入口,ALSA框架在初始化时会首先创建一个 snd_card ,然后在其下创建多个设备(至少应包含一个PCM设备和一个Control设备,分别用于声音的录放和控制。) 3.3、ALSA驱动分析 ALSA框架初始化过程: 3.3、ASoc驱动简介 ASoc(ALSA System On Chip)是 ALSA 在 Soc 方面的发展和演变,它本质上仍然属于 ALSA ,但是在 ALSA 架构基础上对 CPU 相关的代码和 Codec 相关的代码进行了分离。 ASoc 主要由 3 部分组成: (1)、Codec驱动:这部分只进行 Codec 相关的操作。 (2)、平台驱动:这部分只进行 CPU 端的操作,它主要处理两个问题:DMA 引擎和 Soc 集成的 PCM、I2S或AC97数字接口控制。 (3)、板驱动:这部分将平台驱动和 Codec 驱动绑定在一起,描述了板一级的硬件特性。 对于目前的嵌入式系统,一般采用 ASoc 框架,这样能使驱动具有更好的移植性。 3.3、ASoc驱动分析 ASoc驱动源码: soc-core.c:ASoc 驱动核心 s5pc1xx-ac97.c:平台驱动 wm9713.c:Codec驱动 smdkc100_wm9713.c:板驱动 wm9713同时提供了PCM、I2S 和 AC97三种控制接口,从smdkc100电路图可以知道S5PC100与wm9713通过 AC97 控制接口相连,因此此处选用的平台驱动是:s5pc1

文档评论(0)

tmd2017 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档