Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(108)

Unified Diff: modules/audio_conference_mixer/source/time_scheduler.cc

Issue 3015553002: Remove voe::OutputMixer and AudioConferenceMixer. (Closed)
Patch Set: remove conference mixer from presubmit.py Created 3 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: modules/audio_conference_mixer/source/time_scheduler.cc
diff --git a/modules/audio_conference_mixer/source/time_scheduler.cc b/modules/audio_conference_mixer/source/time_scheduler.cc
deleted file mode 100644
index 5a27b42b4b8052c7f7018499a9e83cf80b7369d0..0000000000000000000000000000000000000000
--- a/modules/audio_conference_mixer/source/time_scheduler.cc
+++ /dev/null
@@ -1,92 +0,0 @@
-/*
- * Copyright (c) 2011 The WebRTC project authors. All Rights Reserved.
- *
- * Use of this source code is governed by a BSD-style license
- * that can be found in the LICENSE file in the root of the source
- * tree. An additional intellectual property rights grant can be found
- * in the file PATENTS. All contributing project authors may
- * be found in the AUTHORS file in the root of the source tree.
- */
-
-#include "modules/audio_conference_mixer/source/time_scheduler.h"
-#include "rtc_base/timeutils.h"
-
-namespace webrtc {
-TimeScheduler::TimeScheduler(const int64_t periodicityInMs)
- : _isStarted(false),
- _lastPeriodMark(),
- _periodicityInMs(periodicityInMs),
- _periodicityInTicks(periodicityInMs * rtc::kNumNanosecsPerMillisec),
- _missedPeriods(0) {}
-
-int32_t TimeScheduler::UpdateScheduler() {
- rtc::CritScope cs(&_crit);
- if(!_isStarted)
- {
- _isStarted = true;
- _lastPeriodMark = rtc::TimeNanos();
- return 0;
- }
- // Don't perform any calculations until the debt of pending periods have
- // been worked off.
- if(_missedPeriods > 0)
- {
- _missedPeriods--;
- return 0;
- }
-
- // Calculate the time that has past since previous call to this function.
- int64_t tickNow = rtc::TimeNanos();
- int64_t amassedTicks = tickNow - _lastPeriodMark;
- int64_t amassedMs = amassedTicks / rtc::kNumNanosecsPerMillisec;
-
- // Calculate the number of periods the time that has passed correspond to.
- int64_t periodsToClaim = amassedMs / _periodicityInMs;
-
- // One period will be worked off by this call. Make sure that the number of
- // pending periods don't end up being negative (e.g. if this function is
- // called to often).
- if(periodsToClaim < 1)
- {
- periodsToClaim = 1;
- }
-
- // Update the last period mark without introducing any drifting.
- // Note that if this fuunction is called to often _lastPeriodMark can
- // refer to a time in the future which in turn will yield TimeToNextUpdate
- // that is greater than the periodicity
- for(int64_t i = 0; i < periodsToClaim; i++)
- {
- _lastPeriodMark += _periodicityInTicks;
- }
-
- // Update the total amount of missed periods note that we have processed
- // one period hence the - 1
- _missedPeriods += periodsToClaim - 1;
- return 0;
-}
-
-int32_t TimeScheduler::TimeToNextUpdate(
- int64_t& updateTimeInMS) const
-{
- rtc::CritScope cs(&_crit);
- // Missed periods means that the next UpdateScheduler() should happen
- // immediately.
- if(_missedPeriods > 0)
- {
- updateTimeInMS = 0;
- return 0;
- }
-
- // Calculate the time (in ms) that has past since last call to
- // UpdateScheduler()
- int64_t tickNow = rtc::TimeNanos();
- int64_t ticksSinceLastUpdate = tickNow - _lastPeriodMark;
- const int64_t millisecondsSinceLastUpdate =
- ticksSinceLastUpdate / rtc::kNumNanosecsPerMillisec;
-
- updateTimeInMS = _periodicityInMs - millisecondsSinceLastUpdate;
- updateTimeInMS = (updateTimeInMS < 0) ? 0 : updateTimeInMS;
- return 0;
-}
-} // namespace webrtc

Powered by Google App Engine
This is Rietveld 408576698