Freigeben über


llMulDiv-Funktion

[Das dieser Seite zugeordnete Feature DirectShow ist ein Legacyfeature. Es wurde von MediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation abgelöst. Diese Features wurden für Windows 10 und Windows 11 optimiert. Microsoft empfiehlt dringend, dass neuer Code mediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation anstelle von DirectShow verwendet, wenn möglich. Microsoft schlägt vor, dass vorhandener Code, der die Legacy-APIs verwendet, so umgeschrieben wird, dass nach Möglichkeit die neuen APIs verwendet werden.]

Die llMulDiv Funktion implementiert die Formel ((a*b)+rnd)/c , bei der jeder Ausdruck ein 64-Bit-Wert ist.

Zeitstempel und Suchzeiten sind 64-Bit-Werte, sodass diese Funktion nützlich ist, um Konvertierungen auf 32-Bit-Systemen durchzuführen. Die Formel für Bytes pro Sekunde lautet z. B.

(Number of Bytes * Reference Time) / 10,000,000

die als llMulDiv(nBytes, rtTime, 10000000, 0)berechnet werden kann. Verwenden Sie den rnd-Parameter als Rundungsfaktor.

Syntax

LONGLONG WINAPI Int64x32Div32(
   LONGLONG a,
   LONGLONG b,
   LONGLONG c,
   LONGLONG 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
0x7FFFFFFFFFFFFFFF
Ein Überlauf ist aufgetreten, weil das Ergebnis zu groß (positiv) ist.
0x8000000000000000
Ein Überlauf ist aufgetreten, weil das Ergebnis zu groß (negativ) ist.

 

Bemerkungen

Die Rundung der Division erfolgt in Richtung null. Die Division durch 0 (null) wird als Überlaufbedingung gezählt.

Anforderungen

Anforderung Wert
Header
Wxutil.h (Streams.h einschließen)
Bibliothek
Strmbase.lib (Einzelhandelsbuilds);
Strmbasd.lib (Debugbuilds)

Siehe auch

Verschiedene Hilfsfunktionen

Int64x32Div32