Filtri KS

Un filtro è un gruppo di nodi che incapsula un'attività di elaborazione da eseguire nel flusso di dati. I pin fungono da conduits di input e output su un filtro.

Un filtro semplice può contenere un pin sink di dati e un pin dell'origine dati. Il filtro riceve i dati in ingresso sul pin del sink di dati, lo elabora internamente e scrive nel pin dell'origine dati. Nella figura seguente i puntini vengono visualizzati come segmenti di linea pesanti. Internamente, il filtro connette il pin del sink di dati a un'unità di elaborazione interna, un nodo, che a sua volta è connesso al pin dell'origine dati.

diagramma che illustra un semplice filtro ks.

Un altro dispositivo può combinare o dividere i flussi di dati tra i pin. Ad esempio, un mixer audio supporta diversi pin sink di dati. Il mixer li combina in un singolo flusso e scrive tale flusso in un pin dell'origine dati. La figura seguente mostra il flusso di dati.

diagramma che illustra un mixer.

Il grafico descrive la relazione interna tra i pin del filtro. Un filtro più complesso potrebbe incapsulare diversi nodi che trasformano i dati che passano attraverso il filtro.

I filtri specificano connessioni interne tra pin e nodi interni usando il set di proprietà KSPROPSETID_Topology.

La proprietà KSPROPERTY_TOPOLOGY_CONNECTIONS esegue una query su tutte le connessioni tra nodi di un filtro KS. Questa proprietà restituisce una matrice di KSTOPOLOGY_CONNECTION. Ogni struttura KSTOPOLOGY_CONNECTION rappresenta una singola connessione al percorso dati all'interno di un filtro. Nel diagramma mixer precedente, la sequenza di strutture KSTOPOLOGY_CONNECTION può essere la seguente:

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