DirectShow DirectShow 레퍼런스 DirectShow base class base class 레퍼런스 CBaseStreamControl   [목차열람] [주소복사] [슬롯비우기]
CBaseStreamControl 클래스
 
Microsoft DirectX 9.0

CBaseStreamControl 클래스

CBaseStreamControl 의 접속 처리

이 클래스는, 입력 핀과 출력 핀의 양쪽 모두에 대해,IAMStreamControl 인터페이스를 처리 한다. 이 클래스에 의해, 필터 위에의 각각의 핀의 시작과 종료를 제어할 수 있다. IAMStreamControl 를 지원 하는 핀은, 이 base class로부터 계승할 필요가 있다. 입력 핀의 표준적인 선언을 다음에 나타낸다.

class CMyInputPin : public CBaseInputPin, public CBaseStreamControl

NonDelegatingQueryInteface 를 오버라이드(override) 해 IAMStreamControl 를 공개할 필요가 있다. 더 자세한 정보는, 「IUnknown 의 처리 방법」을 참조할것.

이 클래스에는, 필터가 그래프에 참가하거나 새로운 기준 클럭을 받는다고 하는 각종의 이벤트가 발생했을 때에, 그것을 클래스에 통지하는 핀 및 오너 필터가 필요하다. 다음의 클래스 메서드를 호출할 필요가 있다.

CBaseStreamControl 클래스는 필터 그래프의 기준 클럭을 사용해, 필터가 전달해야 할 샘플과 파기해야 할 샘플을 판별한다. 핀의 IMemInputPin::Receive 메서드로, 수신 미디어 샘플의 포인터를 지정해 CBaseStreamControl::CheckStreamState 메서드를 호출한다. 메서드가 값 STREAM_FLOWING 를 돌려주었을 경우는, 샘플을 다운 스트림에 전달한다. 그 이외의 경우는, 샘플을 파기한다.

요건

헤더 : Strmctl.h 로 선언해, Streams.h 를 인클루드 한다.

라이브러리 : Strmbase.lib (리테일 빌드) 또는 Strmbasd.lib (디버그 빌드).

퍼블릭 메서드

메서드 설명
CBaseStreamControl 생성자 메서드.
~CBaseStreamControl 소멸자 메서드.
CheckStreamState 미디어 샘플을 전달하는지, 파기할까를 판단한다.
Flushing 핀이 플래시를 시작 한 것, 또는 정지한 것을 base class에 통지한다.
NotifyFilterState 필터 상태가 변화했을 때에 핀에 통지한다.
SetFilterGraph 스트림 컨트롤 이벤트의 이벤트 싱크를 지정한다.
SetSyncSource 현재의 기준 클럭을 base class에 통지한다.

IAMStreamControl 메서드

메서드 설명
GetInfo 시작 타임과 종료 타임을 포함한, 현재의 스트림 컨트롤 설정에 관한 정보를 얻어온다.
StartAt 데이터 전달의 시작 타임을 핀에 통지한다.
StopAt 데이터 전달의 정지 타임을 핀에 통지한다.

↑TOP