音频筛选器图

KS 筛选器图是已连接在一起以处理一个或多个数据流的 KS 筛选器的集合。 音频筛选器图是一个 KS 筛选器图,由处理音频数据流的筛选器组成。 例如,下图是执行音频呈现和捕获的音频筛选器图的简化关系图。

Diagram illustrating a simple audio filter graph for rendering and capture.

在该图中,筛选器图从两个波次筛选器顶部的引脚扩展到两个拓扑筛选器底部的引脚。 用户模式软件模块和外部音频设备(即扬声器和麦克风)位于图外。

图下半部分的四个筛选器表示音频适配器上的硬件设备,该适配器可以呈现和捕获波次流。 图中显示的每个筛选器都是通过将端口驱动程序绑定到微型端口驱动程序来实现的。 适配器驱动程序将形成波次筛选器,方法是将 WaveRT、WavePci 或 WaveCyclic 端口驱动程序绑定到相应的 WaveXxx 微型端口驱动程序。 适配器驱动程序会形成拓扑筛选器,方法是将拓扑端口驱动程序绑定到拓扑微型端口驱动程序。

在图的左侧,DirectSound 或 waveOut 应用程序(顶部)的音频流通过扬声器(底部)播放。 在右侧,DirectSoundCapture 或 waveIn 应用程序(顶部)记录从麦克风(底部)输入的流。 在这两侧,在 Windows Vista 中对系统执行混合的音频引擎实例在波次筛选器和应用程序之间交错。 (在 Windows Server 2003、Windows XP、Windows 2000 和 Windows Me/98 中,KMixer 系统驱动程序是系统混音器。)

音频引擎是一种通用的软件筛选器,可在用户模式下运行,并且可以在其源和接收器引脚上的各种音频格式和采样率之间轻松转换。 音频引擎通常可以适应为硬件配置的流格式与应用程序所需的流格式之间的差异。

在上图底部,驱动扬声器的源引脚和接收麦克风信号的接收器引脚被标记为桥接引脚。 桥接引脚将桥接筛选器图与外部世界之间的边界。

在上图中,每个波次筛选器与其相应的拓扑筛选器之间显示的数据路径通常表示物理连接:音频适配器上的固定硬件连接,不能由软件配置。

由于桥接引脚或具有物理连接的引脚已永久连接,因此该引脚是隐式存在的,无法被实例化或删除。 因此,没有桥接引脚对象(桥接引脚实例)可以向其发送 IRP,但可以在筛选器对象中查询其桥接引脚的 KSPROPSETID_Pin 属性。 同一规则适用于具有物理连接的引脚。

流经桥接引脚或物理连接的信号可以是模拟信号或数字信号。

例如,在上图中,两个桥接引脚都处理模拟信号。 左侧的桥接引脚从 DAC(数字到模拟转换器)传输输出信号,该转换器将驱动扬声器。 右侧的桥接引脚接收来自麦克风的信号,该麦克风会进入 ADC(模拟到数字转换器)。 但是,桥接引脚也可能表示音频设备上的 S/PDIF 连接器。 在这种情况下,经过桥接引脚的信号是数字信号,而不是模拟信号。