DirectShow DirectShow 에 대해 필터 그래프와 그 구성 요소 DirectShow 필터에 대해   [목차열람] [주소복사] [슬롯비우기]
DirectShow 필터에 대해
 
Microsoft DirectX 9.0

DirectShow 필터에 대해

DirectShow 에서는 모듈화된 아키텍처를 사용하고 있어 각 단계의 처리는 필터로 불리는 COM 개체에 의해 행해진다. DirectShow 는 애플리케이션으로 사용할 수 있는 표준 필터를 제공하고 있어, 또 개발자는 독자적인 커스텀 필터를 생성 해 DirectShow 의 기능을 확장할 수도 있다. 예로서 여기에서는 AVI 비디오 파일을 재생하기 위해서 필요한 순서와 각 순서를 실행하는 필터를 나타낸다.

이러한 필터를 다음의 그림에 나타낸다.

압축 비디오로 AVI 파일을 재생하는 필터 그래프

이 그림에 나타나고 있도록(듯이), 각 필터는 1 개 또는 복수의 다른 필터에 접속되고 있다. 이 접속 포인트도,"핀" 으로 불리는 COM 개체이다. 필터는, 핀을 사용해, 데이터를 있는 필터로부터 다음의 필터에 이동시킨다. 그림안의 화살표는, 데이터가 흐를 방향을 나타낸다. DirectShow 에서는, 접속된 필터의 집합은 "필터 그래프" 라고 부른다.

필터에는, 실행·정지·포즈라고 하는 3 개 상태가 있다. 필터가 실행중의 경우, 필터는 미디어 데이터를 처리한다. 필터가 정지하고 있는 경우, 데이터의 처리를 정지한다. 포즈 상태는 실행전에 데이터의 머리 방편을 하기 위해서 사용한다. 이 개념의 더 자세한 정보는, 「필터 그래프의 데이터 플로우」를 참조할것. 매우 예외적인 경우를 제외해, 상태의 변화는 필터 그래프 전체로 조정된다. 즉, 그래프내의 모든 필터는 동시에 상태가 바뀐다. 따라서, 필터 그래프 전체에도 실행·정지·포즈 상태가 있다고 말해진다.

필터는 몇개의 큰 카테고리로 분류할 수 있다.

이러한 카테고리의 구별은 절대적인 것은 아니다. 예를 들어, ASF 리더 필터는 소스 필터와 스플리터 필터의 양쪽 모두의 기능을 갖는다.

모든 DirectShow 필터는 IBaseFilter 인터페이스를 공개해, 모든 핀은 IPin 인터페이스를 공개한다. 또, DirectShow 에서는 보다 구체적인 기능을 지원 하기 위해서, 이 그 밖에도 많은 인터페이스를 정의하고 있다.

참조

↑TOP