Int64x32Div32-Funktion
[Das dieser Seite zugeordnete Feature DirectShow ist ein Legacyfeature. Es wurde durch MediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation ersetzt. Diese Features wurden für Windows 10 und Windows 11 optimiert. Microsoft empfiehlt dringend, dass neuer Code nach Möglichkeit MediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation anstelle von DirectShow verwendet. Microsoft schlägt vor, vorhandenen Code, der die Legacy-APIs verwendet, um nach Möglichkeit die neuen APIs zu verwenden.]
Die Int64x32Div32
Funktion implementiert die Formel ((a*b)+rnd)/c
, bei der a ein 64-Bit-Wert und b, c und rnd 32-Bit-Werte sind.
Syntax
LONGLONG WINAPI Int64x32Div32(
LONGLONG a,
LONG b,
LONG c,
LONG rnd
);
Parameter
-
a
-
Multipliziert.
-
b
-
Multiplikator.
-
c
-
Divisor.
-
Rnd
-
Rundungsfaktor.
Rückgabewert
Gibt entweder die (a * b + rnd)/c
Berechnung oder einen der folgenden Werte zurück.
Rückgabecode | Beschreibung |
---|---|
|
Ein Überlauf ist aufgetreten, weil das Ergebnis zu groß (positiv) ist. |
|
Ein Überlauf ist aufgetreten, weil das Ergebnis zu groß (negativ) ist. |
Bemerkungen
Die Rundung für die Division erfolgt in Richtung 0. Die Division durch 0 wird als Überlaufbedingung gezählt.
Zeitstempel und Suchzeiten sind 64-Bit-Werte, sodass diese Funktion nützlich ist, um Konvertierungen auf 32-Bit-Systemen durchzuführen. In MPEG-1 beträgt die Systemuhrreferenz beispielsweise 90 kHz oder 90.000 Ticks pro Sekunde. Die Formel zum Konvertieren in die Referenzzeit (Einheiten von 100 Nanosekunden) lautet.
(timestamp * 1000) / 9
die als Int64x32Div32(timestamp, 1000, 9, 0)
berechnet werden kann. Verwenden Sie den rnd-Parameter als Rundungsfaktor.
Anforderungen
Anforderung | Wert |
---|---|
Header |
|
Bibliothek |
|
Siehe auch