KS のフィルター

フィルターは、データ ストリームで実行される処理タスクをカプセル化するノードのグループです。 ピン はフィルタの入力および出力パイプとして機能します。

単純なフィルターには、1 つのデータ シンク ピンと 1 つのデータ ソース ピンを含める場合があります。 フィルターは、データ シンク ピンの受信データを受信し、内部的に処理して、データ ソース ピンに書き込みます。 次の図では、ピンは重いライン セグメントとして示されています。 内部的には、フィルターによってデータ シンク ピンが内部処理ユニット、ノードに接続され、データ ソース ピンに接続されます。

diagram illustrating a simple ks filter.

別のデバイスが、ピン間でデータ フローを結合または分割する場合があります。 たとえば、オーディオ ミキサーでは複数のデータ シンク ピンがサポートされています。 ミキサーはそれらを 1 つのストリームに結合し、そのストリームをデータ ソース ピンに書き込みます。 次の図はデータ フローを示します。

diagram illustrating a mixer.

グラフには、フィルターのピン間の内部関係が記述されています。 より複雑なフィルターでは、フィルターを通過するデータを変換する複数のノードがカプセル化される場合があります。

フィルターは、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     }
}