# 软件

本节提供了有关音频软件组件的
详细信息。

## PulseAudio

PulseAudio 管理所有音频应用程序、本地和网络流、
设备、滤波器和音频 I/O。

![../../_images/pulseaudio_sw.png](data:image/png;base64,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)

### PulseAudio PAL 插件

PulseAudio PAL 插件负责加载 PAL。它允许
客户端配置音频设备并调用各种音频
用例。

以下是 PulseAudio PAL 插件的组件：

| **Card** | 表示声卡。声卡是受支持的<br>配置文件、端口、Sink 和 Source 的集合。<br><br><br>卡模块的功能包括：<br><br><ul class="simple"><br><li><p>加载/卸载 PAL</p></li><br><li><p>创建/释放 PAL 支持的端口</p></li><br><li><p>创建/释放 PAL 卡</p></li><br><li><p>创建/释放 Sink 或 Source。Sink 对应于<br>播放路径。Source 对应于捕获路径。</p></li><br></ul> |
| --- | --- |
| **Sink** | 负责音频播放路径的配置。<br><br><br><br>> <br>> <br>> Sink 模块的功能包括：<br>> <br>> <ul class="simple"><br>> <li><p>根据 module-pal-card 提供的配置<br>> 打开/关闭播放会话</p></li><br>> <li><p>创建/释放为 PAL 播放会话写入数据的<br>> Sink 线程</p></li><br>> <li><p>设置音量支持</p></li><br>> <li><p>获取延迟支持</p></li><br>> <li><p>路由支持</p></li><br>> </ul> |
| **Source** | 负责音频捕获路径的配置。<br><br><br><br>> <br>> <br>> Source 模块的功能包括：<br>> <br>> <ul class="simple"><br>> <li><p>根据 module-pal-card 提供的配置<br>> 打开/关闭 PAL 录制会话</p></li><br>> <li><p>创建/释放 PA Source</p></li><br>> <li><p>创建用于从 PAL 录制会话读取数据的 Source<br>> 线程</p></li><br>> <li><p>路由支持</p></li><br>> </ul> |

## 平台适配层 (PAL)

平台适配层 (PAL) 提供更高级别的音频特定
API，用于访问底层音频硬件和驱动程序，以实现
功能丰富的音频用例。

PulseAudio 对不同的音频用例使用相同的 PAL API。PAL
模块的源代码位于：

`build-qcom-wayland/workspace/sources/qcom-pal/opensource/arpal-lx`

PAL 模块公开的所有 API 都位于以下位置：

`build-qcom-wayland/workspace/sources/qcom-pal/opensource/arpal-lx/inc/PalApi.h`

下面介绍了一些常用的 PAL API。

### pal\_init

初始化 PAL，解析相关的配置文件，并将它们存储
在本地架构中，以便在用例中使用。

int32_t pal_init( )
    Copy to clipboard

**参数**

无

**返回值**

- 成功时为 0
- 失败时为错误代码

### pal\_deinit

反初始化 PAL 并释放初始化期间分配的
资源。

void pal_deinit()
    Copy to clipboard

**参数**

无

**返回值**

- 成功时为 0
- 失败时为错误代码

### pal\_stream\_open

使用指定的配置（例如 Source/Sink 设备、
媒体配置等）打开流。成功执行时
返回流句柄。

int32_t pal_stream_open(
         struct pal_stream_attributes *attributes,
         uint32_t no_of_devices,
         struct pal_device *devices,
         uint32_t no_of_modifiers,
         struct modifier_kv *modifiers,
         pal_stream_callback cb,
         uint64_t cookie,
         pal_stream_handle_t **stream_handle)
    Copy to clipboard

**参数**

