DirectShow DirectShow 에 대해 필터 그래프의 데이터 플로우 트랜스포트   [목차열람] [주소복사] [슬롯비우기]
트랜스포트
 
Microsoft DirectX 9.0

트랜스포트

필터 그래프내에서 미디어 데이터를 이동시키기 위해서(때문에), DirectShow 필터는 몇개의 사용 가능한 프로토콜의 어느쪽이든을 지원 하고 있을 필요가 있다. 이러한 프로토콜을 "트랜스포트" 라고 부른다. 2 개의 필터를 접속하는 경우, 같은 트랜스포트를 지원 하고 있을 필요가 있다. 같은 트랜스포트를 지원 하고 있지 않는 경우, 필터는 미디어 데이터를 교환할 수 없다. 보통, 트랜스포트에서는 몇개의 핀이 특정의 인터페이스를 지원 하고 있을 필요가 있다. 필터를 접속하는 경우, 1 개의 핀이 다른 핀에 인터페이스를 조회한다.

많은 DirectShow 필터는 미디어 데이터를 메인 메모리내 로 유지해, 핀 접속을 개입시켜 다른 필터에 데이터를 보낸다. 이 타입의 트랜스포트를,"로컬 메모리" 트랜스포트라고 부른다. 로컬 메모리 트랜스포트는 DirectShow 로 가장 일반적인 트랜스포트이지만, 모든 필터가 이 트랜스포트를 사용하는 것은 아니다. 예를 들어, 일부의 필터는 하드웨어 패스로 미디어 데이터를 송신해, 제어 정보를 보내기 위해서(때문에) 마셔 핀을 사용한다. 예를 들어,IOverlay 인터페이스를 참조할것.

DirectShow 에서는, 로컬 메모리 트랜스포트에 대해,"푸쉬" 모델과 "풀" 모델의 2 개의 메카니즘을 정의하고 있다. 푸쉬 모델에서는, 소스 필터가 데이터를 생성해, 다운 스트림의 다음의 필터에 데이터를 보낸다. 그 필터는 수동적으로 데이터를 수신해, 처리해, 한층 더 다운 스트림에 송신한다. 풀 모델에서는, 소스 필터는 파서 필터에 접속된다. 파서 필터가 소스 필터에 데이터를 요구한다. 소스 필터는 데이터를 보내는 것에 의해 요구에 응답한다. 푸쉬 모델에서는 IMemInputPin 인터페이스를 사용해, 프르모델에서는 IAsyncReader 인터페이스를 사용한다.

푸쉬 모델은 풀 모델보다 일반적이다. 따라서, 이 이후의 설명은 푸쉬 모델을 전제로 하고 있다. 이 섹션의 마지막에 있는 「프르모델」에서는,IAsyncReader 인터페이스가 IMemInputPin 와 어떻게 다른지를 설명한다.

↑TOP