DirectShow DirectShow 레퍼런스 DirectShow base class 필터 base class의 개요 [목차열람] [주소복사] [슬롯비우기] |
Microsoft DirectX 9.0 |
여기에서는, 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. IPin 및 IQualityControl 인터페이스를 처리 한다. |
CBaseInputPin | 로컬 메모리 전송을 사용하는 입력 핀의 base class. IMemInputPin 인터페이스를 처리 한다. 이 클래스는 CBasePin 로부터 파생한다. |
CBaseOutputPin | IMemInputPin 접속을 사용하는 출력 핀의 base class. 이 클래스는 CBasePin 로부터 파생한다. |
이하의 클래스는, 보다 특수한 타입의 필터를 생성 하는 경우에 편리하다.
클래스 | 설명 |
CSource | 소스 필터의 base class. 이 클래스는 푸쉬 소스의 생성용으로 설계되고 있다. 파일 리더등의 풀 소스에는 적합하지 않는다. 이 클래스의 출력 핀을 생성 하려면 ,CSourceStream 클래스를 사용하는 것. |
CTransformFilter | 변환 필터의 base class. 이 클래스는 데이터에 대해서 복사를 실행한다. 이 클래스의 핀은 CTransformInputPin 및 CTransformOutputPin 이다. |
CTransInPlaceFilter | 데이터를 복사 하지 않는 변환 필터의 base class. 이 클래스는, 입력 데이터를 다운 스트림에 건네주기 전에, 입력 데이터에 대해서 직접 데이터 처리를 실행한다. 이 클래스의 핀은 CTransInPlaceInputPin 및 CTransInPlaceOutputPin 이다. |
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 구조체를 조작하는 헬퍼-개체. |