| attributes | 从 pal\_stream\_open 获取的有效流属性 |
| --- | --- |
| no\_of\_devices | 最初用于启动流的音频设备数 |
| devices | pal\_devices 的数组。数组的大小基于<br>客户端指定的 no\_of\_devices。 |
| no\_of\_modifiers | 修饰符数量 |
| modifiers | 修饰符的数组。修饰符用于添加其他<br>键值对。 |
| cb | 与流关联的回调函数。任何事件都将<br>通过此回调函数进行通知。 |
| cookie | 与流关联的客户端数据。此 cookie 将<br>在回调函数中返回。 |
| stream\_handle | 如果操作成功，则使用有效的流句柄进行更新 |

**返回值**

- 成功时为 0
- 失败时为错误代码

### pal\_stream\_start

启动流。

int32_t pal_stream_start(
         pal_stream_handle_t *stream_handle)
    Copy to clipboard

**参数**

| stream\_handle | 从 pal\_stream\_open 获取的有效流句柄 |
| --- | --- |

**返回值**

- 成功时为 0
- 失败时为错误代码

### pal\_stream\_read

读取从音频源设备捕获的音频缓冲区。

ssize_t pal_stream_read(
         pal_stream_handle_t *stream_handle,
         struct pal_buffer *buf)
    Copy to clipboard

**参数**

| stream\_handle | 从 pal\_stream\_open 获取的有效流句柄 |
| --- | --- |
| buf | 指向包含音频示例和元数据的 pal\_buffer 指针 |

**返回值**

- 读取的字节数
- 失败时为错误代码

### pal\_stream\_write

写入音频缓冲区，以便通过 Sink 设备进行流渲染。

ssize_t pal_stream_write(
         pal_stream_handle_t *stream_handle,
         struct pal_buffer *buf)
    Copy to clipboard

**参数**

| stream\_handle | 从 pal\_stream\_open 获取的有效流句柄 |
| --- | --- |
| buf | 指向包含音频示例和元数据的 pal\_buffer 指针 |

**返回值**

- 读取的字节数
- 失败时为错误代码

### pal\_stream\_stop

停止流。

int32_t pal_stream_stop(
         pal_stream_handle_t *stream_handle)
    Copy to clipboard

**参数**

| stream\_handle | 从 pal\_stream\_open 获取的有效流句柄 |
| --- | --- |

**返回值**

- 成功时为 0
- 失败时为错误代码

### pal\_stream\_close

关闭流。

int32_t pal_stream_close(
         pal_stream_handle_t *stream_handle)
    Copy to clipboard

**参数**

| stream\_handle | 从 pal\_stream\_open 获取的有效流句柄 |
| --- | --- |

**返回值**

- 成功时为 `0`
- 失败时为错误代码

## TinyALSA

TinyALSA 是一个库，可将 ALSA 内核接口包装成客户端
可以调用的 API，并提供插件接口来模拟 ALSA
API。

TinyALSA 源代码可以在以下位置找到：

`build-qcom-wayland/workspace/sources/tinyalsa` 和

`build-qcom-wayland/workspace/sources/tinycompress`。

