이름 : IMediaFilter 설명 : 시간에 기반한 데이터를 제공하는 모든 멀티미디어 콤포넌트들이 제공해야 하는 인터페이스. 콤포넌트의 실행 상태 제어와 상태를 다른 객체와 동기화 시키는 방법을 제공하기 위해 사용함 상속 : IPersist 구현 : 모든 filter에서 구현되어야 함. CBaseFilter를 사용해서 구현 가능 사용 : 보통은 IMediaFilter를 상속한 IBaseFilter를 많이 사용하기 때문에, 직접 어플리케이션에서 사용되는 경우는 거의 없음. 필터그래프 매니저가 사용하며, 플러그인 배급자에 의해 필터그래프 매니저가 노출시킨 IMediaFilter의 메소드들이 호출되는 경우가 있음.
메소드 : - IUnknown 메소드들 : COM객체니까 당연히 지원해야 함 - IMediaFilter 메소드들 : * Stop : 필터를 정지상태로 전이시킴 * Pause : 필터를 일시중지 상태로 전이시킴 * Run : 필터를 플레이 상태로 전이시킴 * GetState : 현재 상태를 반환 * SetSyncSource : 동기화를 위한 클럭을 지정 * GetSyncSource : 필터에 지정되어 있는 클럭을 반환 |
IBaseFilter Interface
이름 : IBaseFilter 설명 : DirectShow의 모든 필터가 필수적으로 노출해야 하는 인터페이스이다. 상속 : IMediaFilter 구현 : 모든 DirectShow필터는 이 인터페이스를 구현해야 함. CBaseFilter클래스를 사용해 구현할 수 있음 사용 : 필터그래프 매니저가 일반적으로 사용. 어플리케이션은 핀이나 벤더관련 정보를 얻는데 사용할 수 있음. 메소드 :
- IUnknown 메소드들 : COM객체니까 당연히 지원해야 함 - IMediaFilter 메소드들 : IMediaFilter메소드를 살펴볼 것 - IBaseFilter에서 선언된 메소드들 * EnumPins : 필터가 제공하는 핀들을 나열 * FindPin : 특정 ID에 해당하는 핀을 찾음 * QueryFilterInfo : 필터 정보를 얻음 * JoinFilterGraph : 필터 그래프에 연결된 경우 이를 필터에 알려줌 * QueryVendorInfo : 벤더가 제공하는 정보를 얻음 |
댓글 없음:
댓글 쓰기