다음을 통해 공유


CBaseStreamControl 클래스

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

cbasestreamcontrol 클래스 계층 구조

이 클래스는 입력 및 출력 핀에 대한 IAMStreamControl 인터페이스를 구현합니다. 필터에서 개별 핀의 시작 및 중지를 제어할 수 있습니다. IAMStreamControl을 지원하는 핀은 이 기본 클래스에서 상속되어야 합니다. 다음은 입력 핀에 대한 일반적인 선언입니다.

class CMyInputPin : public CBaseInputPin, public CBaseStreamControl

IAMStreamControl을 노출하려면 NonDelegatingQueryInteface를 재정의해야 합니다. 자세한 내용은 IUnknown을 구현하는 방법을 참조하세요.

Public 메서드 Description
CBaseStreamControl 생성자 메서드입니다.
~CBaseStreamControl 소멸자 메서드입니다.
CheckStreamState 미디어 샘플을 배달할지 아니면 삭제해야 하는지 여부를 결정합니다.
플러싱 기본 클래스에 핀이 플러시를 시작하거나 중지했음을 알 수 있습니다.
NotifyFilterState 필터의 상태가 변경되면 핀에 알 수 있습니다.
SetFilterGraph 스트림 제어 이벤트에 대한 이벤트 싱크를 지정합니다.
SetSyncSource 현재 참조 클록의 기본 클래스에 알 수 있습니다.
IAMStreamControl 메서드 Description
GetInfo 시작 및 중지 시간을 포함하여 현재 스트림 제어 설정에 대한 정보를 검색합니다.
Startat 데이터 배달을 시작할 시기를 핀에 알릴 수 있습니다.
StopAt 데이터 배달을 중지해야 하는 시기를 핀에 알릴 수 있습니다.

설명

이 클래스에는 그래프를 조인하거나 새 참조 클록을 받는 필터와 같은 다양한 이벤트가 발생할 때 클래스에 알리기 위해 핀 및 소유 필터가 필요합니다. 다음 클래스 메서드를 호출해야 합니다.

클래스는 CBaseStreamControl 필터 그래프의 참조 클록을 사용하여 필터가 제공해야 하는 샘플과 삭제해야 하는 샘플을 결정합니다. 핀의 IMemInputPin::Receive 메서드에서 들어오는 미디어 샘플에 대한 포인터를 사용하여 CBaseStreamControl::CheckStreamState 메서드를 호출합니다. 메서드가 STREAM_FLOWING 값을 반환하는 경우 샘플 다운스트림을 제공합니다. 그렇지 않으면 삭제합니다.

요구 사항

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