CPullPin 클래스
[이 페이지와 연결된 기능인 DirectShow는 레거시 기능입니다. MediaPlayer, IMFMediaEngine 및 Media Foundation의 오디오/비디오 캡처로 대체되었습니다. 이러한 기능은 Windows 10 및 Windows 11 최적화되었습니다. 가능한 경우 새 코드에서 DirectShow 대신 MediaPlayer, IMFMediaEngine 및 오디오/비디오 캡처를 사용하는 것이 좋습니다. 가능한 경우 레거시 API를 사용하는 기존 코드를 다시 작성하여 새 API를 사용하도록 제안합니다.]
클래스는 CPullPin
IAsyncReader 인터페이스를 통해 데이터를 끌어오는 입력 핀을 지원합니다. 끌어오기 모델을 사용하여 업스트림 필터에서 데이터를 요청하는 필터를 구현하는 경우 이 클래스를 사용합니다. 자세한 내용은 필터 그래프 및 끌어오기 모델의 Data Flow 참조하세요.
이 클래스는 CBasePin 에서 파생되거나 IPin 인터페이스를 구현하지 않으며 일부 메서드 이름은 IPin과 충돌하므로 핀 내에서 도우미 개체로 사용하는 것이 가장 좋습니다. 이 클래스를 사용하려면 다음을 수행합니다.
- 에서
CPullPin
도우미 클래스를 파생하고 CBasePin에서 입력 핀 클래스를 파생합니다. 개체의CPullPin
instance pin 클래스의 멤버 변수로 선언합니다. - CBasePin::CheckConnect 메서드를 재정의하여 CPullPin::Connect를 호출합니다. 이 메서드는 IAsyncReader에 대한 다른 핀을 쿼리합니다.
- CBasePin::BreakConnect 메서드를 재정의하여 CPullPin::D isconnect를 호출합니다.
- CBasePin::Active 메서드를 재정의하여 CPullPin::Active를 호출합니다. 이 메서드는 업스트림 필터에서 샘플을 가져오는 작업자 스레드를 시작합니다. 핀이 연결되면 작업자 스레드가 비동기 또는 동기 읽기 요청을 수행할지 여부를 지정할 수 있습니다.
- CBasePin::Inactive 메서드를 재정의하여 CPullPin::Inactive를 호출합니다. 이 메서드는 작업자 스레드를 종료합니다.
- 순수 가상 CPullPin::Receive 메서드를 구현하여 들어오는 샘플을 처리하고 다운스트림으로 배달합니다.
- 중지 및 시작 위치를 설정하거나 스트림을 찾으려면 CPullPin::Seek 메서드를 호출합니다. 이 메서드는 작업자 스레드를 일시 중지하고 필터 그래프를 플러시합니다.
- 해당 메서드에 대한 설명에 설명된 대로 순수 가상 CPullPin::EndOfStream, CPullPin::BeginFlush 및 CPullPin::EndFlush 메서드를 구현합니다.
- 순수 가상 CPullPin::OnError 메서드를 구현하여 스트리밍 오류를 처리합니다.
공용 멤버 변수 | Description |
---|---|
m_pAlloc | 메모리 할당자의 IMemAllocator 인터페이스에 대한 포인터입니다. |
Public 메서드 | Description |
활성 | 출력 핀에서 데이터를 가져오는 작업자 스레드를 만듭니다. |
AlignDown | 값을 지정된 맞춤 경계로 자립니다. |
AlignUp | 값을 지정된 맞춤 경계까지 반올림합니다. |
연결 | 출력 핀에 대한 연결을 완료합니다. |
CPullPin | 생성자 메서드입니다. |
~CPullPin | 소멸자 메서드입니다. 가상. |
DecideAllocator | 출력 핀을 사용하여 할당자를 협상합니다. 가상. |
연결 끊기 | 출력 핀과의 연결을 부리게 합니다. |
Duration | 스트림의 기간을 검색합니다. |
GetReader | 출력 핀의 IAsyncReader 인터페이스에 대한 포인터를 반환합니다. |
비활성 | 출력 핀에서 데이터를 가져오는 작업자 스레드를 종료합니다. |
Seek | 스트림의 시작 및 중지 위치를 설정합니다. |
순수 가상 메서드 | Description |
BeginFlush | 소유 필터에 다운스트림 필터를 플러시하도록 알릴 수 있습니다. |
EndFlush | 플러시 작업을 종료하도록 소유 필터에 알릴 수 있습니다. |
EndOfStream | 개체가 마지막 샘플을 전달한 후 호출됩니다. |
OnError | 스트리밍 중에 오류가 발생하면 호출됩니다. |
수신 | 개체가 출력 핀에서 미디어 샘플을 받을 때 호출됩니다. |
요구 사항
요구 사항 | 값 |
---|---|
헤더 |
|
라이브러리 |
|