DirectShow DirectShow 레퍼런스 DirectShow base class base class 레퍼런스 CPullPin   [목차열람] [주소복사] [슬롯비우기]
CPullPin 클래스
 
Microsoft DirectX 9.0

CPullPin 클래스

CPullPin 클래스의 계층

CPullPin 클래스는,IAsyncReader 인터페이스를 통해 데이타를 뽑기 시작하는 입력 핀에 대한 지원을 제공한다. 이 클래스는, 풀 모델에 의해 업 스트림 필터의 데이터를 요구하는 필터를 처리 하는 경우에 사용한다. 더 자세한 정보는, 「필터 그래프와 프르모델의 데이터 플로우」를 참조할것.

이 클래스는 CBasePin 로부터 파생하지 않고,IPin 인터페이스도 처리 하지 않는다. 일부의 메서드명은 IPin 와 충돌하기 (위해)때문에, 이 클래스는 핀 내부의 헬퍼-개체로서 사용하는 것이 최적인 사용법이다. 이 클래스의 사용법은 다음과 같다.

  1. CPullPin 로부터 헬퍼-클래스를 파생시켜,CBasePin 로부터 입력 핑크 라스를 파생시킨다. CPullPin 개체의 인스턴스를 핑크 라스의 멤버 변수로서 선언한다.
  2. CBasePin::CheckConnect 메서드를 오버라이드(override) 해,CPullPin::Connect 를 호출한다. 이 메서드는 다른 핀에 IAsyncReader 를 문의한다.
  3. CBasePin::BreakConnect 메서드를 오버라이드(override) 해,CPullPin::Disconnect 를 호출한다.
  4. CBasePin::Active 메서드를 오버라이드(override) 해,CPullPin::Active 를 호출한다. 이 메서드는, 업 스트림 필터로부터 샘플을 꺼내는 워커 thread를 기동한다. 핀을 접속할 때, 워커 thread로 비동기 또는 동기의 읽기 요구를 실시할지 어떨지를 지정할 수 있다.
  5. CBasePin::Inactive 메서드를 오버라이드(override) 해,CPullPin::Inactive 를 호출한다. 이 메서드는 워커 thread를 셧다운 한다.
  6. 순수 가상 메서드 CPullPin::Receive 를 처리 해, 수신 샘플을 처리해 다운 스트림에 출력한다.
  7. 정지 위치와 시작 위치를 설정하려면 , 또는 스트림을 시크 하려면 ,CPullPin::Seek 메서드를 호출한다. 이 메서드는 워커 thread를 포즈시켜, 필터 그래프를 플래시 한다.
  8. 순수 가상 메서드 CPullPin::EndOfStream ,CPullPin::BeginFlush ,CPullPin::EndFlush 를 처리 한다 (이러한 메서드의 「주의」를 참조).
  9. 스트리밍 에러를 처리하는 순수 가상 메서드 CPullPin::OnError 를 처리 한다.

요건

헤더: Pullpin.h 와 Streams.h 를 인클루드 한다.

라이브러리: Strmbase.lib (리테일 빌드) 또는 Strmbasd.lib (디버그 빌드).

퍼블릭 멤버 변수 설명
m_pAlloc 메모리 할당자의 IMemAllocator 인터페이스의 포인터.
퍼블릭 메서드  
Active 출력 핀으로부터 데이타를 뽑기 시작하는 워커 thread를 생성 한다.
AlignDown 지정한 alignment 경계까지 값을 잘라 버린다.
AlignUp 지정한 alignment 경계까지 값을 끝맺는다.
Connect 출력 핀에의 접속을 완료한다.
CPullPin 생성자 메서드.
~CPullPin 소멸자 메서드. 가상.
DecideAllocator 출력 핀과 할당자를 네고시에이트 한다. 가상.
Disconnect 출력 핀과의 접속을 해제한다.
Duration 스트림의 시간폭을 얻어온다.
GetReader 출력 핀의 IAsyncReader 인터페이스의 포인터를 돌려준다.
Inactive 출력 핀으로부터 데이타를 뽑기 시작하는 워커 thread를 셧다운 한다.
Seek 미디어 스트림의 시작 위치와 종료 위치를 설정한다.
순수 가상 메서드  
BeginFlush 다운 스트림 필터를 플래시 하도록(듯이) 오너 필터에 통지한다.
EndFlush 플래시 처리를 종료하도록(듯이) 오너 필터에 통지한다.
EndOfStream 개체가 마지막 샘플을 출력한 후에 호출된다.
OnError 스트리밍중에 에러가 발생 하면 호출된다.
Receive 개체가 출력 핀으로부터 미디어 샘플을 수신 하면 호출된다.

↑TOP