Removing access to pacer in rtp controller.

Bug: webrt:8415
Change-Id: I1f318c41c3913acb573affb4520e128bef7efa02
Reviewed-on: https://webrtc-review.googlesource.com/53900
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22049}
diff --git a/audio/audio_send_stream.cc b/audio/audio_send_stream.cc
index 5de079b..16744f9 100644
--- a/audio/audio_send_stream.cc
+++ b/audio/audio_send_stream.cc
@@ -19,7 +19,6 @@
 #include "audio/conversion.h"
 #include "call/rtp_transport_controller_send_interface.h"
 #include "modules/audio_coding/codecs/cng/audio_encoder_cng.h"
-#include "modules/pacing/paced_sender.h"
 #include "rtc_base/checks.h"
 #include "rtc_base/event.h"
 #include "rtc_base/function_view.h"
diff --git a/call/call.cc b/call/call.cc
index 338a135..ddc43cb 100644
--- a/call/call.cc
+++ b/call/call.cc
@@ -464,7 +464,8 @@
   // We have to attach the pacer to the pacer thread before starting the
   // module process thread to avoid a race accessing the process thread
   // both from the process thread and the pacer thread.
-  pacer_thread_->RegisterModule(transport_send_->pacer(), RTC_FROM_HERE);
+  pacer_thread_->RegisterModule(transport_send_->GetPacerModule(),
+                                RTC_FROM_HERE);
   pacer_thread_->RegisterModule(
       receive_side_cc_.GetRemoteBitrateEstimator(true), RTC_FROM_HERE);
   pacer_thread_->Start();
@@ -491,7 +492,7 @@
   // the pacer thread is stopped.
   module_process_thread_->DeRegisterModule(transport_send_->GetModule());
   pacer_thread_->Stop();
-  pacer_thread_->DeRegisterModule(transport_send_->pacer());
+  pacer_thread_->DeRegisterModule(transport_send_->GetPacerModule());
   pacer_thread_->DeRegisterModule(
       receive_side_cc_.GetRemoteBitrateEstimator(true));
   module_process_thread_->DeRegisterModule(&receive_side_cc_);
diff --git a/call/fake_rtp_transport_controller_send.h b/call/fake_rtp_transport_controller_send.h
index b797a35..ed671f3 100644
--- a/call/fake_rtp_transport_controller_send.h
+++ b/call/fake_rtp_transport_controller_send.h
@@ -37,8 +37,6 @@
     return send_side_cc_;
   }
 
-  PacedSender* pacer() override { return paced_sender_; }
-
   RtpPacketSender* packet_sender() override { return paced_sender_; }
 
   const RtpKeepAliveConfig& keepalive_config() const override {
@@ -52,6 +50,13 @@
     keepalive_ = keepalive_config;
   }
 
+  Module* GetPacerModule() override { return paced_sender_; }
+  void SetPacingFactor(float pacing_factor) override {
+    paced_sender_->SetPacingFactor(pacing_factor);
+  }
+  void SetQueueTimeLimit(int limit_ms) override {
+    paced_sender_->SetQueueTimeLimit(limit_ms);
+  }
   Module* GetModule() override { return send_side_cc_; }
   CallStatsObserver* GetCallStatsObserver() override { return send_side_cc_; }
   void RegisterPacketFeedbackObserver(
diff --git a/call/rtp_transport_controller_send.cc b/call/rtp_transport_controller_send.cc
index f203c4e..70061c1 100644
--- a/call/rtp_transport_controller_send.cc
+++ b/call/rtp_transport_controller_send.cc
@@ -22,10 +22,6 @@
   return &packet_router_;
 }
 
-PacedSender* RtpTransportControllerSend::pacer() {
-  return &pacer_;
-}
-
 TransportFeedbackObserver*
 RtpTransportControllerSend::transport_feedback_observer() {
   return &send_side_cc_;
@@ -49,6 +45,15 @@
     const RtpKeepAliveConfig& config) {
   keepalive_ = config;
 }
