From ba08a140da6cee478c62cf61e857cfee1647bf95 Mon Sep 17 00:00:00 2001 From: tommi Date: Tue, 28 Feb 2017 08:25:11 -0800 Subject: [PATCH] Remove saturation warning support from TransmitMixer. BUG=none Review-Url: https://codereview.webrtc.org/2720253002 Cr-Commit-Position: refs/heads/master@{#16913} --- webrtc/voice_engine/include/voe_errors.h | 1 - .../test/cmd_test/voe_cmd_test.cc | 2 - webrtc/voice_engine/transmit_mixer.cc | 46 ++++--------------- webrtc/voice_engine/transmit_mixer.h | 9 +++- 4 files changed, 17 insertions(+), 41 deletions(-) diff --git a/webrtc/voice_engine/include/voe_errors.h b/webrtc/voice_engine/include/voe_errors.h index 645774de25..f48319e225 100644 --- a/webrtc/voice_engine/include/voe_errors.h +++ b/webrtc/voice_engine/include/voe_errors.h @@ -80,7 +80,6 @@ #define VE_RECEIVE_SOCKETS_CONFLICT 8105 #define VE_SEND_SOCKETS_CONFLICT 8106 #define VE_TYPING_NOISE_WARNING 8107 -#define VE_SATURATION_WARNING 8108 #define VE_NOISE_WARNING 8109 #define VE_CANNOT_GET_SEND_CODEC 8110 #define VE_CANNOT_GET_REC_CODEC 8111 diff --git a/webrtc/voice_engine/test/cmd_test/voe_cmd_test.cc b/webrtc/voice_engine/test/cmd_test/voe_cmd_test.cc index 8f933f4aaa..141649d60b 100644 --- a/webrtc/voice_engine/test/cmd_test/voe_cmd_test.cc +++ b/webrtc/voice_engine/test/cmd_test/voe_cmd_test.cc @@ -81,8 +81,6 @@ void MyObserver::CallbackOnError(int channel, int err_code) { printf(" RUNTIME PLAY WARNING \n"); } else if (err_code == VE_RUNTIME_REC_WARNING) { printf(" RUNTIME RECORD WARNING \n"); - } else if (err_code == VE_SATURATION_WARNING) { - printf(" SATURATION WARNING \n"); } else if (err_code == VE_RUNTIME_PLAY_ERROR) { printf(" RUNTIME PLAY ERROR \n"); } else if (err_code == VE_RUNTIME_REC_ERROR) { diff --git a/webrtc/voice_engine/transmit_mixer.cc b/webrtc/voice_engine/transmit_mixer.cc index 7dbe380de9..ae9f0f9034 100644 --- a/webrtc/voice_engine/transmit_mixer.cc +++ b/webrtc/voice_engine/transmit_mixer.cc @@ -26,14 +26,13 @@ namespace webrtc { namespace voe { +#if WEBRTC_VOICE_ENGINE_TYPING_DETECTION // TODO(ajm): The thread safety of this is dubious... -void -TransmitMixer::OnPeriodicProcess() +void TransmitMixer::OnPeriodicProcess() { WEBRTC_TRACE(kTraceStream, kTraceVoice, VoEId(_instanceId, -1), "TransmitMixer::OnPeriodicProcess()"); -#if WEBRTC_VOICE_ENGINE_TYPING_DETECTION bool send_typing_noise_warning = false; bool typing_noise_detected = false; { @@ -64,32 +63,8 @@ TransmitMixer::OnPeriodicProcess() } } } -#endif // WEBRTC_VOICE_ENGINE_TYPING_DETECTION - - bool saturationWarning = false; - { - // Modify |_saturationWarning| under lock to avoid conflict with write op - // in ProcessAudio and also ensure that we don't hold the lock during the - // callback. - rtc::CritScope cs(&_critSect); - saturationWarning = _saturationWarning; - if (_saturationWarning) - _saturationWarning = false; - } - - if (saturationWarning) - { - rtc::CritScope cs(&_callbackCritSect); - if (_voiceEngineObserverPtr) - { - WEBRTC_TRACE(kTraceInfo, kTraceVoice, VoEId(_instanceId, -1), - "TransmitMixer::OnPeriodicProcess() =>" - " CallbackOnError(VE_SATURATION_WARNING)"); - _voiceEngineObserverPtr->CallbackOnError(-1, VE_SATURATION_WARNING); - } - } } - +#endif // WEBRTC_VOICE_ENGINE_TYPING_DETECTION void TransmitMixer::PlayNotification(int32_t id, uint32_t durationMs) @@ -176,12 +151,14 @@ TransmitMixer::Destroy(TransmitMixer*& mixer) } TransmitMixer::TransmitMixer(uint32_t instanceId) : - _monitorModule(this), // Avoid conflict with other channels by adding 1024 - 1026, // won't use as much as 1024 channels. _filePlayerId(instanceId + 1024), _fileRecorderId(instanceId + 1025), _fileCallRecorderId(instanceId + 1026), +#if WEBRTC_VOICE_ENGINE_TYPING_DETECTION + _monitorModule(this), +#endif _instanceId(instanceId) { WEBRTC_TRACE(kTraceMemory, kTraceVoice, VoEId(_instanceId, -1), @@ -192,10 +169,10 @@ TransmitMixer::~TransmitMixer() { WEBRTC_TRACE(kTraceMemory, kTraceVoice, VoEId(_instanceId, -1), "TransmitMixer::~TransmitMixer() - dtor"); +#if WEBRTC_VOICE_ENGINE_TYPING_DETECTION if (_processThreadPtr) - { _processThreadPtr->DeRegisterModule(&_monitorModule); - } +#endif { rtc::CritScope cs(&_critSect); if (file_recorder_) { @@ -225,8 +202,9 @@ TransmitMixer::SetEngineInformation(ProcessThread& processThread, _engineStatisticsPtr = &engineStatistics; _channelManagerPtr = &channelManager; +#if WEBRTC_VOICE_ENGINE_TYPING_DETECTION _processThreadPtr->RegisterModule(&_monitorModule); - +#endif return 0; } @@ -1077,10 +1055,6 @@ void TransmitMixer::ProcessAudio(int delay_ms, int clock_drift, // Store new capture level. Only updated when analog AGC is enabled. _captureLevel = agc->stream_analog_level(); - - rtc::CritScope cs(&_critSect); - // Triggers a callback in OnPeriodicProcess(). - _saturationWarning |= agc->stream_is_saturated(); } #if WEBRTC_VOICE_ENGINE_TYPING_DETECTION diff --git a/webrtc/voice_engine/transmit_mixer.h b/webrtc/voice_engine/transmit_mixer.h index d7ad473a1a..5353f97f3e 100644 --- a/webrtc/voice_engine/transmit_mixer.h +++ b/webrtc/voice_engine/transmit_mixer.h @@ -132,8 +132,10 @@ public: virtual ~TransmitMixer(); +#if WEBRTC_VOICE_ENGINE_TYPING_DETECTION // Periodic callback from the MonitorModule. void OnPeriodicProcess(); +#endif // FileCallback void PlayNotification(const int32_t id, @@ -161,7 +163,11 @@ public: bool IsStereoChannelSwappingEnabled(); protected: +#if WEBRTC_VOICE_ENGINE_TYPING_DETECTION TransmitMixer() : _monitorModule(this) {} +#else + TransmitMixer() = default; +#endif private: TransmitMixer(uint32_t instanceId); @@ -194,7 +200,6 @@ private: ProcessThread* _processThreadPtr = nullptr; // owns - MonitorModule _monitorModule; AudioFrame _audioFrame; PushResampler resampler_; // ADM sample rate -> mixing rate std::unique_ptr file_player_; @@ -212,11 +217,11 @@ private: rtc::CriticalSection _callbackCritSect; #if WEBRTC_VOICE_ENGINE_TYPING_DETECTION + MonitorModule _monitorModule; webrtc::TypingDetection _typingDetection; bool _typingNoiseWarningPending = false; bool _typingNoiseDetected = false; #endif - bool _saturationWarning = false; int _instanceId = 0; bool _mixFileWithMicrophone = false;