DirectShow DirectShow 레퍼런스 DirectShow base class 필터 base class의 개요   [목차열람] [주소복사] [슬롯비우기]
필터 base class의 개요
 
Microsoft DirectX 9.0

필터 base class의 개요

여기에서는, Microsoft DirectShow base class 라이브러리에 도착해 설명한다. 이 라이브러리는 필터 개발자용이지만, 일부의 헬퍼-클래스 및 디버그 유틸리티는 애플리케이션 생성자에 있어서도 편리하다. 다만, 이 base class 라이브러리는 DirectShow 프로그래밍에 필수는 아니다.

이하의 섹션에서는 라이브러리의 가장 중요한 base class에 대해 개요를 설명한다.

COM 개체 클래스

이하의 클래스는 COM 개체의 생성을 지원 한다.

클래스 설명
CBaseObject 베이스 개체 클래스.
CUnknown IUnknown 인터페이스를 처리 한다.

DirectShow 클래스의 대부분은 CBaseObject 로부터 파생한다. 이 클래스는, 실행시에 DLL 내의 모든 액티브한 개체의 수를 보관 유지해 디버그를 지원한다. 디버그 빌드에서는, DLL 는 개체 카운트가 제로보다 클 때에 언로드되는 경우에 Assert 한다. 이것에 의해, 참조 카운트의 문제가 원인으로 일어나는 누수의 추적이 용이하게 된다.

COM 인터페이스를 지원 하는 모든 base class은,CBaseObject 를 계승하는 CUnknown 로부터 파생한다. CUnknown 클래스는 참조 카운트,QueryInterface, 및 집성을 지원 한다. 더 자세한 정보는, 「IUnknown 의 처리 방법」을 참조할것.

필터 클래스와 핑크 라스

이하의 클래스는 DirectShow 필터 개체 및 핀 개체의 생성을 지원 한다.

클래스 설명
CBaseFilter 필터의 base class. IBaseFilter 인터페이스를 처리 한다.
CBasePin 핀의 base class. IPinIQualityControl 인터페이스를 처리 한다.
CBaseInputPin 로컬 메모리 전송을 사용하는 입력 핀의 base class. IMemInputPin 인터페이스를 처리 한다. 이 클래스는 CBasePin 로부터 파생한다.
CBaseOutputPin IMemInputPin 접속을 사용하는 출력 핀의 base class. 이 클래스는 CBasePin 로부터 파생한다.

이하의 클래스는, 보다 특수한 타입의 필터를 생성 하는 경우에 편리하다.

클래스 설명
CSource 소스 필터의 base class. 이 클래스는 푸쉬 소스의 생성용으로 설계되고 있다. 파일 리더등의 풀 소스에는 적합하지 않는다. 이 클래스의 출력 핀을 생성 하려면 ,CSourceStream 클래스를 사용하는 것.
CTransformFilter 변환 필터의 base class. 이 클래스는 데이터에 대해서 복사를 실행한다. 이 클래스의 핀은 CTransformInputPinCTransformOutputPin 이다.
CTransInPlaceFilter 데이터를 복사 하지 않는 변환 필터의 base class. 이 클래스는, 입력 데이터를 다운 스트림에 건네주기 전에, 입력 데이터에 대해서 직접 데이터 처리를 실행한다. 이 클래스의 핀은 CTransInPlaceInputPinCTransInPlaceOutputPin 이다.
CVideoTransformFilter 비디오 변환 필터의 base class. 이 클래스는 CTransformFilter 로부터 파생해, 품질 컨트롤에 대한 지원을 추가한다.
CBaseRenderer 렌더러 필터의 base class. 이 클래스의 입력 핀은 CRendererInputPin 이다.
CBaseVideoRenderer 비디오 렌더러의 base class. 이 클래스는 CBaseRenderer 로부터 파생한다.

이러한 클래스를 사용하려면 , 독자적인 클래스를 파생시켜, 독자적인 필터 고유의 기능을 지원 하는 코드를 쓸 필요가 있다. base class가 특수하다(정도)만큼, 파생시킨 클래스에서 쓰는 코드의 양은 적어도 된다.

헬퍼-개체

이하의 클래스는 필터 및 핀이 사용하는 헬퍼-개체를 처리 한다. 이러한 클래스의 대부분은 새로운 클래스를 파생시키는 일 없이 사용할 수 있다.

클래스 설명
CPullPin 파서 필터에 대한 입력 핀의 헬퍼-개체. 풀 소스와의 IAsyncReader 접속을 지원 한다.
COutputQueue 워커 thread로 송신 대기 샘플을 큐에 넣는 출력 핀의 헬퍼-개체.
CSourceSeeking 1 개의 출력 핀만을 가지는 소스 필터로, 시크를 처리 하는 헬퍼-개체. 이 클래스는 파서등의 복수의 핀을 가지는 필터용으로는 설계되지 않다.
CEnumPins 필터 위에의 핀을 열거하는 열거자 개체. IEnumPins 인터페이스를 처리 한다.
CEnumMediaTypes 핀 위에의 우선 미디어 타입을 열거하는 열거자 개체. IEnumMediaTypes 인터페이스를 처리 한다.
CMemAllocator 메모리 할당자 개체. IMemAllocator 인터페이스를 처리 한다.
CMediaSample 미디어 샘플 개체. IMediaSample2 인터페이스를 처리 한다.
CBaseReferenceClock 기준 클럭의 base class. IReferenceClock 인터페이스를 처리 한다.
CMediaType AM_MEDIA_TYPE 구조체를 조작하는 헬퍼-개체.

↑TOP