android音频驱动学习问题与总结
来源:互联网 发布:js 创建对象数组 编辑:程序博客网 时间:2024/06/05 04:54
转载自 http://www.eoeandroid.com/forum.php?mod=viewthread&tid=57065
想了解一下audio data硬件上的传输路径,以及kernel里面sound部分的总体框架,有高手了解的话请指教,谢谢:)
还想了解一下下面的问题:
1) 可以再讲解一下audio PCM stream的管理以及opencore解码部分的相互关系?
2) audio 部分的IPC是如何通信?
3) HAL层和ALSA lib的对应关系?
4) driver的接口和ALSA-lib是如何对应起来的?
小弟最近在研究这方面的东西,请各位高手指点一下,做driver也要对上层的东西了解一下。
最好不要长篇大论,用简洁的语言归纳一下,我也会把学习的体会及时更新到这篇文章中来,谢谢。
=======================================================
2011/01/28 update
首先要明白audio从上到下的一个流程是最重要的,下面是我目前对整个架构的理解:
上层的AP通过framework提供的接口创建一下audio播放的实例,framework中java layer通过JNI调用
libmedia部分,这部分是用C++写的,AudioFlinger中的内容都是继承libmedia的类,上层调用libmedia
最终还是落到audio flinger的接口上,audio flinger通过HAL层提供的接口得到一个HAL interface的一个实例
然后调用实例的接口,而HAL层一般就是对系统调用接口的一个封装,对于audio系统,目前android的架构
是HAL不会直接操作driver的接口,而是通过ALAS-lib提供的接口来使用,让ALSA-lib来封装driver的接口,如
系统调用ioctl之类的,这是目前我自己的理解,有不足的地方请指教,谢谢。。
=================================================
2011/01/28 update 上传一个自己的总结,有兴趣的可以看看。。
因为主要是driver的学习,所以上层的架构没有怎么仔细去看,只是简单整理。
00 Summary_audio_structure实例已上传至我的资源
=================================================
2011/02/09 update 新年第一天上班,准备在HAL层加一些trace跟踪代码
(1) 进入android代码顶层目录,执行 source build/envsetup.sh ==> 可以生成一些如mm这样的命令
(2) 在HAL层代码添加如LOGE的trace
(3) 进入external目录下libaudio目录,执行mm单独编译这个模块
(4) 回到顶层目录,执行make snod更新system.img,这样只要更新这个文件到device就可以了
执行make snod前提必须是整个工程已经被编译过,这样的方法可以快速把修改后的结果更新到
system.img中,不用整个工程重新编译
那么下来就根据trace看一看流程是怎样的。。。。
- android音频驱动学习问题与总结
- win8音频驱动问题
- android audio/linux alsa音频-应用与驱动的接口
- Alsa音频驱动学习笔记
- S5PV210 WM8960音频驱动 学习
- Android 音频驱动分析--A10
- Android音频驱动简析
- Android音频使用总结
- Android音频总结
- Android A2DP 音频卡顿问题BT HOST策略总结
- Android深度探索:HAL与驱动开发学习笔记--并发控制总结
- Android学习04音频的播放之SoundPool与MediaPlayer
- 音频重采样问题总结
- DELL N4050 音频驱动问题处理
- asoc 音频驱动学习笔记1
- asoc 音频驱动学习笔记2
- asoc 音频驱动学习笔记3
- Android MediaPlayer音频播放总结
- stdscr问题
- serv_u help IP 访问规则
- 黑马程序员------面向对象之对象
- strcmp函数实现及分析
- 10进制转换成其他进制
- android音频驱动学习问题与总结
- 在运行jar包的过程中处理引用第三方jar包方法
- C++程序设计实验报告(八)
- Javascript中this、prototype、constructor的理解
- calculate primes
- Bid Price
- c++位运算和逻辑运算
- 《POJ 1001》 Exponentiation
- Struts2源代码分析(一)配置文件加载 .