Функция Int64x32Div32
[Функция, связанная с этой страницей DirectShow, является устаревшей функцией. Он был заменен MediaPlayer, IMFMediaEngine, и аудио/ видео захвата в Media Foundation. Эти функции оптимизированы для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует, чтобы новый код использовал MediaPlayer, IMFMediaEngine и аудио- и видеозахват в Media Foundation вместо DirectShow, когда это возможно. Корпорация Майкрософт предлагает переписать существующий код, использующий устаревшие API, чтобы по возможности использовать новые API.]
Функция Int64x32Div32
реализует формулу ((a*b)+rnd)/c
, где a является 64-разрядным значением, а b, c и rnd — 32-разрядными значениями.
Синтаксис
LONGLONG WINAPI Int64x32Div32(
LONGLONG a,
LONG b,
LONG c,
LONG rnd
);
Параметры
-
a
-
Умножение.
-
b
-
Множитель.
-
c
-
Делитель.
-
Rnd
-
Коэффициент округления.
Возвращаемое значение
Возвращает вычисление (a * b + rnd)/c
или одно из следующих значений.
Код возврата | Описание |
---|---|
|
Переполнение произошло из-за слишком большого (положительного) результата. |
|
Переполнение произошло из-за слишком большого (отрицательного) результата. |
Комментарии
Округление на делении к нулю. Деление на ноль считается условием переполнения.
Метки времени и время поиска являются 64-разрядными значениями, поэтому эта функция полезна для выполнения преобразований в 32-разрядных системах. Например, в MPEG-1 ссылка на системные часы составляет 90 кГц или 90 000 тактов в секунду. Формула, преобразуемая в эталонное время (100-наносекундные единицы) —
(timestamp * 1000) / 9
который можно вычислить как Int64x32Div32(timestamp, 1000, 9, 0)
. Используйте параметр rnd в качестве коэффициента округления.
Требования
Требование | Значение |
---|---|
Заголовок |
|
Библиотека |
|
См. также раздел