CBaseFilter 클래스
[이 페이지와 연결된 기능인 DirectShow는 레거시 기능입니다. MediaPlayer, IMFMediaEngine 및 Media Foundation의 오디오/비디오 캡처로 대체되었습니다. 이러한 기능은 Windows 10 및 Windows 11 최적화되었습니다. 가능한 경우 새 코드가 DirectShow 대신 Media Foundation에서 MediaPlayer, IMFMediaEngine 및 오디오/비디오 캡처를 사용하는 것이 좋습니다. 가능한 경우 레거시 API를 사용하는 기존 코드를 다시 작성하여 새 API를 사용하도록 제안합니다.]
클래스는 CBaseFilter
필터를 구현하기 위한 추상 클래스입니다. 이 클래스를 사용하여 필터를 구현하려면 적어도 다음 단계를 수행해야 합니다.
- 에서 새 클래스를
CBaseFilter
파생합니다. - 필터의 핀을 정의하는 멤버 변수를 포함합니다. 핀은 CBasePin 클래스에서 상속되어야 합니다.
- 필터에서 핀을 검색하는 순수 가상 메서드 CBaseFilter::GetPin을 재정의합니다.
- 핀 수를 검색하는 순수 가상 메서드 CBaseFilter::GetPinCount를 재정의합니다.
- 미디어 샘플을 생성, 처리 또는 렌더링하는 메서드를 제공합니다.
CSource, CBaseRenderer 및 CTransformFilter를 비롯한 여러 기본 클래스가 에서 CBaseFilter
파생됩니다. 일반적으로 직접 사용하는 대신 이러한 특수 클래스 중 하나를 사용하여 CBaseFilter
필터를 구현하는 것이 더 쉽습니다.
보호된 멤버 변수 | Description |
---|---|
m_State | 필터의 현재 상태입니다. |
m_pClock | 필터의 참조 클록에 대한 포인터입니다. |
m_tStart | 스트림 시간 0에 해당하는 참조 시간입니다. |
m_clsid | 필터의 CLSID(클래스 식별자)입니다. |
m_pLock | 상태 변경 내용을 serialize하는 데 사용되는 중요한 섹션에 대한 포인터입니다. |
m_pName | 필터 이름입니다. |
m_pGraph | 필터 그래프 관리자에 대한 포인터입니다. |
m_pSink | 필터 그래프 관리자의 IMediaEventSink 인터페이스에 대한 포인터입니다. |
m_PinVersion | 이 필터의 핀 집합의 현재 버전입니다. |
Public 메서드 | Description |
CBaseFilter | 생성자 메서드입니다. |
~ CBaseFilter | 소멸자 메서드입니다. |
StreamTime | 현재 스트림 시간을 검색합니다. 가상. |
IsActive | 필터가 현재 활성 상태인지(실행 중인지 일시 중지되었는지) 확인합니다. |
IsStopped | 필터가 현재 중지되었는지 여부를 확인합니다. |
NotifyEvent | 필터 그래프 관리자에 이벤트 알림을 보냅니다. |
GetFilterGraph | 필터 그래프 관리자에 대한 포인터를 검색합니다. |
ReconnectPin | 지정된 미디어 형식을 사용하여 기존 핀 연결을 끊고 동일한 핀에 다시 연결합니다. |
GetPinVersion | 이 필터의 핀 집합에 대한 버전 번호를 검색합니다. 가상. |
IncrementPinVersion | 핀 집합의 버전 번호를 증분합니다. |
GetSetupData | 필터에 대한 등록 데이터를 검색합니다. 가상. |
순수 가상 메서드 | Description |
GetPinCount | 핀 수를 검색합니다. |
GetPin | 핀을 검색합니다. |
IPersist 메서드 | Description |
GetClassID | 클래스 식별자를 검색합니다. |
IMediaFilter 메서드 | Description |
GetState | 필터의 상태(실행 중, 중지됨 또는 일시 중지됨)를 검색합니다. |
SetSyncSource | 필터에 대한 참조 클록을 설정합니다. |
GetSyncSource | 필터에서 사용 중인 참조 클록을 검색합니다. |
Stop | 필터를 중지합니다. |
일시 중지 | 필터를 일시 중지합니다. |
실행 | 필터를 실행합니다. |
IBaseFilter 메서드 | Description |
EnumPins | 이 필터의 핀을 열거합니다. |
FindPin | 지정된 식별자를 사용하여 핀을 검색합니다. |
QueryFilterInfo | 필터에 대한 정보를 검색합니다. |
JoinFilterGraph | 필터가 필터 그래프에 조인되거나 남아 있음을 필터에 알 수 있습니다. |
QueryVendorInfo | 공급업체 정보가 포함된 문자열을 검색합니다. |
IAMovieSetup 메서드 | Description |
등록 | 레지스트리에 필터를 추가합니다. |
등록 취소 | 레지스트리에서 필터를 제거합니다. |
요구 사항
요구 사항 | 값 |
---|---|
헤더 |
|
라이브러리 |
|