+Module* RtpTransportControllerSend::GetPacerModule() {
+  return &pacer_;
+}
+void RtpTransportControllerSend::SetPacingFactor(float pacing_factor) {
+  pacer_.SetPacingFactor(pacing_factor);
+}
+void RtpTransportControllerSend::SetQueueTimeLimit(int limit_ms) {
+  pacer_.SetQueueTimeLimit(limit_ms);
+}
 Module* RtpTransportControllerSend::GetModule() {
   return &send_side_cc_;
 }
diff --git a/call/rtp_transport_controller_send.h b/call/rtp_transport_controller_send.h
index 2ae4ce6..d0bfa1c 100644
--- a/call/rtp_transport_controller_send.h
+++ b/call/rtp_transport_controller_send.h
@@ -30,11 +30,7 @@
 
   // Implements RtpTransportControllerSendInterface
   PacketRouter* packet_router() override;
-  // TODO(holmer): Temporarily exposed, should be removed and the
-  // appropriate methods should be added to this class instead.
-  // In addition the PacedSender should be driven by this class, either
-  // by owning the process thread, or later by using a task queue.
-  PacedSender* pacer() override;
+
   TransportFeedbackObserver* transport_feedback_observer() override;
   RtpPacketSender* packet_sender() override;
   const RtpKeepAliveConfig& keepalive_config() const override;
@@ -43,6 +39,9 @@
                                      int max_padding_bitrate_bps) override;
 
   void SetKeepAliveConfig(const RtpKeepAliveConfig& config);
+  Module* GetPacerModule() override;
+  void SetPacingFactor(float pacing_factor) override;
+  void SetQueueTimeLimit(int limit_ms) override;
   Module* GetModule() override;
   CallStatsObserver* GetCallStatsObserver() override;
   void RegisterPacketFeedbackObserver(
diff --git a/call/rtp_transport_controller_send_interface.h b/call/rtp_transport_controller_send_interface.h
index d8f58db..284aeec 100644
--- a/call/rtp_transport_controller_send_interface.h
+++ b/call/rtp_transport_controller_send_interface.h
@@ -58,7 +58,6 @@
  public:
   virtual ~RtpTransportControllerSendInterface() {}
   virtual PacketRouter* packet_router() = 0;
-  virtual PacedSender* pacer() = 0;
   virtual TransportFeedbackObserver* transport_feedback_observer() = 0;
 
   virtual RtpPacketSender* packet_sender() = 0;
@@ -76,6 +75,10 @@
   virtual void SetAllocatedSendBitrateLimits(int min_send_bitrate_bps,
                                              int max_padding_bitrate_bps) = 0;
 
+  virtual Module* GetPacerModule() = 0;
+  virtual void SetPacingFactor(float pacing_factor) = 0;
+  virtual void SetQueueTimeLimit(int limit_ms) = 0;
+
   virtual Module* GetModule() = 0;
   virtual CallStatsObserver* GetCallStatsObserver() = 0;
 
diff --git a/video/video_send_stream.cc b/video/video_send_stream.cc
index f49f5a0..a7b1dc5 100644
--- a/video/video_send_stream.cc
+++ b/video/video_send_stream.cc
@@ -838,9 +838,9 @@
     }
     if (alr_settings) {
       transport->EnablePeriodicAlrProbing(true);
-      transport->pacer()->SetPacingFactor(alr_settings->pacing_factor);
+      transport->SetPacingFactor(alr_settings->pacing_factor);
       configured_pacing_factor_ = alr_settings->pacing_factor;
-      transport->pacer()->SetQueueTimeLimit(alr_settings->max_paced_queue_time);
+      transport->SetQueueTimeLimit(alr_settings->max_paced_queue_time);
     }
   }
 
diff --git a/video/video_stream_encoder.cc b/video/video_stream_encoder.cc
index ddf4671..340bbf4 100644
--- a/video/video_stream_encoder.cc
+++ b/video/video_stream_encoder.cc
@@ -18,7 +18,6 @@
 #include "api/video/i420_buffer.h"
 #include "common_video/include/video_bitrate_allocator.h"
 #include "common_video/include/video_frame.h"
-#include "modules/pacing/paced_sender.h"
 #include "modules/video_coding/include/video_codec_initializer.h"
 #include "modules/video_coding/include/video_coding.h"
 #include "modules/video_coding/include/video_coding_defines.h"