在 Fuchsia 中,您可以通过多种方式按照 使用的司机数量、沟通方式及职责。音频 驱动程序的责任由向驱动程序公开的接口决定 客户端可能是这些驱动程序的其他驱动程序或应用用户 设施。
定义
术语 | 定义 |
---|---|
硬件编解码器 | 一种实体或虚拟设备, 数字/模拟与模拟/数字之间的信号 包括所有组合,例如从数字到数字。 示例编解码器包括 DAC 放大器组合和 ADC 转化者。 |
控制器或引擎 | 管理系统的硬件部分,用于管理音频 例如 SOC 的音频子系统 |
动态广告插播 (DAI) | 数字音频接口。音频之间的接口 例如两个设备之间的 TDM 或 PDM 连接, 控制器和编解码器。 |
环形缓冲区 | 对共享内存区域(在 主内存)进行传输;此项共享 内存区域由 VMO 对象提供 |
音频接口
音频驱动程序的应用/客户端用户使用的 API 是 音频复合接口。借助此 API,应用 访问由驱动程序公开的音频硬件功能。可让驾驶员 公开各种类型硬件(包括硬件编解码器)的功能 一个或多个 DAI、控制器 环形缓冲区和 DAI,以及 处理元素的任意组合, 音频信号处理 API。
音频硬件中常见的一种拆分方式是设置一个音频引擎,用于配置 DAI 与音频硬件编解码器进行通信。在此分块中,我们可以 一个驱动程序用于音频引擎,一个用于编解码器。两个驱动程序都可以公开 音频复合接口实现相关功能。 编解码器驱动程序将公开一个或多个 DAI 互连接口, 音频引擎驱动程序将配置包含 DAI 的音频引擎硬件 或 DAI 连接到编解码器驱动程序。
这些驱动程序的客户端应配置所有驱动程序。示例 此架构适用于具有两个不同编解码器的系统 例如:对 SoC 的音频子系统进行抽象化处理。
+-----------------+
+----------+ Client +----------+
| +-----------------+ |
| | |
Composite API Composite API Composite API
| | |
+-----------------+ +-----------------+ +-----------------+
| audio subsystem | | Codec 1 | | Codec 2 |
+-----------------+ +-----------------+ +-----------------+
已弃用的接口
已弃用的接口包括:
- StreamConfig: 用于捕获或呈现音频的 audio_core 和 audio-driver-ctl。前者是 (提供软件混音、路由、 等),后者是一个用于测试和启动新平台的实用程序。
以前会使用 StreamConfig API 的驱动程序可通过以下方法实现: 具有一个环形缓冲区的音频复合音频。
编解码器:用于抽象 具有一个 DAI 的硬件编解码器之前会使用 Codec API 的驱动程序 可以使用 具有一个 DAI 且无环形缓冲区的音频复合音频。
DAI:用于抽象化 SoC 具有一个环形缓冲区和一个 DAI 的硬件。以前会使用 您可以使用 具有一个 DAI 和一个环形缓冲区的音频复合音频。