다음을 통해 공유


Int64x32Div32 함수

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

함수는 Int64x32Div32 64비트 값이고 b, crnd가 32비트 값인 수식을 ((a*b)+rnd)/c 구현합니다.

구문

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

매개 변수

a

곱하기

b

승수입니다.

c

제.

Rnd

반올림 계수입니다.

반환 값

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

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

 

설명

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

타임스탬프 및 검색 시간은 64비트 값이므로 이 함수는 32비트 시스템에서 변환을 수행하는 데 유용합니다. 예를 들어 MPEG-1에서 시스템 클록 참조는 90kHz 또는 초당 90,000틱입니다. 이를 참조 시간(100나노초 단위)으로 변환하는 수식은 입니다.

(timestamp * 1000) / 9

로 계산 Int64x32Div32(timestamp, 1000, 9, 0)할 수 있습니다. rnd 매개 변수를 반올림 요소로 사용합니다.

요구 사항

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

추가 정보

기타 도우미 함수

llMulDiv