다음을 통해 공유


CBaseOutputPin 클래스

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

cbaseoutputpin 클래스 계층 구조

클래스는 CBaseOutputPin 출력 핀을 구현하는 추상 기본 클래스입니다.

이 클래스는 CBasePin에서 파생됩니다. 다음과 같은 측면에서 CBasePin 과 다릅니다.

  • IMemInputPin 인터페이스를 지원하는 입력 핀에만 연결됩니다.
  • IMemAllocator 인터페이스를 통해 로컬 메모리 전송을 지원합니다.
  • 스트림 끝, 플러시 및 새 세그먼트 알림을 거부합니다. (출력 핀으로 보내면 안 됩니다.)
  • 샘플 다운스트림을 제공하는 메서드를 제공합니다.

핀이 연결되면 입력 핀에서 메모리 할당자를 요청합니다. 실패하면 새 할당자 개체가 만들어집니다. 출력 핀은 할당자 속성을 설정해야 합니다. 이 작업은 순수 가상 메서드 CBaseOutputPin::D ecideBufferSize를 통해 수행됩니다. 파생 클래스에서 이 메서드를 재정의합니다. 입력 핀에 버퍼 요구 사항이 있으면 DecideBufferSize 메서드에 전달됩니다.

CBaseOutputPin::GetDeliveryBuffer 메서드를 호출하여 빈 미디어 샘플을 가져옵니다. CBaseOutputPin::D eliver 메서드를 호출하여 샘플을 다운스트림으로 배달합니다.

파생 클래스는 고정 연결 중에 미디어 형식의 유효성을 검사하기 위해 순수 가상 CBasePin::CheckMediaType 메서드를 재정의해야 합니다.

보호된 멤버 변수 Description
m_pAllocator 메모리 할당자에 대한 포인터입니다.
m_pInputPin 이 핀에 연결된 입력 핀에 대한 포인터입니다.
Public 메서드 Description
CBaseOutputPin 생성자 메서드입니다.
CompleteConnect 입력 핀에 대한 연결을 완료합니다. 가상.
DecideAllocator 메모리 할당자를 선택합니다. 가상.
GetDeliveryBuffer 빈 버퍼가 포함된 미디어 샘플을 검색합니다. 가상.
제공 미디어 샘플을 연결된 입력 핀에 전달합니다. 가상.
InitAllocator 메모리 할당자를 만듭니다. 가상.
CheckConnect 핀 연결이 적합한지 여부를 결정합니다.
BreakConnect 연결에서 핀을 해제합니다.
Active 필터가 현재 활성 상태임을 핀에 알 수 있습니다.
비활성 필터가 더 이상 활성화되지 않음을 핀에 알 수 있습니다.
DeliverEndOfStream 연결된 입력 핀에 스트림 종료 알림을 전달합니다. 가상.
DeliverBeginFlush 연결된 입력 핀을 요청하여 플러시 작업을 시작합니다. 가상.
DeliverEndFlush 연결된 입력 핀을 요청하여 플러시 작업을 종료합니다. 가상.
DeliverNewSegment 연결된 입력 핀에 새 세그먼트 알림을 전달합니다. 가상.
순수 가상 메서드 Description
DecideBufferSize 버퍼 요구 사항을 설정합니다.
IPin 메서드 Description
BeginFlush 플러시 작업을 시작합니다.
EndFlush 플러시 작업을 종료합니다.
EndOfStream 핀에 추가 데이터가 필요하지 않음을 알 수 있습니다.

요구 사항

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