| Index: webrtc/call/call.cc
|
| diff --git a/webrtc/call/call.cc b/webrtc/call/call.cc
|
| index e9838d9baad0acdadde8f33ddc12bb863068cc92..5fcacd16d0e541514061f1eda9d150f095a8ddad 100644
|
| --- a/webrtc/call/call.cc
|
| +++ b/webrtc/call/call.cc
|
| @@ -92,37 +92,34 @@ class RtpTransportControllerSend : public RtpTransportControllerSendInterface {
|
| public:
|
| RtpTransportControllerSend(Clock* clock, webrtc::RtcEventLog* event_log);
|
|
|
| - void InitCongestionControl(SendSideCongestionController::Observer* observer);
|
| + void RegisterNetworkObserver(
|
| + SendSideCongestionController::Observer* observer);
|
| +
|
| + // Implements RtpTransportControllerSendInterface
|
| PacketRouter* packet_router() override { return &packet_router_; }
|
| SendSideCongestionController* send_side_cc() override {
|
| - return send_side_cc_.get();
|
| + return &send_side_cc_;
|
| }
|
| TransportFeedbackObserver* transport_feedback_observer() override {
|
| - return send_side_cc_.get();
|
| + return &send_side_cc_;
|
| }
|
| - RtpPacketSender* packet_sender() override { return send_side_cc_->pacer(); }
|
| + RtpPacketSender* packet_sender() override { return send_side_cc_.pacer(); }
|
|
|
| private:
|
| - Clock* const clock_;
|
| - webrtc::RtcEventLog* const event_log_;
|
| PacketRouter packet_router_;
|
| - // Construction delayed until InitCongestionControl, since the
|
| - // CongestionController wants its observer as a construction time
|
| - // argument, and setting it later seems non-trivial.
|
| - std::unique_ptr<SendSideCongestionController> send_side_cc_;
|
| + SendSideCongestionController send_side_cc_;
|
| };
|
|
|
| RtpTransportControllerSend::RtpTransportControllerSend(
|
| Clock* clock,
|
| webrtc::RtcEventLog* event_log)
|
| - : clock_(clock), event_log_(event_log) {}
|
| + : send_side_cc_(clock, nullptr /* observer */, event_log, &packet_router_) {
|
| +}
|
|
|
| -void RtpTransportControllerSend::InitCongestionControl(
|
| +void RtpTransportControllerSend::RegisterNetworkObserver(
|
| SendSideCongestionController::Observer* observer) {
|
| // Must be called only once.
|
| - RTC_CHECK(!send_side_cc_);
|
| - send_side_cc_.reset(new SendSideCongestionController(
|
| - clock_, observer, event_log_, &packet_router_));
|
| + send_side_cc_.RegisterNetworkObserver(observer);
|
| }
|
|
|
| } // namespace
|
| @@ -310,7 +307,7 @@ class Call : public webrtc::Call,
|
|
|
| std::map<std::string, rtc::NetworkRoute> network_routes_;
|
|
|
| - std::unique_ptr<RtpTransportControllerSend> transport_send_;
|
| + std::unique_ptr<RtpTransportControllerSendInterface> transport_send_;
|
| VieRemb remb_;
|
| ReceiveSideCongestionController receive_side_cc_;
|
| const std::unique_ptr<SendDelayStats> video_send_delay_stats_;
|
| @@ -369,9 +366,8 @@ Call::Call(const Call::Config& config,
|
| configured_max_padding_bitrate_bps_(0),
|
| estimated_send_bitrate_kbps_counter_(clock_, nullptr, true),
|
| pacer_bitrate_kbps_counter_(clock_, nullptr, true),
|
| - transport_send_(std::move(transport_send)),
|
| remb_(clock_),
|
| - receive_side_cc_(clock_, &remb_, transport_send_->packet_router()),
|
| + receive_side_cc_(clock_, &remb_, transport_send->packet_router()),
|
| video_send_delay_stats_(new SendDelayStats(clock_)),
|
| start_ms_(clock_->TimeInMilliseconds()),
|
| worker_queue_("call_worker_queue") {
|
| @@ -385,7 +381,8 @@ Call::Call(const Call::Config& config,
|
| config.bitrate_config.start_bitrate_bps);
|
| }
|
| Trace::CreateTrace();
|
| - transport_send_->InitCongestionControl(this);
|
| + transport_send->RegisterNetworkObserver(this);
|
| + transport_send_ = std::move(transport_send);
|
| transport_send_->send_side_cc()->SignalNetworkState(kNetworkDown);
|
| transport_send_->send_side_cc()->SetBweBitrates(
|
| config_.bitrate_config.min_bitrate_bps,
|
|
|