본문 바로가기

About Programing/07. Direct Show

[DirectShow 레퍼런스] IMediaFilter 인터페이스

1. 이름 : IMediaFilter 
2. 설명 : 시간에 기반한 데이터를 제공하는 모든 멀티미디어 콤포넌트들이 제공해야 하는 인터페이스.
           콤포넌트의 실행 상태 제어와 상태를 다른 객체와 동기화 시키는 방법을 제공하기 위해 사용함.
3. 상속 : IPersist 
4. 구현 : 모든 filter에서 구현되어야 함. CBaseFilter를 사용해서 구현 가능 
5. 사용 : 보통은 IMediaFilter를 상속한 IBaseFilter를 많이 사용하기 때문에, 직접 어플리케이션에서 사용되는
           경우는 거의 없음. 필터그래프 매니저가 사용하며, 플러그인 배급자에 의해 필터그래프 매니저가
           노출시킨 IMediaFilter의 메소드들이 호출되는 경우가 있음.
 
6. 메소드 : 
- IUnknown 메소드들 : COM객체니까 당연히 지원해야 함 
- IMediaFilter 메소드들 : 
  * Stop : 필터를 정지상태로 전이시킴 
  * Pause : 필터를 일시중지 상태로 전이시킴 
  * Run : 필터를 플레이 상태로 전이시킴 
  * GetState : 현재 상태를 반환 
  * SetSyncSource : 동기화를 위한 클럭을 지정 
  * GetSyncSource : 필터에 지정되어 있는 클럭을 반환