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}
This commit is contained in:
Sebastian Jansson
2018-02-15 16:51:58 +01:00
committed by Commit Bot
parent 08ff1733fb
commit 4c1ffb86c0
8 changed files with 29 additions and 18 deletions

View File

@ -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"

View File

@ -464,7 +464,8 @@ Call::Call(const Call::Config& config,
// 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 @@ Call::~Call() {
// 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_);

View File

@ -37,8 +37,6 @@ class FakeRtpTransportControllerSend
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 @@ class FakeRtpTransportControllerSend
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(

View File

@ -22,10 +22,6 @@ PacketRouter* RtpTransportControllerSend::packet_router() {
return &packet_router_;
}
PacedSender* RtpTransportControllerSend::pacer() {
return &pacer_;
}
TransportFeedbackObserver*
RtpTransportControllerSend::transport_feedback_observer() {
return &send_side_cc_;
@ -49,6 +45,15 @@ void RtpTransportControllerSend::SetKeepAliveConfig(
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_;
}

View File

@ -30,11 +30,7 @@ class RtpTransportControllerSend : public RtpTransportControllerSendInterface {
// 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 @@ class RtpTransportControllerSend : public RtpTransportControllerSendInterface {
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(

View File

@ -58,7 +58,6 @@ class RtpTransportControllerSendInterface {
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 @@ class RtpTransportControllerSendInterface {
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;

View File

@ -838,9 +838,9 @@ VideoSendStreamImpl::VideoSendStreamImpl(
}
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);
}
}

View File

@ -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"