Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Schließt eine asynchrone Anforderung zum Konvertieren der Zeit in 100 Nanosekundeneinheiten in den Zeitcode der Society of Motion Picture and Television Engineers (SMPTE) ab.
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 ist 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, wird S_OK zurückgegeben. Andernfalls wird ein Fehlercode HRESULT zurückgegeben.
Hinweise
Rufen Sie diese Methode auf, nachdem die IMFTimecodeTranslate::BeginConvertHNSToTimecode-Methode asynchron abgeschlossen wurde.
Der Wert von pPropVarTimecode ist ein 64-Bit-Wert ohne Vorzeichen, der als LONGLONG eingegeben wird. Der obere DWORD-Bereich enthält den Bereich. (Ein Bereich ist eine fortlaufende Reihe von Zeitcodes.) Das untere DWORD enthält den Zeitcode in Form einer Hexadezimalzahl 0xhhmmssff, 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 |