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

IAMTimecodeReader::GetTimecode

GetTimecode 메서드는, 스트림내에서 유효한 최신의 타임 코드, 사용자 비트, 플래그값을 얻어온다.

구문

HRESULT GetTimecode(
  TIMECODE_SAMPLE *pTimecodeSample
);

파라미터

pTimecodeSample

[out] TIMECODE_SAMPLE 구조체의 포인터.

반환값

인터페이스의 처리에 응한 HRESULT 값을 돌려준다.

주의

이 메서드를 사용하면 타임 코드를 감시해, 중복과 불연속성을 해석할 수 있다.

타임 코드에는,userbits 로 불리는 미정도리의 비트가 포함된다. 애플리케이션은, 이러한 비트를 사용해, 동기 정보나 그 외의 커스텀 정보를 보관한다.

DV 및 MPEG 캠 코다의 처리

MSDV 드라이버는, SMPTE 타임 코드나 절대 트랙 번호 (ATN)의 읽기를 지원 하고 있다. MSTape 드라이버는, 상대 타임 카운터 (RTC)의 읽기를 지원 하고 있다. 이러한 장치의 타임 정보를 읽어내려면 , 이하를 실행한다.

TIMECODE_SAMPLE 구조체의 dwFlags 멤버를, 이하의 값의 어느 쪽인가에 설정한다.

정수 설명
ED_DEVCAP_TIMECODE_READ 타임 코드 (DV)
ED_DEVCAP_ATN_READ 절대 트랙 번호 (DV)
ED_DEVCAP_RTC_READ 상대 타임 카운터 (MPEG 테이프)

TIMECODE_SAMPLE 구조체의 timecode 멤버는,TIMECODE 구조체이다. 구조체의 dwFrames 멤버를 제로에 초기화한다.

그 외의 구조체 멤버는 모두 무시된다.

메서드가 돌아갔을 때,dwFrames 멤버에는, 이하의 포맷으로 타임 정보가 포함된다.

타임 정보 포맷
타임 코드 시간, 분, 초, 프레임을, BCD (Binary Coded Decimal) 값으로. 0xhhmmssff.
ATN 트랙 번호.
RTC 시간, 분, 초, 프레임을, BCD 값으로. 0xhhmmssff. 프레임 바이트의 최상정도 비트는 부호 비트이다. 프레임 카운트를 사용할 수 없는 경우는, 나머지의 프레임 비트가 0x7F 로 설정된다.

또,dwUser 멤버는, 이하의 값의 어느쪽이든을 가지는 blank flag 비트를 장치로부터 받는다.

설명
0x00 불연속은 아니다.
0x01 불연속이다.

참조

↑TOP