高通平台蓝牙学习--揭秘 WCN Split A2DP(终章)
十二、Split A2DP 模块数据流
蓝牙主机(BTHOST)会在蓝牙控制器中配置 A2DP 信息,同时蓝牙控制器接收编码后的音频并将其打包成蓝牙数据包。具体流程为:LPASS 提供编码后的音频数据,进入 Cherokee 模块后,结合 BTHOST 传递的 SCMS - T 头部、编解码器信息、通道配置等,经过 ACL、L2CAP、AVDTP、CP 等协议层处理,添加媒体有效载荷头部,最终形成有效载荷,通过 OTA TX(空中传输发送)出去。
十三、音频栈为 Split - A2DP 变更编解码器
(一)蓝牙开启时
蓝牙协议栈通过 AudioManager.getParam
接口查询支持的编码器格式,为后续音频编码做准备。
(二)蓝牙连接时
- 蓝牙协议栈将蓝牙连接事件告知音频管理器(AudioManager)。
- 音频管理器通知音频主 HAL(Primary HAL)。
- 主 HAL 打开 BT IPC 库并加载所有符号。
- 主 HAL 向 BT IPC 库查询编码格式和编码器属性。
- 主 HAL 调用 BT IPC 库来设置控制路径。
(三)蓝牙路由请求时
- 音频管理器使用
out_setParame