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

CBaseReferenceClock 클래스

CBaseReferenceClock 의 접속 처리

CBaseReferenceClock 클래스는 기준 클럭을 처리 한다.

이 클래스는,IReferenceClock 인터페이스를 지원 하는 기준 클럭을 처리 한다. 하드웨어 장치에 액세스 하는 등 해, 필터가 필터 그래프에 기준 클럭을 제공할 수 있는 경우, 필터는 이 클래스를 사용해 클럭을 처리 한다.

CBaseReferenceClock 개체는, 다음의 2 개의 개별의 타임값을 유지한다.

내장 시계를 단시간역방향으로 진행하는 것은 유효하다. 예를 들어, 클럭이 먼저 진행되었을 경우, 필터는 클럭을 역방향으로 조정할 수 있다 ( 「CBaseReferenceClock::SetTimeDelta 」를 참조). GetTime 메서드는,GetPrivateTime 에 의해 보고된 타임값을 사용한다. 그러나, 기준 타임은 단조 증가하고 있다. 즉, 결코 역방향으로 나아갈 것은 없다. 그 때문에, 내장 시계가 역방향으로 나아갔을 경우,GetTime 는 내장 시계가 따라잡을 때까지 낡은 타임을 계속 보고한다.

예를 들어, 2 개의 메서드가 다음의 순서를 돌려준다고 한다.

GetPrivateTime: 105, 106, 103, 104, 105, 106, 107, 108
GetTime:        105, 106, 106, 106, 106, 106, 107, 108

3 번째의 크로크틱에서는, 내장 시계는 103 에 돌아오고 있다. GetTime 메서드는, 내장 시계가 따라잡을 때까지, 106 을 계속 보고한다.

디폴트에서는,GetPrivateTime 는,timeGetTime 함수의 호출에 의해 시스템 타임을 돌려준다. 외부 장치로부터 기준 클럭을 제공하고 있는 필터는, 다음의 어느쪽이든을 실시할 수가 있다.

이 클래스는,CAMSchedule 개체를 사용해 아드바이즈 요구의 스케줄링을 실시한다. 더 자세한 정보는,CAMSchedule 클래스의 문서를 참조할것.

요건

헤더 : Refclock.h 로 선언해, Streams.h 를 인클루드 한다.

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

프로텍트 멤버 변수  
m_pSchedule 클럭의 스케줄 태스크를 처리하는 CAMSchedule 개체.
프로텍트 메서드  
~CBaseReferenceClock 소멸자 메서드.
퍼블릭 메서드  
CBaseReferenceClock 생성자 메서드.
GetPrivateTime 클럭으로부터 현재의 타임을 얻어온다.
SetTimeDelta 내장 시계 타임을 조정한다.
GetSchedule 클럭의 스케줄 개체의 포인터를 얻어온다.
TriggerThread 스케줄링을 처리하는 워커 thread를 기동한다.
IReferenceClock 메서드  
GetTime 현재의 기준 타임을 얻어온다.
AdviseTime 단발의 아드바이즈 요구를 생성 한다.
AdvisePeriodic 주기적 아드바이즈 요구를 생성 한다.
Unadvise 보류 상태의 아드바이즈 요구를 삭제한다.
헬퍼-함수  
ConvertToMilliseconds 기준 타임을 밀리 세컨드로 변환한다.

↑TOP