MFFrameRateToAverageTimePerFrame-Funktion (mfapi.h)
Konvertiert eine Videobildrate in eine Framedauer.
Syntax
HRESULT MFFrameRateToAverageTimePerFrame(
[in] UINT32 unNumerator,
[in] UINT32 unDenominator,
[out] UINT64 *punAverageTimePerFrame
);
Parameter
[in] unNumerator
Der Zähler der Bildfrequenz.
[in] unDenominator
Der Nenner der Bildfrequenz.
[out] punAverageTimePerFrame
Empfängt die durchschnittliche Dauer eines Videoframes in 100 Nanosekundeneinheiten.
Rückgabewert
Wenn diese Funktion erfolgreich ist, wird S_OK zurückgegeben. Andernfalls wird ein Fehlercode HRESULT zurückgegeben.
Hinweise
Diese Funktion ist für die Berechnung von Zeitstempeln für eine Stichprobe nützlich, da die Bildfrequenz angegeben ist.
Außerdem wird die durchschnittliche Zeit pro Frame in den älteren Formatstrukturen VIDEOINFOHEADER und VIDEOINFOHEADER2 verwendet. Diese Funktion stellt eine Standardkonvertierung bereit, damit alle Komponenten in der Pipeline konsistente Werte verwenden können, wenn sie zwischen den älteren Formatstrukturen und den in Media Foundation verwendeten Medientypattributen übersetzen müssen.
Für bestimmte allgemeine Bildfrequenzen ruft die Funktion die Framedauer aus einer Nachschlagetabelle ab:
Frames pro Sekunde (Gleitkomma) | Frames pro Sekunde (Bruch) | Durchschnittliche Zeit pro Frame |
---|---|---|
59.94 | 60000/1001 | 166833 |
29.97 | 30000/1001 | 333667 |
23.976 | 24000/1001 | 417188 |
60 | 60/1 | 166667 |
30 | 30/1 | 333333 |
50 | 50/1 | 200.000 |
25 | 25/1 | 400000 |
24 | 24/1 | 416667 |
Die meisten Videoinhalte verwenden eine der hier aufgeführten Bildfrequenzen. Für andere Bildfrequenzen berechnet die Funktion die Dauer.
Anforderungen
Unterstützte Mindestversion (Client) | Windows Vista [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2008 [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | mfapi.h |
Bibliothek | Mfplat.lib |
DLL | Mfplat.dll |