StageFright (SF)媒体框架
1,播放标准audio格式
2,SF媒体架构作为客户接口和Qualcomm OpenMAX接口进行通讯,对adsp支持的audio格式进行解码。
3,解码后的audio流传递给audio manager
4,位置: \frameworks\base\ media\libstagefright
Audio manager/AudioFlinger
1, 所有的audio输出设备都要通过libaudio接口
2, 将多种audio流处理为PCM audio并且将audio路由为各种输出设备。
3, 这个地方主要有audiopolicyserver来实现。
4,位置\frameworks\base\services\ audioflinger
HAL
1,Google audio管理和qualcomm PCM与RPC驱动的中间层
2,管理设备配置,增益控制,audio的后处理
3,\hardware\msm7k\libaudio
OpenMAX IL
1,OpenMAX IL层基于Qualcomm audio解码驱动向SF媒体框架定义了软件接口
2,位置\vendor\qcom-opensource\omx
PCM driver
1,处理PCM播放,PCM录音,和audio后处理与前处理
2,分配PMEM内存
3,\kernel\arch\arm\mach-msm\ qdsp5\audio_out.c, audio_in.c and audpp.c
Audio decoder driver
1,接口层位于ADSP和OpenMAX IL之间
2,分配PMEM内存
3,\kernel\arch\arm\mach-msm\ qdsp5\audio_mp3.c,audio_aa.c
Audio encoder driver
1,接口层位于ADSP和用户HAL层(libaudio)之间
2,分配PMEM内存
3,位置:\kernel\arch\arm\ mach-msm\qdsp5\audio_voicememo.c
ADSP driver
1,接口位于ADSP和kernel audio驱动之间
2,管理了命令和反馈信息
3,位置:\kernel\arch\arm\mach-msm\ adsp*.*
RPC router
1,把命令和反馈信息在app处理器和mp处理器之间路由
2,服务器在mp处理器,客户端在ap处理器
3,位置:\kernel\arch\arm\mach-msm\rpc*.*
耳机服务属于这个rpc类型