Cleanup of RtpTransportControllerSend.

This CL simplifies a lot of code that can be cleaned up after the merge
of RtpTransportControllerSend and SendSideCongestionController.

In particular, the role of CongestionControlHandler is reduced to only
handle the pacer pushback and stream pausing mechanism.

Bug: webrtc:9586
Change-Id: Idbc1e968efd35e6df6129bc307f6bc1db18d20f2
Reviewed-on: https://webrtc-review.googlesource.com/c/113947
Reviewed-by: Christoffer Rodbro <crodbro@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25994}
diff --git a/modules/congestion_controller/rtp/control_handler.h b/modules/congestion_controller/rtp/control_handler.h
index 6f15ca3..0ecc6b1 100644
--- a/modules/congestion_controller/rtp/control_handler.h
+++ b/modules/congestion_controller/rtp/control_handler.h
@@ -17,7 +17,6 @@
 #include "api/transport/network_types.h"
 #include "api/units/data_size.h"
 #include "api/units/time_delta.h"
-#include "modules/congestion_controller/include/network_changed_observer.h"
 #include "modules/pacing/paced_sender.h"
 #include "rtc_base/constructormagic.h"
 #include "rtc_base/sequenced_task_checker.h"
@@ -30,46 +29,27 @@
 // destruction unless members are properly ordered.
 class CongestionControlHandler {
  public:
-  CongestionControlHandler(NetworkChangedObserver* observer,
-                           PacedSender* pacer);
+  CongestionControlHandler();
   ~CongestionControlHandler();
 
-  void PostUpdates(NetworkControlUpdate update);
-
-  void OnNetworkAvailability(NetworkAvailability msg);
-  void OnOutstandingData(DataSize in_flight_data);
-  void OnPacerQueueUpdate(TimeDelta expected_queue_time);
-
-  absl::optional<TargetTransferRate> last_transfer_rate();
+  void SetTargetRate(TargetTransferRate new_target_rate);
+  void SetNetworkAvailability(bool network_available);
+  void SetPacerQueue(TimeDelta expected_queue_time);
+  absl::optional<TargetTransferRate> GetUpdate();
 
  private:
-  void SetPacerState(bool paused);
-  void OnNetworkInvalidation();
-  bool IsSendQueueFull() const;
-  bool HasNetworkParametersToReportChanged(int64_t bitrate_bps,
-                                           float loss_rate_ratio,
-                                           TimeDelta rtt);
-
-  bool HasNetworkParametersToReportChanged(int64_t bitrate_bps,
-                                           uint8_t fraction_loss,
-                                           int64_t rtt);
-  NetworkChangedObserver* observer_ = nullptr;
-  PacedSender* const pacer_;
-
-  absl::optional<TargetTransferRate> current_target_rate_msg_;
+  absl::optional<TargetTransferRate> last_incoming_;
+  absl::optional<TargetTransferRate> last_reported_;
   bool network_available_ = true;
-  bool pacer_paused_ = false;
-  int64_t last_reported_target_bitrate_bps_ = 0;
-  uint8_t last_reported_fraction_loss_ = 0;
-  int64_t last_reported_rtt_ms_ = 0;
+  bool encoder_paused_in_last_report_ = false;
+
   const bool pacer_pushback_experiment_;
   const bool disable_pacer_emergency_stop_;
-  uint32_t min_pushback_target_bitrate_bps_;
   int64_t pacer_expected_queue_ms_ = 0;
   double encoding_rate_ratio_ = 1.0;
 
   rtc::SequencedTaskChecker sequenced_checker_;
-  RTC_DISALLOW_IMPLICIT_CONSTRUCTORS(CongestionControlHandler);
+  RTC_DISALLOW_COPY_AND_ASSIGN(CongestionControlHandler);
 };
 }  // namespace webrtc
 #endif  // MODULES_CONGESTION_CONTROLLER_RTP_CONTROL_HANDLER_H_