다음을 통해 공유


CBaseFilter 클래스

[이 페이지와 연결된 기능인 DirectShow는 레거시 기능입니다. MediaPlayer, IMFMediaEngine 및 Media Foundation의 오디오/비디오 캡처로 대체되었습니다. 이러한 기능은 Windows 10 및 Windows 11 최적화되었습니다. 가능한 경우 새 코드가 DirectShow 대신 Media Foundation에서 MediaPlayer, IMFMediaEngine오디오/비디오 캡처를 사용하는 것이 좋습니다. 가능한 경우 레거시 API를 사용하는 기존 코드를 다시 작성하여 새 API를 사용하도록 제안합니다.]

cbasefilter 클래스 계층 구조

클래스는 CBaseFilter 필터를 구현하기 위한 추상 클래스입니다. 이 클래스를 사용하여 필터를 구현하려면 적어도 다음 단계를 수행해야 합니다.

  • 에서 새 클래스를 CBaseFilter파생합니다.
  • 필터의 핀을 정의하는 멤버 변수를 포함합니다. 핀은 CBasePin 클래스에서 상속되어야 합니다.
  • 필터에서 핀을 검색하는 순수 가상 메서드 CBaseFilter::GetPin을 재정의합니다.
  • 핀 수를 검색하는 순수 가상 메서드 CBaseFilter::GetPinCount를 재정의합니다.
  • 미디어 샘플을 생성, 처리 또는 렌더링하는 메서드를 제공합니다.

CSource, CBaseRendererCTransformFilter를 비롯한 여러 기본 클래스가 에서 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
등록 레지스트리에 필터를 추가합니다.
등록 취소 레지스트리에서 필터를 제거합니다.

요구 사항

요구 사항
헤더
Amfilter.h(Streams.h 포함)
라이브러리
Strmbase.lib(소매 빌드);
Strmbasd.lib(디버그 빌드)