IMFTimecodeTranslate::BeginConvertTimecodeToHNS 메서드(mfidl.h)

SMPTE(영화 및 텔레비전 엔지니어 협회) 시간 코드를 100나노초 단위로 변환하기 위한 비동기 호출을 시작합니다.

구문

HRESULT BeginConvertTimecodeToHNS(
  [in] const PROPVARIANT *pPropVarTimecode,
  [in] IMFAsyncCallback  *pCallback,
  [in] IUnknown          *punkState
);

매개 변수

[in] pPropVarTimecode

변환할 SMPTE 시간 코드의 시간입니다. PROPVARIANT 구조체의 vt 멤버가 VT_I8 설정됩니다. hVal.QuadPart 멤버에는 BCD(이진 코딩된 10진수) 형식의 시간이 포함됩니다. 설명 부분을 참조하세요.

[in] pCallback

콜백 개체의 IMFAsyncCallback 인터페이스에 대한 포인터입니다. 호출자는 이 인터페이스를 구현해야 합니다.

[in] punkState

호출자가 정의한 상태 개체의 IUnknown 인터페이스에 대한 PPointer입니다. 이 매개 변수는 NULL일 수 있습니다. 이 개체를 사용하여 상태 정보를 저장할 수 있습니다. 콜백이 호출될 때 개체가 호출자에게 반환됩니다.

반환 값

이 메서드는 HRESULT를 반환합니다. 가능한 값에는 다음 표에 있는 값이 포함되지만, 이에 국한되는 것은 아닙니다.

반환 코드 설명
E_INVALIDARG
pPropVarTimecodeVT_I8 않습니다.
MF_E_SHUTDOWN
개체의 Shutdown 메서드가 호출되었습니다.
MF_E_BYTESTREAM_NOT_SEEKABLE
바이트 스트림은 검색할 수 없습니다. 바이트 스트림의 끝에서 시간 코드를 읽을 수 없습니다.

설명

비동기 메서드가 완료되면 콜백 개체의 IMFAsyncCallback::Invoke 메서드가 호출됩니다. 이 시점에서 애플리케이션은 IMFTimecodeTranslate::EndConvertTimecodeToHNS 를 호출하여 비동기 요청을 완료해야 합니다.

pPropVarTimecode 값은 LONGLONG으로 입력된 64비트 부호 없는 값입니다. 위쪽 DWORD 에는 범위가 포함됩니다. (범위는 연속적인 일련의 시간 코드입니다.) 아래쪽 DWORD에는 각 2바이트 시퀀스가 10진수 값으로 읽혀지는 16진수 0xhhmmssff 형식의 시간 코드가 포함되어 있습니다.

void CreateTimeCode(
    DWORD dwFrames,
    DWORD dwSeconds,
    DWORD dwMinutes,
    DWORD dwHours,
    DWORD dwRange,
    PROPVARIANT *pvar
    )
{
    ULONGLONG ullTimecode = ((ULONGLONG)dwRange) << 32;

    ullTimecode +=   dwFrames  % 10;
    ullTimecode += (( (ULONGLONG)dwFrames )  / 10) << 4;
    ullTimecode += (( (ULONGLONG)dwSeconds ) % 10) << 8;
    ullTimecode += (( (ULONGLONG)dwSeconds ) / 10) << 12;
    ullTimecode += (( (ULONGLONG)dwMinutes ) % 10) << 16;
    ullTimecode += (( (ULONGLONG)dwMinutes ) / 10) << 20;
    ullTimecode += (( (ULONGLONG)dwHours )   % 10) << 24;
    ullTimecode += (( (ULONGLONG)dwHours )   / 10) << 28;

    pvar->vt = VT_I8;
    pvar->hVal.QuadPart = (LONGLONG)ullTimecode;
}

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 7 [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2008 R2 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 mfidl.h

추가 정보

비동기 메서드 호출

IMFTimecodeTranslate