下面介绍了一些常用的 TinyALSA API。请参见
[开源 TinyALSA
文档](https://github.com/tinyalsa/tinyalsa/blob/master/include/tinyalsa/pcm.h)
以获取所有 API 的完整描述。

有关基于 TinayAlsa 的应用程序的更多详细信息，可供
对 Qualcomm Linux 提供的专有软件具有完全访问权限的
开发者使用。请参见 [Qualcomm Linux Audio Guide –
Addendum，](https://docs.qualcomm.com/bundle/resource/topics/80-70015-16A/customize_addendum.html#tinyalsa-based-applications)
了解更多信息。

### pcm\_open

用于打开 PCM 音频设备进行输入和输出操作。
对通信 PCM 设备进行初始化，允许
对音频数据进行后续读/写操作。

struct pcm *pcm_open(
         unsigned int card,
         unsigned int device,
         unsigned int flags,
         struct pcm_config *config)
    Copy to clipboard

**参数**

| card | 指定卡号 |
| --- | --- |
| device | 指定所选卡中的设备编号 |
| flags | 用于配置 pcm 设备各个方面的标志 |
| config | 用于指定音频流参数的结构变量 |

**返回值**

`pcm* handle`

### pcm\_is\_ready

用于检查 PCM 设备是否准备好进行输入/输出操作。

int pcm_is_ready(struct pcm *pcm)
    Copy to clipboard

**参数**

| pcm | 指向打开的 PCM 设备的指针 |
| --- | --- |

**返回值**

- 成功时为 0
- 失败时为错误代码

### pcm\_prepare

准备音频设备输入和输出操作。

int pcm_prepare(
         struct pcm *pcm)
    Copy to clipboard

**参数**

| pcm | 指向打开的 PCM 设备的指针 |
| --- | --- |

**返回值**

- 成功时为 0
- 失败时为错误代码

### pcm\_start

用于启动 PCM 音频设备进行输入和输出操作。

int pcm_start(
         struct pcm *pcm)
    Copy to clipboard

**参数**

| pcm | 指向已打开的 PCM 设备的指针 |
| --- | --- |

**返回值**

- 成功时为 0
- 失败时为错误代码

### pcm\_write

用于将音频数据写入音频 PCM 设备。将音频数据作为
输入，并将其发送到 PCM 设备进行播放或处理。

int pcm_write(
         struct pcm *pcm,
         const void *data,
         unsigned int count)
    Copy to clipboard

**参数**

| pcm | 指向已打开的 PCM 设备的指针 |
| --- | --- |
| data | 要写入的音频数据 |
| count | 要写入的音频帧数 |

**返回值**

- 成功时为 0
- 失败时为错误代码

### pcm\_read

从 PCM 设备接收音频数据，允许应用程序
从麦克风捕获音频数据。

int pcm_read(
         struct pcm *pcm,
         void *data,
         unsigned int count)
    Copy to clipboard

**参数**

| pcm | 指向已打开的 PCM 设备的指针 |
| --- | --- |
| data | 要读取的音频数据 |
| count | 要读取的音频帧数 |

**返回值**

- 成功时为 0
- 失败时为错误代码

### pcm\_stop

用于停止 PCM 音频设备进行进一步的输入和输出
操作。

int pcm_stop(
         struct pcm *pcm)
    Copy to clipboard

**参数**

| pcm | 指向已打开的 PCM 设备的指针 |
| --- | --- |

**返回值**

- 成功时为 0
- 失败时为错误代码

### pcm\_close

用于关闭 PCM 音频设备。这将释放与 PCM 设备
关联的资源并释放内存。

int pcm_close(
         struct pcm *pcm)
    Copy to clipboard

**参数**

| pcm | 指向已打开的 PCM 设备的指针 |
| --- | --- |

**返回值**

- 成功时为 0
- 失败时为错误代码

## 音频图形管理器 (AGM)

AGM 提供接口以允许基于 TinyALSA 的混音器控件和
PCM/Compress 插件进行交互，并实现各种音频用例。
AGM 作为 PulseAudio 服务的一部分运行，运行在用户空间。

![../../_images/agm_sw.png](data:image/png;base64,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)

AGM 为混音器插件 和 PCM/Compress 提供API 以搭建
音频用例。它为搭建用例维护多个 ALSA 客户端。
AGM 还处理前端到后端连接的管理。

下图显示了 AGM 模块框图。

![../../_images/AGM_service_blocks.png](data:image/png;base64,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)

| 对象 | 说明 |
| --- | --- |
| **会话** | <ul class="simple"><br><li><p>会话对象表示音频播放或捕获<br>会话。</p></li><br><li><p>其在调用特定于会话的混音器控件或 API 时<br>创建。</p></li><br><li><p>职责包括为 TinyALSA 插件<br>提供 API 以配置流以及管理图形和<br>设备对象的状态转换。</p></li><br></ul> |
| **图** | <ul class="simple"><br><li><p>图形对象表示音频用例。</p></li><br><li><p>它与 GSL 交互以打开、管理和关闭图形。</p></li><br><li><p>职责包括提供用于图形创建的 API、<br>管理图形以及配置流和设备<br>端点。</p></li><br></ul> |
| **设备** | <ul class="simple"><br><li><p>设备对象表示 ALSA 声卡中的 ALSA<br>设备。</p></li><br><li><p>其枚举了可用的音频接口，并提供<br>用于转换设备状态的设备 API。</p></li><br></ul> |

## AudioReach Graph Service (ARGS)

AudioReach Graph Service (ARGS) 由图形服务层
(GSL)、通用包路由器 (GPR) 和 ACDB 管理层 (AML) 组成。它
处理图形的初始化和创建，以及构建
用于向 SPF 发送一系列命令的数据包。

![../../_images/audioreach_sw.png](data:image/png;base64,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)

| 组件 | 说明 |
| --- | --- |
| **GSL** | <ul class="simple"><br><li><p>图形服务层 (GSL) 属于 SPF 的软件驱动程序，<br>用于管理图形、子图、缓冲区和<br>配置。</p></li><br><li><p>GSL 通过图键向量 (GKV) 加载和<br>初始化图。</p></li><br><li><p>其处理数据命令和 SPF 模块校准。</p></li><br></ul> |
| **GPR** | <ul class="simple"><br><li><p>通用包路由器 (GPR) 通过 SPF 和图形服务库<br>路由音频消息数据包。</p></li><br><li><p>它处理用于构造音频图形和处理音频的<br>命令。</p></li><br></ul> |
| **AML** | <ul class="simple"><br><li><p>AML 提供获取/设置 API 来检索和调整<br>音频校准数据库 (ACDB) 文件中的数据。</p></li><br><li><p>它为音频驱动程序及其组件<br>如何使用校准数据提供了数据抽象和<br>组织方案。</p></li><br></ul> |

## 信号处理框架 (SPF)

信号处理框架在 LPAI 子系统中运行，
负责执行音频数据处理。

![../../_images/spf_sw.png](data:image/png;base64,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)

下图提供了 SPF 中使用的功能块的
高度概述。

![../../_images/spf_blocks.png](data:image/png;base64,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)

| 组件 | 说明 |
| --- | --- |
| **音频处理管理器 (APM)** | APM 负责在信号处理框架 (SPF) 中<br>搭建和管理用例图。它为<br>图形管理库和 APM 客户端提供标准 API，<br>用于搭建和配置音频用例。 |
| **模块** | 模块是 SPF 中的一个可处理的功能。它<br>负责在 LPAI 子系统内执行<br>实时音频处理。 |
| **容器** | 容器是一种框架实现，可帮助<br>一组数据处理模块在同一软件线程中<br>一起执行。每个容器实例都在其自己的软件线程中<br>运行。 |

## 音频用例的实现

每个音频用例都表示为由特定类型子图
组成的图。每个子图由一个或多个执行
特定功能的软件块（称为模块）
组成。

### 音频图形概念和术语

| **用例** | 从 Source 端点到 Sink 端点的模块的图，<br>满足产品定义的用例要求。 |
| --- | --- |
| **图** | 一种对组合的逻辑表示，包含一个或多个连接<br>在一起的子图，以实现特定用例。 |
| **子图** | 一种对组合的逻辑抽象，包含若干作为单个实体进行连接和操作的模块<br>。 |
| **容器** | 允许系统设计人员在单个软件线程中<br>对音频处理模块进行分组和执行的对象。 |
| **模块** | 信号处理框架内最小的<br>独立处理单元。 |
| **键值 (KV) 对** | 键向量中的单个键和关联值。<br>例如，键可以是音响设备，值可以是<br>耳机、扬声器或其他一些音响设备。 |
| **键向量** | 通过一组 KV 对识别为唯一的标识图或<br>子图。 |
| **图键向量 (GKV)** | GKV 是用于检索由一组多个 KV 对<br>表示的图的唯一标识符。当从 QACT UI 画布<br>创建子图时，图形或系统设计器会将<br>一组唯一的 &lt;keys&gt; 与 &lt;values&gt; 相关联。 |
| **校准键向量 (CKV)** | CKV 是用于检索由一组多个 KV 对<br>表示的校准数据的唯一标识符。当存储<br>校准数据时，图形或系统设计人员会将<br>一组唯一的 &lt;keys&gt; 与 &lt;values&gt; 相关联。 |
| **标签和标签键向量 (TKV)** | 标签是用于为一个或多个模块设置运行时参数的<br>标识符。它允许在运行时在图形中<br>更新模块配置（例如，启用/禁用回声消除<br>或均衡等功能）。 |

### 图段

音频用例由以下图段组成。前端
一般代表 Stream 和 StreamPP 子图，而后端
代表 PSPD、DevicePP 和 Device 子图。

| **音频流** | 提供数据写/读接口，并在数据压缩后<br>对数据进行解码和编码 |
| --- | --- |
| **StreamPP** | 包含基于流的处理模块（例如<br>均衡器） |
| **单流单设备 (PSPD)** | 包含用于将流媒体格式转换为<br>设备媒体格式的模块 |
| **DevicePP** | 包含用于声音设备调试的处理模块 |
| **设备** | 硬件端点，例如 CodecDMA (Soundwire)、I2S 或 TDM 端口 |

一旦前端通过路由混音器控件连接到后端，
完整的 GKV 即通过连接子图 GKV 形成，CKV
通过混音器控件指定。打开前端 PCM 或 Compress 设备后，
AGM 会使用连接好的 GKV 和 CKV 调用 GSL API，
以便在 SPF 中搭建图形并应用校准。同时，AGM 打开
与连接的后端相对应的内核 PCM 设备，来开始
音频外设设置。

### 示例音频图

下图显示了播放方案的示例音频图。

![../../_images/sample_audio_graph.png](data:image/png;base64,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)

在此图中：

1. Stream 子图由写入共享内存端点、
PCM 解码器和 PCM 转换器组成。客户端传递 PCM 样本以写入
共享内存端点。
2. 如果需要转换，PCM 转换器将 PCM 样本
转换为特定于流的后处理模块支持的格式。
3. Stream 子图的输出被馈送到包含
媒体格式转换器 (MFC) 的流 Device 子图中。MFC 将
Stream 子图 PCM 转换为 Device 子图 PCM 格式。
4. 转换后，流 Device 子图的输出被馈送
到 DevicePP 子图中，用于特定于设备的后处理。混音器
放置在子图的开头，用于混合输入流。
5. 然后，DevicePP 子图的输出被馈送到 Device 子图中，
该子图包含 I2S 驱动程序等硬件端点模块。

以下是此示例图的 GKV：

GKV1: <StreamRX1 KVs, StreamRX2 PP KVs, StreamRX1DeviceRX KVs, DeviceRX PP KVs, DeviceRX KVs>
    
    GKV2: <StreamRX2 KVs, StreamRX2 PP KVs, StreamRX2DeviceRX KVs, DeviceRX PP KVs, DeviceRX KVs>
    Copy to clipboard

### 音频校准数据库 (ACDB)

ACDB 是一个静态数据库，位于应用处理器中。其中包含
LPAI 的所有调试/校准参数。各种音频模块的
校准数据均以 \*.acdb 文件格式进行组织，
可通过基于 PC 的 QACT 工具进行编辑。该文件
置于设备文件系统的 /etc/acdbdata/ 文件夹下。在
用例初始化或设备切换期间，AML 通过给定的 GKV 查询 ACDB
数据库，并将设备校准数据传送到 SPF。

Last Published: Dec 10, 2024

[Previous Topic
API 和示例程序](https://docs.qualcomm.com/bundle/publicresource/80-70015-16SC/topics/apis_and_sample_apps.md) [Next Topic
定制](https://docs.qualcomm.com/bundle/publicresource/80-70015-16SC/topics/customize.md)