2010년 4월 24일 토요일

DirectShow 레퍼런스 모음

IMediaFilter 인터페이스

 

이름 : 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 : 벤더가 제공하는 정보를 얻음


출처- http://mrwebi.tistory.com/30

댓글 없음:

댓글 쓰기