다음을 통해 공유


llMulDiv 함수

[이 페이지와 연결된 기능인 DirectShow는 레거시 기능입니다. MediaPlayer, IMFMediaEngineMedia Foundation의 오디오/비디오 캡처로 대체되었습니다. 이러한 기능은 Windows 10 및 Windows 11 최적화되었습니다. 가능한 경우 새 코드에서 DirectShow 대신 MediaPlayer, IMFMediaEngine오디오/비디오 캡처를 사용하는 것이 좋습니다. 가능한 경우 레거시 API를 사용하는 기존 코드를 다시 작성하여 새 API를 사용하도록 제안합니다.]

함수는 llMulDiv 각 용어가 64비트 값인 수식을 ((a*b)+rnd)/c 구현합니다.

타임스탬프 및 검색 시간은 64비트 값이므로 이 함수는 32비트 시스템에서 변환을 수행하는 데 유용합니다. 예를 들어 초당 바이트 수식은 입니다.

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

로 계산 llMulDiv(nBytes, rtTime, 10000000, 0)할 수 있습니다. rnd 매개 변수를 반올림 요소로 사용합니다.

구문

LONGLONG WINAPI Int64x32Div32(
   LONGLONG a,
   LONGLONG b,
   LONGLONG c,
   LONGLONG rnd
);

매개 변수

a

곱하기

b

승수입니다.

c

제.

Rnd

반올림 요소입니다.

반환 값

(a * b + rnd)/c 계산 또는 다음 값 중 하나를 반환합니다.

반환 코드 설명
0x7FFFFFFFFFFFFFFF
결과가 너무 커서 오버플로가 발생했습니다(양수).
0x8000000000000000
결과가 너무 커서 오버플로가 발생했습니다(음수).

 

설명

나누기에서 반올림은 0으로 향합니다. 0으로 나누기는 오버플로 조건으로 계산됩니다.

요구 사항

요구 사항
헤더
Wxutil.h(Streams.h 포함)
라이브러리
Strmbase.lib(소매 빌드);
Strmbasd.lib(디버그 빌드)

추가 정보

기타 도우미 함수

Int64x32Div32