DirectShow DirectShow 레퍼런스 DirectShow base class base class 레퍼런스 CBaseReferenceClock [목차열람] [주소복사] [슬롯비우기] |
Microsoft DirectX 9.0 |
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 | 기준 타임을 밀리 세컨드로 변환한다. |