From 97cd65cf80b26361bbef7380d945710ad76d4fbb Mon Sep 17 00:00:00 2001 From: Stephen Birarda Date: Wed, 10 Feb 2016 15:07:45 -0800 Subject: [PATCH] don't use usecTimestampNow for per second actions --- assignment-client/src/audio/AudioMixer.cpp | 8 ++++---- assignment-client/src/audio/AudioMixer.h | 2 -- libraries/audio/src/AudioConstants.h | 4 ++-- 3 files changed, 6 insertions(+), 8 deletions(-) diff --git a/assignment-client/src/audio/AudioMixer.cpp b/assignment-client/src/audio/AudioMixer.cpp index 242b0b0d7a..51bcece15f 100644 --- a/assignment-client/src/audio/AudioMixer.cpp +++ b/assignment-client/src/audio/AudioMixer.cpp @@ -82,7 +82,6 @@ AudioMixer::AudioMixer(ReceivedMessage& message) : _performanceThrottlingRatio(0.0f), _attenuationPerDoublingInDistance(DEFAULT_ATTENUATION_PER_DOUBLING_IN_DISTANCE), _noiseMutingThreshold(DEFAULT_NOISE_MUTING_THRESHOLD), - _lastPerSecondCallbackTime(usecTimestampNow()), _sendAudioStreamStats(false), _datagramsReadPerCallStats(0, READ_DATAGRAMS_STATS_WINDOW_SECONDS), _timeSpentPerCallStats(0, READ_DATAGRAMS_STATS_WINDOW_SECONDS), @@ -689,10 +688,11 @@ void AudioMixer::broadcastMixes() { ++framesSinceCutoffEvent; } - quint64 now = usecTimestampNow(); - if (now - _lastPerSecondCallbackTime > USECS_PER_SECOND) { + static const int FRAMES_PER_SECOND = int(ceilf(1.0f / AudioConstants::NETWORK_FRAME_SECS)); + + // check if it has been approximately one second since our last call to perSecondActions + if (nextFrame % FRAMES_PER_SECOND == 0) { perSecondActions(); - _lastPerSecondCallbackTime = now; } nodeList->eachNode([&](const SharedNodePointer& node) { diff --git a/assignment-client/src/audio/AudioMixer.h b/assignment-client/src/audio/AudioMixer.h index 0407c2860c..3a8dfad348 100644 --- a/assignment-client/src/audio/AudioMixer.h +++ b/assignment-client/src/audio/AudioMixer.h @@ -113,8 +113,6 @@ private: static bool _printStreamStats; static bool _enableFilter; - quint64 _lastPerSecondCallbackTime; - bool _sendAudioStreamStats; // stats diff --git a/libraries/audio/src/AudioConstants.h b/libraries/audio/src/AudioConstants.h index d5fd3f15e7..67a3f8c6ff 100644 --- a/libraries/audio/src/AudioConstants.h +++ b/libraries/audio/src/AudioConstants.h @@ -27,8 +27,8 @@ namespace AudioConstants { const int NETWORK_FRAME_SAMPLES_STEREO = NETWORK_FRAME_BYTES_STEREO / sizeof(AudioSample); const int NETWORK_FRAME_BYTES_PER_CHANNEL = 512; const int NETWORK_FRAME_SAMPLES_PER_CHANNEL = NETWORK_FRAME_BYTES_PER_CHANNEL / sizeof(AudioSample); - const float NETWORK_FRAME_MSECS = (AudioConstants::NETWORK_FRAME_SAMPLES_PER_CHANNEL - / (float)AudioConstants::SAMPLE_RATE) * 1000.0f; + const float NETWORK_FRAME_SECS = (AudioConstants::NETWORK_FRAME_SAMPLES_PER_CHANNEL / float(AudioConstants::SAMPLE_RATE)); + const float NETWORK_FRAME_MSECS = NETWORK_FRAME_SECS * 1000.0f; // be careful with overflows when using this constant const int NETWORK_FRAME_USECS = static_cast(NETWORK_FRAME_MSECS * 1000.0f);