Int64x32Div32 函数
[与此页面关联的功能 DirectShow 是旧版功能。 它已被 MediaPlayer、 IMFMediaEngine 和 Media Foundation 中的音频/视频捕获所取代。 这些功能已针对Windows 10和Windows 11进行了优化。 Microsoft 强烈建议新代码尽可能在 Media Foundation 中使用 MediaPlayer、 IMFMediaEngine 和 音频/视频捕获 ,而不是 DirectShow。 如果可能,Microsoft 建议重写使用旧 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-kHz,即每秒 90,000 个时钟周期。 将其转换为引用时间 (100 纳秒单位) 的公式为
(timestamp * 1000) / 9
可计算为 Int64x32Div32(timestamp, 1000, 9, 0)
。 使用 rnd 参数作为舍入因子。
要求
要求 | 值 |
---|---|
标头 |
|
库 |
|
另请参阅