зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1529581 - Improve MediaTimer accuracy. r=padenot
Differential Revision: https://phabricator.services.mozilla.com/D129655
This commit is contained in:
Родитель
b9f92d2e95
Коммит
00e3b78ffe
|
@ -181,17 +181,12 @@ void MediaTimer::ArmTimer(const TimeStamp& aTarget, const TimeStamp& aNow) {
|
|||
MOZ_DIAGNOSTIC_ASSERT(!TimerIsArmed());
|
||||
MOZ_DIAGNOSTIC_ASSERT(aTarget > aNow);
|
||||
|
||||
// XPCOM timer resolution is in milliseconds. It's important to never resolve
|
||||
// a timer when mTarget might compare < now (even if very close), so round up.
|
||||
unsigned long delay = std::ceil((aTarget - aNow).ToMilliseconds());
|
||||
TIMER_LOG("MediaTimer::ArmTimer delay=%lu", delay);
|
||||
const TimeDuration delay = aTarget - aNow;
|
||||
TIMER_LOG("MediaTimer::ArmTimer delay=%.3fms", delay.ToMilliseconds());
|
||||
mCurrentTimerTarget = aTarget;
|
||||
nsresult rv = mTimer->InitWithNamedFuncCallback(&TimerCallback, this, delay,
|
||||
nsITimer::TYPE_ONE_SHOT,
|
||||
"MediaTimer::TimerCallback");
|
||||
MOZ_DIAGNOSTIC_ASSERT(NS_SUCCEEDED(rv));
|
||||
Unused << rv;
|
||||
(void)rv;
|
||||
MOZ_ALWAYS_SUCCEEDS(mTimer->InitHighResolutionWithNamedFuncCallback(
|
||||
&TimerCallback, this, delay, nsITimer::TYPE_ONE_SHOT,
|
||||
"MediaTimer::TimerCallback"));
|
||||
}
|
||||
|
||||
} // namespace mozilla
|
||||
|
|
Загрузка…
Ссылка в новой задаче