Remove ChannelSendState

Also remove an unnecessary call to ACM::InitializeReceiver().

Bug: webrtc:9801
Change-Id: I68034f2673f47ecf7dcf1a3be198f240fea54f82
Reviewed-on: https://webrtc-review.googlesource.com/c/111251
Reviewed-by: Niels Moller <nisse@webrtc.org>
Commit-Queue: Fredrik Solenberg <solenberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25693}
diff --git a/audio/channel_send.cc b/audio/channel_send.cc
index 8126adc..001fd6c 100644
--- a/audio/channel_send.cc
+++ b/audio/channel_send.cc
@@ -77,40 +77,6 @@
 class TransportSequenceNumberProxy;
 class VoERtcpObserver;
 
-// Helper class to simplify locking scheme for members that are accessed from
-// multiple threads.
-// Example: a member can be set on thread T1 and read by an internal audio
-// thread T2. Accessing the member via this class ensures that we are
-// safe and also avoid TSan v2 warnings.
-class ChannelSendState {
- public:
-  struct State {
-    bool sending = false;
-  };
-
-  ChannelSendState() {}
-  virtual ~ChannelSendState() {}
-
-  void Reset() {
-    rtc::CritScope lock(&lock_);
-    state_ = State();
-  }
-
-  State Get() const {
-    rtc::CritScope lock(&lock_);
-    return state_;
-  }
-
-  void SetSending(bool enable) {
-    rtc::CritScope lock(&lock_);
-    state_.sending = enable;
-  }
-
- private:
-  rtc::CriticalSection lock_;
-  State state_;
-};
-
 class ChannelSend
     : public ChannelSendInterface,
       public Transport,
@@ -142,7 +108,6 @@
                          modifier) override;
 
   // API methods
-
   void StartSend() override;
   void StopSend() override;
 
@@ -152,7 +117,6 @@
 
   // Network
   void RegisterTransport(Transport* transport) override;
-
   bool ReceivedRTCPPacket(const uint8_t* data, size_t length) override;
 
   // Muting, Volume and Level.
@@ -171,7 +135,6 @@
 
   // RTP+RTCP
   void SetLocalSSRC(uint32_t ssrc) override;
-
   void SetMid(const std::string& mid, int extension_id) override;
   void SetExtmapAllowMixed(bool extmap_allow_mixed) override;
   void SetSendAudioLevelIndicationStatus(bool enable, int id) override;
@@ -231,8 +194,6 @@
                const PacketOptions& packet_options) override;
   bool SendRtcp(const uint8_t* data, size_t len) override;
 
-  bool Sending() const { return channel_state_.Get().sending; }
-
   // From OverheadObserver in the RTP/RTCP module
   void OnOverheadChanged(size_t overhead_bytes_per_packet) override;
 
@@ -286,7 +247,7 @@
   rtc::CriticalSection _callbackCritSect;
   rtc::CriticalSection volume_settings_critsect_;
 
-  ChannelSendState channel_state_;
+  bool sending_ = false;
 
   RtcEventLog* const event_log_;
 
@@ -802,13 +763,8 @@
     RTC_DLOG(LS_INFO) << "Not setting media_transport_ rate observers.";
   }
 
-  channel_state_.Reset();
-
   _moduleProcessThreadPtr->RegisterModule(_rtpRtcpModule.get(), RTC_FROM_HERE);
 
-  int error = audio_coding_->InitializeReceiver();
-  RTC_DCHECK_EQ(0, error);
-
   // Ensure that RTCP is enabled by default for the created channel.
   // Note that, the module will keep generating RTCP until it is explicitly
   // disabled by the user.
@@ -817,7 +773,7 @@
   // RTCP is enabled by default.
   _rtpRtcpModule->SetRTCPStatus(RtcpMode::kCompound);
 
-  error = audio_coding_->RegisterTransportCallback(this);
+  int error = audio_coding_->RegisterTransportCallback(this);
   RTC_DCHECK_EQ(0, error);
 }
 
@@ -835,14 +791,12 @@
 
   if (_moduleProcessThreadPtr)
     _moduleProcessThreadPtr->DeRegisterModule(_rtpRtcpModule.get());
-
-  RTC_DCHECK(!channel_state_.Get().sending);
 }
 
 void ChannelSend::StartSend() {
   RTC_DCHECK(worker_thread_checker_.CalledOnValidThread());
-  RTC_DCHECK(!channel_state_.Get().sending);
-  channel_state_.SetSending(true);
+  RTC_DCHECK(!sending_);
+  sending_ = true;
 
   // Resume the previous sequence number which was reset by StopSend(). This
   // needs to be done before |sending| is set to true on the RTP/RTCP module.
@@ -861,10 +815,10 @@
 
 void ChannelSend::StopSend() {
   RTC_DCHECK(worker_thread_checker_.CalledOnValidThread());
-  if (!channel_state_.Get().sending) {
+  if (!sending_) {
     return;
   }
-  channel_state_.SetSending(false);
+  sending_ = false;
 
   // Post a task to the encoder thread which sets an event when the task is
   // executed. We know that no more encoding tasks will be added to the task
@@ -1058,7 +1012,7 @@
   RTC_DCHECK_GE(255, event);
   RTC_DCHECK_LE(0, duration_ms);
   RTC_DCHECK_GE(65535, duration_ms);
-  if (!Sending()) {
+  if (!sending_) {
     return false;
   }
   if (_rtpRtcpModule->SendTelephoneEventOutband(
@@ -1092,7 +1046,7 @@
 
 void ChannelSend::SetLocalSSRC(uint32_t ssrc) {
   RTC_DCHECK(worker_thread_checker_.CalledOnValidThread());
-  RTC_DCHECK(!channel_state_.Get().sending);
+  RTC_DCHECK(!sending_);
 
   if (media_transport_) {
     rtc::CritScope cs(&media_transport_lock_);