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

CRefTime 클래스

CRefTime 클래스의 계층

CRefTime 클래스는,기준 타임 을 관리하기 위한 헬퍼-클래스이다.

기준 타임은 100 나노초단위로 표현되는 시간의 단위이다. 이 클래스는 REFERENCE_TIME 데이터형과 같은 데이터 레이아웃을 공유하지만, 비교나 변환이나 수식 함수를 제공하는 몇개의 메서드와 연산자가 추가되고 있다. 기준 타임의 더 자세한 정보는, 「DirectShow 의 타임과 클럭」을 참조할것.

이 클래스의 사용법에는, 어느 함정이 있다. 왼쪽 오퍼랜드로서 CRefTime 개체와 함께 += 연산자를 적용해, 오른쪽 오퍼랜드로서 LONG 형의 변수를 사용하면 컴파일러는 암묵적으로 오른쪽 오퍼랜드를 CRefTime 개체에 강제 변환한다. 이 강제형 변환은, 밀리 세컨드를 REFERENCE_TIME 단위로 변환하는 CRefTime 생성자을 사용하기 (위해)때문에, 오른쪽 오퍼랜드는 10,000 배가 된다.

CRefTime rt;   // rt.m_time 는 0.
LONG val = 20;
rt += val;    // val 를 CRefTime 에 강제 변환한다. rt.m_time 는 200,000 이 된다.

그러나,+ 연산자를 사용하는 경우는 이것은 발생하지 않는다.

CRefTime rt;   // rt.m_time 는 0.
LONG val = 20;
rt = rt + val; // CRefTime, rt.m_time 는 20.

요건

헤더 : Reftime.h 내에서 선언해, Streams.h 를 인클루드 한다.

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

퍼블릭 멤버 변수  
m_time REFERENCE_TIME 값을 지정한다.
퍼블릭 메서드  
CRefTime 생성자 메서드.
GetUnits 기준 타임을 얻어온다 (100 나노초단위).
Millisecs 기준 타임을 밀리 세컨드로 변환한다.
연산자  
operator REFERENCE_TIME() 개체를 REFERENCE_TIME 데이터형에 캐스트 한다.
operator = 새로운 기준 타임을 할당한다.
operator += 2 개의 기준 타임을 덧셈 한다.
operator -= 어느 기준 타임부터 이제 1 개의 기준 타임을 당긴다.

↑TOP