From 30564a67eff0de4f186e6a23ed700caba5a2b19d Mon Sep 17 00:00:00 2001 From: Ken Cooke Date: Thu, 31 Oct 2019 14:50:52 -0700 Subject: [PATCH 1/2] Only log a single "AEC not supported" warning per audio device configuration --- libraries/audio-client/src/AudioClient.cpp | 29 ++++++++++------------ 1 file changed, 13 insertions(+), 16 deletions(-) diff --git a/libraries/audio-client/src/AudioClient.cpp b/libraries/audio-client/src/AudioClient.cpp index d8741e4aa7..c20fb9da8c 100644 --- a/libraries/audio-client/src/AudioClient.cpp +++ b/libraries/audio-client/src/AudioClient.cpp @@ -1187,12 +1187,12 @@ void AudioClient::processWebrtcFarEnd(const int16_t* samples, int numFrames, int const webrtc::StreamConfig streamConfig = webrtc::StreamConfig(sampleRate, numChannels); const int numChunk = (int)streamConfig.num_frames(); - if (sampleRate > WEBRTC_SAMPLE_RATE_MAX) { - qCWarning(audioclient) << "WebRTC does not support" << sampleRate << "output sample rate."; - return; - } - if (numChannels > WEBRTC_CHANNELS_MAX) { - qCWarning(audioclient) << "WebRTC does not support" << numChannels << "output channels."; + static int32_t lastWarningHash = 0; + if (sampleRate > WEBRTC_SAMPLE_RATE_MAX || numChannels > WEBRTC_CHANNELS_MAX) { + if (lastWarningHash != ((sampleRate << 8) | numChannels)) { + lastWarningHash = ((sampleRate << 8) | numChannels); + qCWarning(audioclient) << "AEC not unsupported for output format: sampleRate =" << sampleRate << "numChannels =" << numChannels; + } return; } @@ -1228,17 +1228,14 @@ void AudioClient::processWebrtcNearEnd(int16_t* samples, int numFrames, int numC const webrtc::StreamConfig streamConfig = webrtc::StreamConfig(sampleRate, numChannels); const int numChunk = (int)streamConfig.num_frames(); + assert(numFrames == chunk); // WebRTC requires exactly 10ms of input - if (sampleRate > WEBRTC_SAMPLE_RATE_MAX) { - qCWarning(audioclient) << "WebRTC does not support" << sampleRate << "input sample rate."; - return; - } - if (numChannels > WEBRTC_CHANNELS_MAX) { - qCWarning(audioclient) << "WebRTC does not support" << numChannels << "input channels."; - return; - } - if (numFrames != numChunk) { - qCWarning(audioclient) << "WebRTC requires exactly 10ms of input."; + static int32_t lastWarningHash = 0; + if (sampleRate > WEBRTC_SAMPLE_RATE_MAX || numChannels > WEBRTC_CHANNELS_MAX) { + if (lastWarningHash != ((sampleRate << 8) | numChannels)) { + lastWarningHash = ((sampleRate << 8) | numChannels); + qCWarning(audioclient) << "AEC not unsupported for input format: sampleRate =" << sampleRate << "numChannels =" << numChannels; + } return; } From 3cdf25f2bc867acabe1dbca678c4d5607599622d Mon Sep 17 00:00:00 2001 From: Ken Cooke Date: Fri, 1 Nov 2019 07:36:35 -0700 Subject: [PATCH 2/2] Fix compiler warning (unused variable in Release build) --- libraries/audio-client/src/AudioClient.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/libraries/audio-client/src/AudioClient.cpp b/libraries/audio-client/src/AudioClient.cpp index c20fb9da8c..d6faea4396 100644 --- a/libraries/audio-client/src/AudioClient.cpp +++ b/libraries/audio-client/src/AudioClient.cpp @@ -1227,8 +1227,7 @@ void AudioClient::processWebrtcFarEnd(const int16_t* samples, int numFrames, int void AudioClient::processWebrtcNearEnd(int16_t* samples, int numFrames, int numChannels, int sampleRate) { const webrtc::StreamConfig streamConfig = webrtc::StreamConfig(sampleRate, numChannels); - const int numChunk = (int)streamConfig.num_frames(); - assert(numFrames == chunk); // WebRTC requires exactly 10ms of input + assert(numFrames == (int)streamConfig.num_frames()); // WebRTC requires exactly 10ms of input static int32_t lastWarningHash = 0; if (sampleRate > WEBRTC_SAMPLE_RATE_MAX || numChannels > WEBRTC_CHANNELS_MAX) {