From d98e784f5f507cce667c38a3c7cce91b239df22b Mon Sep 17 00:00:00 2001 From: "stefan@webrtc.org" Date: Wed, 8 May 2013 06:38:53 +0000 Subject: [PATCH] Fix VCMProcessTimer::TimeUntilProcess() unsigned-integer underflow problem. BUG=1665 R=mflodman@webrtc.org Review URL: https://webrtc-codereview.appspot.com/1341004 git-svn-id: http://webrtc.googlecode.com/svn/trunk@3979 4adac7df-926f-26a2-2b94-8c16560cd09d --- .../video_coding/main/source/video_coding_impl.cc | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/webrtc/modules/video_coding/main/source/video_coding_impl.cc b/webrtc/modules/video_coding/main/source/video_coding_impl.cc index 881a5db9f..4ed2e8057 100644 --- a/webrtc/modules/video_coding/main/source/video_coding_impl.cc +++ b/webrtc/modules/video_coding/main/source/video_coding_impl.cc @@ -33,9 +33,13 @@ VCMProcessTimer::Period() const uint32_t VCMProcessTimer::TimeUntilProcess() const { - return static_cast( - VCM_MAX(static_cast(_periodMs) - - (_clock->TimeInMilliseconds() - _latestMs), 0)); + const int64_t time_since_process = _clock->TimeInMilliseconds() - + static_cast(_latestMs); + const int64_t time_until_process = static_cast(_periodMs) - + time_since_process; + if (time_until_process < 0) + return 0; + return time_until_process; } void