KS のフィルター
フィルターは、データ ストリームで実行される処理タスクをカプセル化するノードのグループです。 ピン はフィルタの入力および出力パイプとして機能します。
単純なフィルターには、1 つのデータ シンク ピンと 1 つのデータ ソース ピンを含める場合があります。 フィルターは、データ シンク ピンの受信データを受信し、内部的に処理して、データ ソース ピンに書き込みます。 次の図では、ピンは重いライン セグメントとして示されています。 内部的には、フィルターによってデータ シンク ピンが内部処理ユニット、ノードに接続され、データ ソース ピンに接続されます。
別のデバイスが、ピン間でデータ フローを結合または分割する場合があります。 たとえば、オーディオ ミキサーでは複数のデータ シンク ピンがサポートされています。 ミキサーはそれらを 1 つのストリームに結合し、そのストリームをデータ ソース ピンに書き込みます。 次の図はデータ フローを示します。
グラフには、フィルターのピン間の内部関係が記述されています。 より複雑なフィルターでは、フィルターを通過するデータを変換する複数のノードがカプセル化される場合があります。
フィルターは、KSPROPSETID_Topology プロパティ セットを使用して、ピンと内部ノード間の内部接続を指定します。
KSPROPERTY_TOPOLOGY_CONNECTIONS プロパティは、KS フィルターのノード間のすべての接続に対してクエリを実行します。 このプロパティは、KSTOPOLOGY_CONNECTION の配列を返します。 各 KSTOPOLOGY_CONNECTION 構造体は、フィルター内の単一のデータ パス接続を表します。 上記のミキサー図では、KSTOPOLOGY_CONNECTION 構造のシーケンスは次のようになります。
// FromNode, FromNodePin, ToNode, ToNodePin,
{
{ KSFILTER_NODE, 0, 0, 0 },
{ 0, 1, KSFILTER_NODE, 1 }
}