Freigeben über


KS-Filter

Ein Filter ist eine Gruppe von Knoten, die eine Verarbeitungsaufgabe kapselt, die für den Datenstrom ausgeführt werden soll. Pins dienen als Eingabe- und Ausgabeleitungen für einen Filter.

Ein einfacher Filter kann einen Datensenkennadel und einen Datenquellenpin enthalten. Der Filter empfängt eingehende Daten auf dem Datensenkennadel, verarbeitet sie intern und schreibt in den Datenquellenpin. In der folgenden Abbildung werden die Pins als schwere Liniensegmente dargestellt. Intern verbindet der Filter den Pin der Datensenke mit einer internen Verarbeitungseinheit, einem Knoten, der wiederum mit dem Datenquellenpin verbunden ist.

Diagramm, das einen einfachen ks-Filter veranschaulicht.

Ein anderes Gerät kann Datenflüsse zwischen Pins kombinieren oder aufteilen. Ein Audiomischer unterstützt beispielsweise mehrere Datensenkennadeln. Der Mixer kombiniert sie zu einem einzelnen Stream und schreibt diesen Stream in einen Datenquellennadel. Die folgende Abbildung zeigt den Datenfluss.

Diagramm, das einen Mischer veranschaulicht.

Das Diagramm beschreibt die interne Beziehung zwischen den Pins des Filters. Ein komplizierterer Filter kann mehrere Knoten kapseln, die Daten transformieren, die durch den Filter fließen.

Filter geben interne Verbindungen zwischen Pins und internen Knoten mithilfe des KSPROPSETID_Topology-Eigenschaftssatzes an.

Die KSPROPERTY_TOPOLOGY_CONNECTIONS-Eigenschaft fragt alle Verbindungen zwischen Knoten eines KS-Filters ab. Diese Eigenschaft gibt ein Array von KSTOPOLOGY_CONNECTION zurück. Jede KSTOPOLOGY_CONNECTION-Struktur stellt eine einzelne Datenpfadverbindung innerhalb eines Filters dar. Im obigen Mischerdiagramm könnte die Sequenz der KSTOPOLOGY_CONNECTION Strukturen wie folgt aussehen:

//    FromNode,       FromNodePin,     ToNode,        ToNodePin,
{
 {  KSFILTER_NODE,        0,            0,               0     },
 {       0,               1,       KSFILTER_NODE,        1     }
}