diff --git a/interface/src/audio/AudioScope.h b/interface/src/audio/AudioScope.h index df902fe7cd..cc9367e2d5 100644 --- a/interface/src/audio/AudioScope.h +++ b/interface/src/audio/AudioScope.h @@ -75,4 +75,4 @@ private: }; -#endif // hifi_AudioScope_h \ No newline at end of file +#endif // hifi_AudioScope_h diff --git a/libraries/audio-client/src/AudioClient.cpp b/libraries/audio-client/src/AudioClient.cpp index e1410d3304..6e068e0635 100644 --- a/libraries/audio-client/src/AudioClient.cpp +++ b/libraries/audio-client/src/AudioClient.cpp @@ -85,16 +85,9 @@ AudioClient::AudioClient() : _isStereoInput(false), _outputStarveDetectionStartTimeMsec(0), _outputStarveDetectionCount(0), - _outputBufferSizeFrames("audioOutputBufferSize", - DEFAULT_MAX_FRAMES_OVER_DESIRED), -#ifdef Q_OS_ANDROID - _outputStarveDetectionEnabled("audioOutputStarveDetectionEnabled", - false), -#else + _outputBufferSizeFrames("audioOutputBufferSize", DEFAULT_AUDIO_OUTPUT_BUFFER_SIZE_FRAMES), _outputStarveDetectionEnabled("audioOutputStarveDetectionEnabled", DEFAULT_AUDIO_OUTPUT_STARVE_DETECTION_ENABLED), -#endif - _outputStarveDetectionPeriodMsec("audioOutputStarveDetectionPeriod", DEFAULT_AUDIO_OUTPUT_STARVE_DETECTION_PERIOD), _outputStarveDetectionThreshold("audioOutputStarveDetectionThreshold", @@ -1090,19 +1083,23 @@ void AudioClient::outputNotify() { if (recentUnfulfilled > 0) { if (_outputStarveDetectionEnabled.get()) { quint64 now = usecTimestampNow() / 1000; - quint64 dt = now - _outputStarveDetectionStartTimeMsec; + int dt = (int)(now - _outputStarveDetectionStartTimeMsec); if (dt > _outputStarveDetectionPeriodMsec.get()) { _outputStarveDetectionStartTimeMsec = now; _outputStarveDetectionCount = 0; } else { _outputStarveDetectionCount += recentUnfulfilled; if (_outputStarveDetectionCount > _outputStarveDetectionThreshold.get()) { - int newOutputBufferSizeFrames = _outputBufferSizeFrames.get() + 1; - qDebug() << "Starve detection threshold met, increasing buffer size to " << newOutputBufferSizeFrames; - setOutputBufferSize(newOutputBufferSizeFrames); - _outputStarveDetectionStartTimeMsec = now; _outputStarveDetectionCount = 0; + + int oldOutputBufferSizeFrames = _outputBufferSizeFrames.get(); + int newOutputBufferSizeFrames = oldOutputBufferSizeFrames + 1; + setOutputBufferSize(newOutputBufferSizeFrames); + newOutputBufferSizeFrames = _outputBufferSizeFrames.get(); + if (newOutputBufferSizeFrames > oldOutputBufferSizeFrames) { + qDebug() << "Starve detection threshold met, increasing buffer size to " << newOutputBufferSizeFrames; + } } } } diff --git a/libraries/audio-client/src/AudioClient.h b/libraries/audio-client/src/AudioClient.h index f75843df5f..7ac445a7fc 100644 --- a/libraries/audio-client/src/AudioClient.h +++ b/libraries/audio-client/src/AudioClient.h @@ -57,7 +57,11 @@ static const int NUM_AUDIO_CHANNELS = 2; static const int DEFAULT_AUDIO_OUTPUT_BUFFER_SIZE_FRAMES = 3; static const int MIN_AUDIO_OUTPUT_BUFFER_SIZE_FRAMES = 1; static const int MAX_AUDIO_OUTPUT_BUFFER_SIZE_FRAMES = 20; -static const int DEFAULT_AUDIO_OUTPUT_STARVE_DETECTION_ENABLED = true; +#if defined(Q_OS_ANDROID) || defined(Q_OS_WIN) + static const int DEFAULT_AUDIO_OUTPUT_STARVE_DETECTION_ENABLED = false; +#else + static const int DEFAULT_AUDIO_OUTPUT_STARVE_DETECTION_ENABLED = true; +#endif static const int DEFAULT_AUDIO_OUTPUT_STARVE_DETECTION_THRESHOLD = 3; static const quint64 DEFAULT_AUDIO_OUTPUT_STARVE_DETECTION_PERIOD = 10 * 1000; // 10 Seconds