DirectShow DirectShow 레퍼런스 인터페이스 IAMPushSource   [목차열람] [주소복사] [슬롯비우기]
IAMPushSource 인터페이스
 
Microsoft DirectX 9.0

IAMPushSource 인터페이스

IAMPushSource 인터페이스는, 라이브 소스를 렌더링 하는 필터 그래프의 동기를 잡는 메서드를 갖추고 있다. 라이브 소스란, 캡춰 장치나 네트워크 브로드캐스트와 같이, 리얼타임에 데이터를 스트리밍 하는 것이다. 이 인터페이스는,IAMLatency 인터페이스를 계승하고 있다.

라이브 데이터를 스트림 하는 소스 필터는, 그 출력 핀에 대해 이 인터페이스를 공개할 필요가 있다.

일반적으로, 애플리케이션은 이 인터페이스의 메서드를 호출해서는 안 된다. 대신에,IAMGraphStreams 인터페이스를 사용한다. 필터 그래프 매니저는, 이 인터페이스의 메서드를 사용해, 라이브 소스를 렌더링 할 경우에 공통되어 발생하는 2 개의 문제를 해결한다.

지연 시간을 보정하기 위해서 필터 그래프는,IAMPushSource 인터페이스를 공개하고 있는 각 출력 핀에 대해 IAMLatency::GetLatency 를 호출해, 그래프내의 최대의 지연 시간을 조사한다. 다음에, 최대 지연 시간보다 지연 시간이 짧은 필터에 대해 IAMPushSource::SetStreamOffset 를 호출해, 각자가 생성하는 타임 스탬프를 올바른 오프셋(offset)로 조정한다.

필터 그래프는, 레이트 매칭을 실행하기 위해서, 렌더링 필터가 클럭 레이트를 소스 필터에 일치할 수 있을지 어떨지를 조사할 필요가 있다. IAMPushSource::GetPushSourceFlags 메서드에 의해, 렌더러가 레이트를 소스에 일치시켜도 문제가 있는지 없는지를 나타내는 플래그세트가 반환된다.

이러한 문제는, 파일에의 캡춰에는 영향을 주지 않는다. 파일 라이터 필터는, 수신하는 샘플 위에의 타임 스탬프에 근거해, 파일에의 올바른 쓰기를 실행한다. 이 후, 재생할 경우에 스트림의 동기를 한다. 레이트 매칭에 관해서, 데이터는 항상 가능한 한 고속으로 파일에 써진다.

IAMGraphStreams 인터페이스는,IAMLatency 로부터 계승되는 메서드에 가세해 이하의 메서드를 공개한다.

메서드 설명
GetMaxStreamOffset 필터를 지원 할 수 있는 최대 스트림 오프셋(offset)를 얻어온다.
GetPushSourceFlags 필터의 동작을 나타내는 플래그의 편성을 얻어온다.
GetStreamOffset 타임 스탬프를 생성할 경우에 필터가 사용하는 오프셋(offset)를 얻어온다.
SetMaxStreamOffset 최대 스트림 오프셋(offset)를 지정하는 기준 타임.
SetPushSourceFlags 필터의 동작을 지정하는 플래그를 설정한다.
SetStreamOffset 이 필터로 생성되는 타임 스탬프의 오프셋(offset)를 설정한다.

↑TOP