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

IMediaFilter::SetSyncSource

SetSyncSource 메서드는, 기준 클럭을 설정한다.

구문

HRESULT SetSyncSource(
  IReferenceClock *pClock
);

파라미터

pClock

[in] 클럭의 IReferenceClock 인터페이스의 포인터. 또는 NULL.

반환값

성공했을 경우는 S_OK 를 돌려준다. 그 이외의 경우는, 에러의 발생을 나타내는 HRESULT 값을 돌려준다.

주의

필터 그래프내의 모든 필터는, 동기를 잡기 위해서(때문에), 같은 기준 클럭을 공유한다. 스트림 타임 은, 기준 클럭에 근거해 계산된다. 렌더링 필터는 기준 클럭을 사용해, 언제 샘플을 렌더링 할까를 스케줄 한다. 기준 클럭이 없는 경우, 렌더링 필터는, 모든 샘플을 받자마자 렌더링 한다.

이 메서드는, 모든 DirectShow 필터, 필터 그래프 매니저로 처리 된다.

필터 처리

그래프가 실행 하면, 필터 그래프 매니저는 그래프내의 모든 필터로 이 메서드를 호출해, 그래프의 기준 클럭을 통지한다. 이 메서드를 사용해,IReferenceClock 포인터를 저장 한다. 저장 한 포인터의 참조 카운트를 인크리먼트(increment) 한다. 필터를 그래프로부터 삭제하기 전에, 필터 그래프 매니저는 값 NULL 로 다시 SetSyncSource 를 호출한다. 저장 한 포인터를 릴리즈 해, 그 포인터를 NULL 로 설정한다.

CBaseFilter 클래스는 이 메서드를 처리 한다. 「CBaseFilter::SetSyncSource 」를 참조할것.

필터는 이 메서드를 사용해 그래프 클럭은 선택할 수 없는 점에 주의 해야 한다. 필터에서는, 이 메서드의 함수만이 필터에 그래프가 사용하고 있는 클럭을 통지한다. 필터는,IReferenceClock 인터페이스를 공개하는 것에 의해, 기준 클럭을 제공할 수 있다. 더 자세한 정보는, 「DirectShow 의 타임과 클럭」을 참조할것.

애플리케이션으로부터의 사용

애플리케이션은, 필터 그래프 매니저로 SetSyncSource 를 호출해, 디폴트 클럭을 오버라이드(override) 할 수 있다. 이 조작은, 다른 클럭을 사용하는 명확한 이유가 있는 경우에만 실시하는 것. 값 NULL 로 SetSyncSource 를 호출해, 그래프가 기준 클럭을 사용하지 않게 설정하는 일도 가능하다. 이와 같이 설정 하면, 샘플을 할 수 있는 한 빨리 처리할 수 있다. 더 자세한 정보는, 「그래프 클럭의 설정」을 참조할것.

애플리케이션은, 필터로 이 메서드를 결코 호출해서는 안 된다.

참조

↑TOP