Freigeben über


Audiofilterdiagramme

Ein KS-Filterdiagramm ist eine Sammlung von KS-Filtern, die miteinander verbunden wurden, um einen oder mehrere Datenströme zu verarbeiten. Ein Audiofilterdiagramm ist ein KS-Filterdiagramm, das aus Filtern besteht, die Audiodatenströme verarbeiten. Die folgende Abbildung ist beispielsweise ein vereinfachtes Diagramm eines Audiofilterdiagramms, das Audiorendering und -aufzeichnung ausführt.

Diagramm, das ein einfaches Audiofilterdiagramm zum Rendern und Erfassen veranschaulicht.

In der Abbildung erstreckt sich das Filterdiagramm von den Pins am oberen Rand der beiden Wellenfilter bis zu den Pins am unteren Rand der beiden Topologiefilter. Die Softwaremodule für den Benutzermodus und externe Audiogeräte (d. h. Lautsprecher und Mikrofon) befinden sich außerhalb des Diagramms.

Die vier Filter in der unteren Hälfte der Abbildung stellen Hardwaregeräte auf einem Audioadapter dar, die Wellenströme rendern und erfassen können. Jeder der in der Abbildung dargestellten Filter wird implementiert, indem ein Porttreiber an einen Miniporttreiber gebunden wird. Der Adaptertreiber bildet einen Wellenfilter, indem er den WaveRT-, WavePci- oder WaveCyclic-Porttreiber an einen entsprechenden WaveXxx-Miniporttreiber bindet. Der Adaptertreiber bildet einen Topologiefilter, indem er den Topologieporttreiber an einen Topologieminiporttreiber bindet.

Auf der linken Seite der Abbildung wird der Audiostream von einer DirectSound- oder waveOut-Anwendung (oben) über einen Lautsprecher (unten) wiedergegeben. Auf der rechten Seite zeichnet eine DirectSoundCapture- oder waveIn-Anwendung (oben) den Stream auf, der von einem Mikrofon (unten) eingegeben wird. Auf beiden Seiten wird zwischen dem Wellenfilter und der Anwendung eine instance der Audio-Engine zwischengesetzt, die das Mischen für das System in Windows Vista durchführt. (In Windows Server 2003, Windows XP, Windows 2000 und Windows Me/98 ist der KMixer-Systemtreiber der Systemmischer.)

Die Audio-Engine ist ein vielseitiger Softwarefilter, der im Benutzermodus ausgeführt wird und problemlos zwischen einer Vielzahl von Audioformaten und Sampleraten an den Quell- und Senkenpins konvertieren kann. Die Audio-Engine kann in der Regel die Unterschiede zwischen dem Streamformat, für das die Hardware konfiguriert ist, und dem Streamformat, das die Anwendung erwartet, berücksichtigen.

Am unteren Rand der vorherigen Abbildung werden der Quellstift, der den Lautsprecher antreibt, und der Senkenstift, der das Mikrofonsignal empfängt, als Bridge-Pins bezeichnet. Ein Brückenstift überbrückt die Grenze zwischen einem Filterdiagramm und der Außenwelt.

In der obigen Abbildung stellt der Datenpfad zwischen den einzelnen Wellenfiltern und dem entsprechenden Topologiefilter in der Regel eine physische Verbindung dar: eine feste Hardwareverbindung auf dem Audioadapter, die nicht per Software konfiguriert werden kann.

Da ein Bridge-Pin oder ein Pin mit einer physischen Verbindung dauerhaft verbunden ist, ist der Pin implizit vorhanden und kann nicht instanziiert oder gelöscht werden. Daher gibt es keine Bridge-Pin-Objekte (Instanzen von Bridge-Pins), an die IRPs gesendet werden können, obwohl Sie ein Filterobjekt für die KSPROPSETID_Pin Eigenschaften seiner Bridge-Pins abfragen können. Die gleiche Regel gilt für Pins mit physischen Verbindungen.

Das Signal, das über einen Bridge-Pin oder eine physische Verbindung weitergeleitet wird, kann entweder analog oder digital sein.

In der vorherigen Abbildung verarbeiten beispielsweise die beiden Brückenstifte analoge Signale. Der Brückenstift auf der linken Seite überträgt das Ausgangssignal eines DAC (Digital-Analog-Konverter), der einen Lautsprecher antreibt. Der Brückenstift auf der rechten Seite empfängt das Signal von einem Mikrofon, das in einen ADC (Analog-Digital-Konverter) eindringt. Ein Bridge-Pin kann jedoch auch einen S/PDIF-Anschluss auf einem Audiogerät darstellen. In diesem Fall ist das Signal, das durch den Brückenstift fließt, digital und nicht analog.