Графы фильтра звука
Граф фильтров KS — это коллекция фильтров KS, которые были соединены друг с другом для обработки одного или нескольких потоков данных. Граф фильтра звука — это граф фильтра KS, состоящий из фильтров, обрабатывающих потоки аудиоданных. Например, на следующем рисунке показана упрощенная схема графа фильтра звука, который выполняет отрисовку и захват звука.
На рисунке диаграмма фильтров простирается от контактов в верхней части двух волновых фильтров до контактов в нижней части двух фильтров топологии. Программные модули пользовательского режима и внешние звуковые устройства (т. е. динамик и микрофон) находятся за пределами графа.
Четыре фильтра в нижней половине рисунка представляют аппаратные устройства на звуковом адаптере, которые могут отображать и захватывать потоки волн. Каждый из фильтров, показанных на рисунке, реализуется путем привязки драйвера порта к драйверу мини-порта. Драйвер адаптера формирует фильтр волн, привязывая драйвер порта WaveRT, WavePci или WaveCyclic к соответствующему драйверу miniport 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 на звуковом устройстве. В этом случае сигнал, проходящий через контакт моста, является цифровым, а не аналоговым.