Share via


Api-Übersetzung der Kernelstreamingtopologie zu Audiomischer

Die Mixer-API ist eine Reihe von Windows-Multimediafunktionen, die zum Abrufen von Informationen über Audiomischergeräte verwendet werden. Die Mixer-API klassifiziert Audiomischerlinien als Quell- und Zielzeilen. Quellleitungen sind Eingaben in die Audio-Karte (z. B. CD, Mikrofon, Line-In und Wave). Zielleitungen sind Ausgaben aus dem Karte (z. B. Lautsprecher, Kopfhörer, Telefonleitung und Wave-In). Damit eine Quellzeile gültig ist, muss sie über einen eindeutigen Pfad von der Quelle zu einem Ziel verfügen. Eine einzelne Quellzeile kann mehr als einem Ziel zugeordnet werden, aber nicht mehr als ein einzelner Pfad kann eine Quellzeile mit einer Ziellinie verbinden. Weitere Informationen zur Mixer-API finden Sie in der Microsoft Windows SDK-Dokumentation.

Der WDM-Treiber für einen Audioadapter macht eine KS-Filtertopologie verfügbar, die die Datenpfade über die Hardware und die funktionen darstellt, die auf diesen Pfaden verfügbar sind. Der WDMAud-Systemtreiber (in den Dateien Wdmaud.sys und Wdmaud.drv) sollte die KS-Filter-Topologie interpretieren und die entsprechenden Quell- und Zielmischerzeilen generieren, die über die Mixer-API verfügbar gemacht werden. WDMAud verarbeitet auch die Mixer-API-Aufrufe und übersetzt sie in die entsprechenden Eigenschaftenaufrufe für die Filterpins und Knoten, die vom Adaptertreiber verwaltet werden.

Der KMixer-Systemtreiber (Kmixer.sys) und der SWMidi-Systemtreiber (Swmidi.sys) sind integrale Komponenten des Kernel-Audiostapels. KMixer bietet systemweite Audiomischung, Bittiefenkonvertierung, Abtastratekonvertierung und Supermixübersetzung (Channel-to-Speaker Configuration) für PCM-Audiostreams. SWMidi bietet hochwertige Softwaresynthese von MIDI-Streams. Der Systemaudiotreiber SysAudio (Sysaudio.sys; siehe SysAudio-Systemtreiber) kombiniert die Funktionen von KMixer und SWMidi mit den installierten Audioadaptertreibern, um funktionell erweiterte virtuelle Audiogeräte zu bilden.

WDMAud verwaltet die Schnittstelle zwischen dem KS-Teil und dem Legacyteil (siehe WinMM-Systemkomponente) des Audiostapels. WDMAud übersetzt die Pins der sysAudio-virtualisierten Filter in die Legacy-Mischerlinien, die in Anwendungen wie SndVol32 angezeigt werden. Die Übersetzung von der KS-Topologie in Mischerlinien erfolgt wie folgt:

  • Quellpins (KSPIN_DATAFLOW_OUT) in der KS-Topologie werden als Zielmischerlinien (MIXERLINE_COMPONENTTYPE_DST_XXX) verfügbar gemacht.

  • Senkenpins (KSPIN_DATAFLOW_IN) in der KS-Topologie werden als Quellmischerlinien (MIXERLINE_COMPONENTTYPE_SRC_XXX) verfügbar gemacht.

  • WDMAud führt das KS-Filterdiagramm ab dem Quellpin durch, der sich am Endpunkt des Filterdiagramms befindet, und durchläuft das Diagramm in der entgegengesetzten Richtung des Datenflusses, bis eine Senkennadel erreicht ist.

  • Die Eigenschaften, die auf jedem KS-Knoten unterstützt werden, der während des Durchlaufs auftritt, werden als Steuerelemente in der Quellmischerlinie verfügbar gemacht.

In den ersten beiden oben genannten Elementen ist die Zuordnung von KS-Quell- und Senkenpins zu Ziel- und Quellmischerzeilen aufgrund der Unterschiede in der Terminologie möglicherweise verwirrend. In KS wird ein Gerät in einen Filter umschlossen, der Senke(Eingabe)-Pins und Quell-Pins (Ausgabe) aufweist. Die Begriffe "Senke" und "Quelle" beziehen sich nicht auf den Filter, sondern auf die (in der Regel gepufferte) Verbindung zwischen zwei Filtern:

  • Der Quellpin des Upstream-Filters ist die Quelle des Datenstroms, der in die Verbindung wechselt.

  • Der Datenstrom beendet die Verbindung über den Senkennadel des Nachstromfilters.

Im Gegensatz dazu ist die Mischerlinienterminologie gerätezentriert:

  • Eine Quellmischerlinie ist die Quelle eines Datenstroms, der in das Gerät gelangt.

  • Eine Zielmischerlinie ist das Ziel eines Datenstroms, der das Gerät verlässt.

Außerdem ist die KS-Terminologie in der Streamflussrichtung, die sie einem Pin an einem KS-Filter zuweist, etwas inkonsistent. Der Pindeskriptor verwendet einen KSPIN_DATAFLOW Enumerationswert, um die Richtung anzugeben:

  • Ein Stream, der über einen Senkennadel in den Filter gelangt, weist eine Richtung von KSPIN_DATAFLOW_IN auf.

  • Ein Stream, der den Filter über einen Quellnadel beendet, weist eine Richtung von KSPIN_DATAFLOW_OUT auf.

Die Richtungen "in" und "out" sind eindeutig filterzentriert, während die Begriffe "Senke" und "Quelle" verbindungszentriert sind.

Weitere Informationen zum Topologieanalysealgorithmus, der von WDMAud verwendet wird, finden Sie unter WDMAud-Topologieanalyse.

Dieser Abschnitt enthält außerdem Folgendes:

Topologienadeln

Topologieknoten

SysTray und SndVol32

Verfügbarmachen der Filtertopologie