DirectShow DirectShow 레퍼런스 인터페이스 IMediaFilter SetSyncSource [목차열람] [주소복사] [슬롯비우기] |
Microsoft DirectX 9.0 |
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 를 호출해, 그래프가 기준 클럭을 사용하지 않게 설정하는 일도 가능하다. 이와 같이 설정 하면, 샘플을 할 수 있는 한 빨리 처리할 수 있다. 더 자세한 정보는, 「그래프 클럭의 설정」을 참조할것.
애플리케이션은, 필터로 이 메서드를 결코 호출해서는 안 된다.
참조