IMFTimecodeTranslate::EndConvertHNSToTimecode-Methode (mfidl.h)
Führt eine asynchrone Anforderung zum Konvertieren von Zeit in 100-Nanosekundeneinheiten in Society of Motion Picture and Television Engineers (SMPTE) Zeitcode aus.
Syntax
HRESULT EndConvertHNSToTimecode(
[in] IMFAsyncResult *pResult,
[out] PROPVARIANT *pPropVarTimecode
);
Parameter
[in] pResult
Ein Zeiger auf die IMFAsyncResult-Schnittstelle . Übergeben Sie denselben Zeiger, den Ihr Rückrufobjekt in der IMFAsyncCallback::Invoke-Methode empfangen hat.
[out] pPropVarTimecode
Ein Zeiger auf einen PROPVARIANT , der die konvertierte Zeit empfängt. Das vt-Element der PROPVARIANT-Struktur wird auf VT_I8 festgelegt. Das hVal.QuadPart-Element enthält die konvertierte Zeit in binärcodiertem Dezimalformular (BCD). Siehe Hinweise.
Rückgabewert
Wenn diese Methode erfolgreich ist, gibt sie S_OK zurück. Andernfalls wird ein HRESULT-Fehlercode zurückgegeben.
Hinweise
Rufen Sie diese Methode nach der IMFTimecodeTranslate::BeginConvertHNSToTimecode-Methode asynchron auf.
Der Wert von pPropVarTimecode ist ein 64-Bit-nicht signierter Wert, der als LONGLONG eingegeben wird. Das obere DWORD enthält den Bereich. (Ein Bereich ist eine fortlaufende Reihe von Zeitcodes.) Das niedrigere DWORD enthält den Zeitcode in Form einer Hexadezimalzahl 0xhmmssff, wobei jede 2-Byte-Sequenz als Dezimalwert gelesen wird.
HRESULT ParseTimeCode(
const PROPVARIANT& var,
DWORD *pdwRange,
DWORD *pdwFrames,
DWORD *pdwSeconds,
DWORD *pdwMinutes,
DWORD *pdwHours
)
{
if (var.vt != VT_I8)
{
return E_INVALIDARG;
}
ULONGLONG ullTimeCode = (ULONGLONG)var.hVal.QuadPart;
DWORD dwTimecode = (DWORD)(ullTimeCode & 0xFFFFFFFF);
*pdwRange = (DWORD)(ullTimeCode >> 32);
*pdwFrames = dwTimecode & 0x0000000F;
*pdwFrames += (( dwTimecode & 0x000000F0) >> 4 ) * 10;
*pdwSeconds = ( dwTimecode & 0x00000F00) >> 8;
*pdwSeconds += (( dwTimecode & 0x0000F000) >> 12 ) * 10;
*pdwMinutes = ( dwTimecode & 0x000F0000) >> 16;
*pdwMinutes += (( dwTimecode & 0x00F00000) >> 20 ) * 10;
*pdwHours = ( dwTimecode & 0x0F000000) >> 24;
*pdwHours += (( dwTimecode & 0xF0000000) >> 28 ) * 10;
return S_OK;
}
Anforderungen
Unterstützte Mindestversion (Client) | Windows 7 [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2008 R2 [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | mfidl.h |