Share via


CPullPin 클래스

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

cpullpin 클래스 계층 구조

클래스는 CPullPinIAsyncReader 인터페이스를 통해 데이터를 끌어오는 입력 핀을 지원합니다. 끌어오기 모델을 사용하여 업스트림 필터에서 데이터를 요청하는 필터를 구현하는 경우 이 클래스를 사용합니다. 자세한 내용은 필터 그래프 및 끌어오기 모델의 Data Flow 참조하세요.

이 클래스는 CBasePin 에서 파생되거나 IPin 인터페이스를 구현하지 않으며 일부 메서드 이름은 IPin과 충돌하므로 핀 내에서 도우미 개체로 사용하는 것이 가장 좋습니다. 이 클래스를 사용하려면 다음을 수행합니다.

  1. 에서 CPullPin도우미 클래스를 파생하고 CBasePin에서 입력 핀 클래스를 파생합니다. 개체의 CPullPin instance pin 클래스의 멤버 변수로 선언합니다.
  2. CBasePin::CheckConnect 메서드를 재정의하여 CPullPin::Connect를 호출합니다. 이 메서드는 IAsyncReader에 대한 다른 핀을 쿼리합니다.
  3. CBasePin::BreakConnect 메서드를 재정의하여 CPullPin::D isconnect를 호출합니다.
  4. CBasePin::Active 메서드를 재정의하여 CPullPin::Active를 호출합니다. 이 메서드는 업스트림 필터에서 샘플을 가져오는 작업자 스레드를 시작합니다. 핀이 연결되면 작업자 스레드가 비동기 또는 동기 읽기 요청을 수행할지 여부를 지정할 수 있습니다.
  5. CBasePin::Inactive 메서드를 재정의하여 CPullPin::Inactive를 호출합니다. 이 메서드는 작업자 스레드를 종료합니다.
  6. 순수 가상 CPullPin::Receive 메서드를 구현하여 들어오는 샘플을 처리하고 다운스트림으로 배달합니다.
  7. 중지 및 시작 위치를 설정하거나 스트림을 찾으려면 CPullPin::Seek 메서드를 호출합니다. 이 메서드는 작업자 스레드를 일시 중지하고 필터 그래프를 플러시합니다.
  8. 해당 메서드에 대한 설명에 설명된 대로 순수 가상 CPullPin::EndOfStream, CPullPin::BeginFlushCPullPin::EndFlush 메서드를 구현합니다.
  9. 순수 가상 CPullPin::OnError 메서드를 구현하여 스트리밍 오류를 처리합니다.
공용 멤버 변수 Description
m_pAlloc 메모리 할당자의 IMemAllocator 인터페이스에 대한 포인터입니다.
Public 메서드 Description
활성 출력 핀에서 데이터를 가져오는 작업자 스레드를 만듭니다.
AlignDown 값을 지정된 맞춤 경계로 자립니다.
AlignUp 값을 지정된 맞춤 경계까지 반올림합니다.
연결 출력 핀에 대한 연결을 완료합니다.
CPullPin 생성자 메서드입니다.
~CPullPin 소멸자 메서드입니다. 가상.
DecideAllocator 출력 핀을 사용하여 할당자를 협상합니다. 가상.
연결 끊기 출력 핀과의 연결을 부리게 합니다.
Duration 스트림의 기간을 검색합니다.
GetReader 출력 핀의 IAsyncReader 인터페이스에 대한 포인터를 반환합니다.
비활성 출력 핀에서 데이터를 가져오는 작업자 스레드를 종료합니다.
Seek 스트림의 시작 및 중지 위치를 설정합니다.
순수 가상 메서드 Description
BeginFlush 소유 필터에 다운스트림 필터를 플러시하도록 알릴 수 있습니다.
EndFlush 플러시 작업을 종료하도록 소유 필터에 알릴 수 있습니다.
EndOfStream 개체가 마지막 샘플을 전달한 후 호출됩니다.
OnError 스트리밍 중에 오류가 발생하면 호출됩니다.
수신 개체가 출력 핀에서 미디어 샘플을 받을 때 호출됩니다.

요구 사항

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