KS 필터

필터는 데이터 스트림에서 수행할 처리 작업을 캡슐화하는 노드 그룹입니다. 핀은 필터의 입력 및 출력 도관 역할을 합니다.

간단한 필터에는 하나의 데이터 싱크 핀과 하나의 데이터 원본 핀이 포함될 수 있습니다. 필터는 데이터 싱크 핀에서 들어오는 데이터를 수신하고 내부적으로 처리하며 데이터 원본 핀에 씁니다. 다음 그림에서 핀은 무거운 선 세그먼트로 표시됩니다. 내부적으로 필터는 데이터 싱크 핀을 내부 처리 장치인 노드에 연결하여 데이터 원본 핀에 연결합니다.

간단한 ks 필터를 보여 주는 다이어그램

다른 디바이스는 핀 간에 데이터 흐름을 결합하거나 분할할 수 있습니다. 예를 들어 오디오 믹서는 여러 데이터 싱크 핀을 지원합니다. 믹서는 이를 단일 스트림으로 결합하고 해당 스트림을 데이터 원본 핀에 씁니다. 다음 그림에서는 데이터 흐름을 보여 줍니다.

믹서가 표시된 다이어그램

그래프는 필터의 핀 간의 내부 관계를 설명합니다. 더 복잡한 필터는 필터를 통해 흐르는 데이터를 변환하는 여러 노드를 캡슐화할 수 있습니다.

필터는 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     }
}