夜雨聆风学习资料网

ARTICLE · 1228112

AudioReach 源码分析(二):从 AIDL Audio

AudioReach 源码分析(二):从 AIDL Audio

AudioReach 源码分析(二):从 AIDL Audio

点播一首歌,AudioFlinger 向 HAL 请求打开输出流。到 PAL 里出现能写数据的对象,中间就干三件事。

HAL 先把参数塞进交接单。它按 flags 和 address 定好流类型,原样交给 PAL。车载普通播放没特殊 flag,带了 BUS 地址,最后就是 PLAYBACK_BUS。

PAL 拿到单子后连做两次分派。先建 StreamPCM,再进 default 分支建 SessionAlsaPcm。这里得纠正个流传很广的说法:常规车载播放走的是 SessionAlsaPcm,不是 SessionAgm。AGM 图会话在这个 build 里根本没被触发过。

分工也简单:Stream 管生命周期和设备路由,是写数据的入口;Session 管打开后端、下发配置。一条 Stream 只持有一个 Session。

最后一步打开硬件。pcm_write 把采样数据送进 ALSA 声卡,mixer_ctl_set_array 另走一路下发 DSP 图参数。走了 SessionAlsaPcm,不等于没用 AudioReach 的图机制。

原文AudioReach 源码分析(二):从 AIDL Audio HAL 到 PAL,一条音频流是如何创建的?
江苏,1小时前,

相关学习资料