CBaseOutputPin 클래스
[이 페이지와 연결된 기능인 DirectShow는 레거시 기능입니다. MediaPlayer, IMFMediaEngine 및 Media Foundation의 오디오/비디오 캡처로 대체되었습니다. 이러한 기능은 Windows 10 및 Windows 11 최적화되었습니다. 가능한 경우 새 코드에서 DirectShow 대신 MediaPlayer, IMFMediaEngine 및 오디오/비디오 캡처를 사용하는 것이 좋습니다. 가능한 경우 레거시 API를 사용하는 기존 코드를 다시 작성하여 새 API를 사용하도록 제안합니다.]
클래스는 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 | 핀에 추가 데이터가 필요하지 않음을 알 수 있습니다. |
요구 사항
요구 사항 | 값 |
---|---|
헤더 |
|
라이브러리 |
|