Remove saturation warning support from TransmitMixer.

BUG=none

Review-Url: https://codereview.webrtc.org/2720253002
Cr-Original-Commit-Position: refs/heads/master@{#16913}
Cr-Mirrored-From: https://chromium.googlesource.com/external/webrtc
Cr-Mirrored-Commit: ba08a140da6cee478c62cf61e857cfee1647bf95
diff --git a/voice_engine/include/voe_errors.h b/voice_engine/include/voe_errors.h
index 645774d..f48319e 100644
--- a/voice_engine/include/voe_errors.h
+++ b/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/voice_engine/test/cmd_test/voe_cmd_test.cc b/voice_engine/test/cmd_test/voe_cmd_test.cc
index 8f933f4..141649d 100644
--- a/voice_engine/test/cmd_test/voe_cmd_test.cc
+++ b/voice_engine/test/cmd_test/voe_cmd_test.cc
@@ -81,8 +81,6 @@
     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/voice_engine/transmit_mixer.cc b/voice_engine/transmit_mixer.cc
index 7dbe380..ae9f0f9 100644
--- a/voice_engine/transmit_mixer.cc
+++ b/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 @@
             }
         }
     }
-#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::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 @@
 {
     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 @@
     _engineStatisticsPtr = &engineStatistics;
     _channelManagerPtr = &channelManager;
 
+#if WEBRTC_VOICE_ENGINE_TYPING_DETECTION
     _processThreadPtr->RegisterModule(&_monitorModule);
-
+#endif
     return 0;
 }
 
@@ -1077,10 +1055,6 @@
 
   // 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/voice_engine/transmit_mixer.h b/voice_engine/transmit_mixer.h
index d7ad473..5353f97 100644
--- a/voice_engine/transmit_mixer.h
+++ b/voice_engine/transmit_mixer.h
@@ -132,8 +132,10 @@
 
     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 @@
   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 @@
     ProcessThread* _processThreadPtr = nullptr;
 
     // owns
-    MonitorModule<TransmitMixer> _monitorModule;
     AudioFrame _audioFrame;
     PushResampler<int16_t> resampler_;  // ADM sample rate -> mixing rate
     std::unique_ptr<FilePlayer> file_player_;
@@ -212,11 +217,11 @@
     rtc::CriticalSection _callbackCritSect;
 
 #if WEBRTC_VOICE_ENGINE_TYPING_DETECTION
+    MonitorModule<TransmitMixer> _monitorModule;
     webrtc::TypingDetection _typingDetection;
     bool _typingNoiseWarningPending = false;
     bool _typingNoiseDetected = false;
 #endif
-    bool _saturationWarning = false;
 
     int _instanceId = 0;
     bool _mixFileWithMicrophone = false;