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

풀 모델

IMemInputPin 인터페이스로, 업 스트림 필터는 송신하는 데이터를 판별해, 데이터를 다운 스트림 필터에 푸쉬 한다. 필터에 따라서는,"풀" 모델 쪽이 적합한. 이 모델에서는, 다운 스트림 필터가 업 스트림 필터에 데이터를 요구한다. 이 경우도, 샘플은, 출력 핀으로부터 입력 핀으로 다운 스트림 방향으로 이동하지만, 다운 스트림 필터가 데이터 플로우를 시작 한다. 이 타입의 접속에서는,IAsyncReader 인터페이스를 사용한다.

풀 모델의 일반적인 용도는 파일의 재생이다. 예를 들어, AVI 재생 그래프에서는,파일 소스 (비동기) 필터는 일반적인 파일 읽기 조작을 실행해, 데이터를 포맷 정보를 가지지 않는 바이트 스트림으로서 송신한다. AVI 스플리터 필터는, AVI 헤더를 읽기, 스트림을 해석해 비디오 샘플과 오디오 샘플로 한다. AVI 스플리터는 비동기 파일 소스 필터에 비해, 필요한 데이터를 특정할 수 있으므로,IMemInputPin 대신에 IAsyncReader 를 사용한다.

출력 핀에 데이터를 요구하기 위해서, 입력 핀은 다음의 몇개의 메서드를 호출한다.

최초의 메서드는 비동기적이어, 복수의 오버랩 한 읽기를 지원 한다. 다른 메서드는 동기적이다.

이론적으로는 임의의 필터로 IAsyncReader 를 지원 할 수 있지만, 현실적으로는 파서 필터에 접속하는 소스 필터용으로 설계되고 있다. 파서는, 푸쉬 모델에서의 소스 필터와 자주(잘) 닮은 동작을 한다. 포즈 상태의 파서는,IAsyncReader 접속으로부터 데이터를 풀 해, 그 데이터를 다운 스트림에 푸쉬 하는 스트리밍 thread를 생성 한다. 출력 핀은 IMemInputPin 를 사용해, 그래프의 나머지의 부분은 표준적인 푸쉬 모델을 사용한다.

↑TOP