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.
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.
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 }
}