Deprecated BitrateController::CreateRtcpBandwidthObserver.

The RtcpBandwidthObserverImpl did not provide any features that a raw pointer does not have. deprecating it to simplify further refactoring down the line. Preferring raw pointer usage as it provides equivalent functionality in less code.


Bug: webrtc:8415
Change-Id: Id2c4c73a331835f124da8d308615ca2ce34b2d1b
Reviewed-on: https://webrtc-review.googlesource.com/22500
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Reviewed-by: Fredrik Solenberg <solenberg@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20712}
This commit is contained in:
Sebastian Jansson
2017-11-15 17:22:16 +01:00
committed by Commit Bot
parent 90657302be
commit 8d9c5406c7
13 changed files with 35 additions and 30 deletions

View File

@ -204,25 +204,28 @@ void AudioSendStream::ConfigureStream(
channel_proxy->SetSendAudioLevelIndicationStatus(new_ids.audio_level != 0, channel_proxy->SetSendAudioLevelIndicationStatus(new_ids.audio_level != 0,
new_ids.audio_level); new_ids.audio_level);
} }
// Transport sequence number bool transport_seq_num_id_changed =
if (first_time || new_ids.transport_sequence_number != old_ids.transport_sequence_number;
new_ids.transport_sequence_number != old_ids.transport_sequence_number) { if (first_time || transport_seq_num_id_changed) {
if (!first_time) { if (!first_time) {
channel_proxy->ResetSenderCongestionControlObjects(); channel_proxy->ResetSenderCongestionControlObjects();
stream->bandwidth_observer_.reset();
} }
if (new_ids.transport_sequence_number != 0) { RtcpBandwidthObserver* bandwidth_observer = nullptr;
bool has_transport_sequence_number = new_ids.transport_sequence_number != 0;
if (has_transport_sequence_number) {
channel_proxy->EnableSendTransportSequenceNumber( channel_proxy->EnableSendTransportSequenceNumber(
new_ids.transport_sequence_number); new_ids.transport_sequence_number);
// Probing in application limited region is only used in combination with
// send side congestion control, wich depends on feedback packets which
// requires transport sequence numbers to be enabled.
stream->transport_->send_side_cc()->EnablePeriodicAlrProbing(true); stream->transport_->send_side_cc()->EnablePeriodicAlrProbing(true);
stream->bandwidth_observer_.reset(stream->transport_->send_side_cc() bandwidth_observer =
->GetBitrateController() stream->transport_->send_side_cc()->GetBandwidthObserver();
->CreateRtcpBandwidthObserver());
} }
channel_proxy->RegisterSenderCongestionControlObjects( channel_proxy->RegisterSenderCongestionControlObjects(stream->transport_,
stream->transport_, stream->bandwidth_observer_.get()); bandwidth_observer);
} }
if (!ReconfigureSendCodec(stream, new_config)) { if (!ReconfigureSendCodec(stream, new_config)) {

View File

@ -111,7 +111,6 @@ class AudioSendStream final : public webrtc::AudioSendStream,
BitrateAllocator* const bitrate_allocator_; BitrateAllocator* const bitrate_allocator_;
RtpTransportControllerSendInterface* const transport_; RtpTransportControllerSendInterface* const transport_;
std::unique_ptr<RtcpBandwidthObserver> bandwidth_observer_;
rtc::CriticalSection packet_loss_tracker_cs_; rtc::CriticalSection packet_loss_tracker_cs_;
TransportFeedbackPacketLossTracker packet_loss_tracker_ TransportFeedbackPacketLossTracker packet_loss_tracker_

View File

@ -39,7 +39,7 @@ class BitrateControllerImpl : public BitrateController {
bool AvailableBandwidth(uint32_t* bandwidth) const override; bool AvailableBandwidth(uint32_t* bandwidth) const override;
RtcpBandwidthObserver* CreateRtcpBandwidthObserver() override; RTC_DEPRECATED RtcpBandwidthObserver* CreateRtcpBandwidthObserver() override;
// Deprecated // Deprecated
void SetStartBitrate(int start_bitrate_bps) override; void SetStartBitrate(int start_bitrate_bps) override;

View File

@ -73,7 +73,7 @@ class BitrateControllerTest : public ::testing::Test {
EXPECT_EQ(kStartBitrateBps, bitrate_observer_.last_bitrate_); EXPECT_EQ(kStartBitrateBps, bitrate_observer_.last_bitrate_);
controller_->SetMinMaxBitrate(kMinBitrateBps, kMaxBitrateBps); controller_->SetMinMaxBitrate(kMinBitrateBps, kMaxBitrateBps);
EXPECT_EQ(kStartBitrateBps, bitrate_observer_.last_bitrate_); EXPECT_EQ(kStartBitrateBps, bitrate_observer_.last_bitrate_);
bandwidth_observer_.reset(controller_->CreateRtcpBandwidthObserver()); bandwidth_observer_ = controller_.get();
} }
virtual void TearDown() { virtual void TearDown() {
@ -89,7 +89,7 @@ class BitrateControllerTest : public ::testing::Test {
webrtc::SimulatedClock clock_; webrtc::SimulatedClock clock_;
TestBitrateObserver bitrate_observer_; TestBitrateObserver bitrate_observer_;
std::unique_ptr<BitrateController> controller_; std::unique_ptr<BitrateController> controller_;
std::unique_ptr<RtcpBandwidthObserver> bandwidth_observer_; RtcpBandwidthObserver* bandwidth_observer_;
testing::NiceMock<webrtc::MockRtcEventLog> event_log_; testing::NiceMock<webrtc::MockRtcEventLog> event_log_;
}; };
@ -195,8 +195,7 @@ TEST_F(BitrateControllerTest, OneBitrateObserverTwoRtcpObservers) {
bandwidth_observer_->OnReceivedRtcpReceiverReport(report_blocks, 50, time_ms); bandwidth_observer_->OnReceivedRtcpReceiverReport(report_blocks, 50, time_ms);
time_ms += 500; time_ms += 500;
RtcpBandwidthObserver* second_bandwidth_observer = RtcpBandwidthObserver* second_bandwidth_observer = controller_.get();
controller_->CreateRtcpBandwidthObserver();
report_blocks = {CreateReportBlock(kSenderSsrc2, kMediaSsrc2, 0, 21)}; report_blocks = {CreateReportBlock(kSenderSsrc2, kMediaSsrc2, 0, 21)};
second_bandwidth_observer->OnReceivedRtcpReceiverReport( second_bandwidth_observer->OnReceivedRtcpReceiverReport(
report_blocks, 100, time_ms); report_blocks, 100, time_ms);
@ -273,7 +272,6 @@ TEST_F(BitrateControllerTest, OneBitrateObserverTwoRtcpObservers) {
// Min cap. // Min cap.
bandwidth_observer_->OnReceivedEstimatedBitrate(1000); bandwidth_observer_->OnReceivedEstimatedBitrate(1000);
EXPECT_EQ(100000, bitrate_observer_.last_bitrate_); EXPECT_EQ(100000, bitrate_observer_.last_bitrate_);
delete second_bandwidth_observer;
} }
TEST_F(BitrateControllerTest, OneBitrateObserverMultipleReportBlocks) { TEST_F(BitrateControllerTest, OneBitrateObserverMultipleReportBlocks) {

View File

@ -69,8 +69,10 @@ class BitrateController : public Module, public RtcpBandwidthObserver {
virtual ~BitrateController() {} virtual ~BitrateController() {}
// Deprecated, use raw pointer to BitrateController instance instead.
// Creates RtcpBandwidthObserver caller responsible to delete. // Creates RtcpBandwidthObserver caller responsible to delete.
virtual RtcpBandwidthObserver* CreateRtcpBandwidthObserver() = 0; RTC_DEPRECATED virtual RtcpBandwidthObserver*
CreateRtcpBandwidthObserver() = 0;
// Deprecated // Deprecated
virtual void SetStartBitrate(int start_bitrate_bps) = 0; virtual void SetStartBitrate(int start_bitrate_bps) = 0;

View File

@ -87,6 +87,7 @@ class SendSideCongestionController : public CallStatsObserver,
virtual void SetTransportOverhead(size_t transport_overhead_bytes_per_packet); virtual void SetTransportOverhead(size_t transport_overhead_bytes_per_packet);
virtual BitrateController* GetBitrateController() const; virtual BitrateController* GetBitrateController() const;
virtual RtcpBandwidthObserver* GetBandwidthObserver() const;
virtual int64_t GetPacerQueuingDelayMs() const; virtual int64_t GetPacerQueuingDelayMs() const;
virtual int64_t GetFirstPacketTimeMs() const; virtual int64_t GetFirstPacketTimeMs() const;

View File

@ -212,6 +212,11 @@ BitrateController* SendSideCongestionController::GetBitrateController() const {
return bitrate_controller_.get(); return bitrate_controller_.get();
} }
RtcpBandwidthObserver* SendSideCongestionController::GetBandwidthObserver()
const {
return bitrate_controller_.get();
}
RateLimiter* SendSideCongestionController::GetRetransmissionRateLimiter() { RateLimiter* SendSideCongestionController::GetRetransmissionRateLimiter() {
return retransmission_rate_limiter_.get(); return retransmission_rate_limiter_.get();
} }

View File

@ -54,8 +54,7 @@ class SendSideCongestionControllerTest : public ::testing::Test {
pacer_.reset(new NiceMock<MockPacedSender>()); pacer_.reset(new NiceMock<MockPacedSender>());
controller_.reset(new SendSideCongestionController( controller_.reset(new SendSideCongestionController(
&clock_, &observer_, &event_log_, pacer_.get())); &clock_, &observer_, &event_log_, pacer_.get()));
bandwidth_observer_.reset( bandwidth_observer_ = controller_->GetBandwidthObserver();
controller_->GetBitrateController()->CreateRtcpBandwidthObserver());
// Set the initial bitrate estimate and expect the |observer| and |pacer_| // Set the initial bitrate estimate and expect the |observer| and |pacer_|
// to be updated. // to be updated.
@ -135,7 +134,7 @@ class SendSideCongestionControllerTest : public ::testing::Test {
StrictMock<MockCongestionObserver> observer_; StrictMock<MockCongestionObserver> observer_;
TargetBitrateObserver target_bitrate_observer_; TargetBitrateObserver target_bitrate_observer_;
NiceMock<MockRtcEventLog> event_log_; NiceMock<MockRtcEventLog> event_log_;
std::unique_ptr<RtcpBandwidthObserver> bandwidth_observer_; RtcpBandwidthObserver* bandwidth_observer_;
PacketRouter packet_router_; PacketRouter packet_router_;
std::unique_ptr<NiceMock<MockPacedSender>> pacer_; std::unique_ptr<NiceMock<MockPacedSender>> pacer_;
std::unique_ptr<SendSideCongestionController> controller_; std::unique_ptr<SendSideCongestionController> controller_;

View File

@ -28,7 +28,7 @@ RembBweSender::RembBweSender(int kbps, BitrateObserver* observer, Clock* clock)
BitrateController::CreateBitrateController(clock, BitrateController::CreateBitrateController(clock,
observer, observer,
&event_log_)), &event_log_)),
feedback_observer_(bitrate_controller_->CreateRtcpBandwidthObserver()), feedback_observer_(bitrate_controller_.get()),
clock_(clock) { clock_(clock) {
assert(kbps >= kMinBitrateKbps); assert(kbps >= kMinBitrateKbps);
assert(kbps <= kMaxBitrateKbps); assert(kbps <= kMaxBitrateKbps);

View File

@ -42,7 +42,7 @@ class RembBweSender : public BweSender {
protected: protected:
std::unique_ptr<BitrateController> bitrate_controller_; std::unique_ptr<BitrateController> bitrate_controller_;
std::unique_ptr<RtcpBandwidthObserver> feedback_observer_; RtcpBandwidthObserver* feedback_observer_;
private: private:
Clock* clock_; Clock* clock_;

View File

@ -33,7 +33,7 @@ SendSideBweSender::SendSideBweSender(int kbps,
acknowledged_bitrate_estimator_( acknowledged_bitrate_estimator_(
rtc::MakeUnique<AcknowledgedBitrateEstimator>()), rtc::MakeUnique<AcknowledgedBitrateEstimator>()),
bwe_(new DelayBasedBwe(nullptr, clock)), bwe_(new DelayBasedBwe(nullptr, clock)),
feedback_observer_(bitrate_controller_->CreateRtcpBandwidthObserver()), feedback_observer_(bitrate_controller_.get()),
clock_(clock), clock_(clock),
send_time_history_(clock_, 10000), send_time_history_(clock_, 10000),
has_received_ack_(false), has_received_ack_(false),

View File

@ -40,7 +40,7 @@ class SendSideBweSender : public BweSender, public RemoteBitrateObserver {
std::unique_ptr<BitrateController> bitrate_controller_; std::unique_ptr<BitrateController> bitrate_controller_;
std::unique_ptr<AcknowledgedBitrateEstimator> acknowledged_bitrate_estimator_; std::unique_ptr<AcknowledgedBitrateEstimator> acknowledged_bitrate_estimator_;
std::unique_ptr<DelayBasedBwe> bwe_; std::unique_ptr<DelayBasedBwe> bwe_;
std::unique_ptr<RtcpBandwidthObserver> feedback_observer_; RtcpBandwidthObserver* feedback_observer_;
private: private:
Clock* const clock_; Clock* const clock_;

View File

@ -356,7 +356,7 @@ class VideoSendStreamImpl : public webrtc::BitrateAllocatorObserver,
EncoderRtcpFeedback encoder_feedback_; EncoderRtcpFeedback encoder_feedback_;
ProtectionBitrateCalculator protection_bitrate_calculator_; ProtectionBitrateCalculator protection_bitrate_calculator_;
const std::unique_ptr<RtcpBandwidthObserver> bandwidth_observer_; RtcpBandwidthObserver* const bandwidth_observer_;
// RtpRtcp modules, declared here as they use other members on construction. // RtpRtcp modules, declared here as they use other members on construction.
const std::vector<RtpRtcp*> rtp_rtcp_modules_; const std::vector<RtpRtcp*> rtp_rtcp_modules_;
PayloadRouter payload_router_; PayloadRouter payload_router_;
@ -716,13 +716,11 @@ VideoSendStreamImpl::VideoSendStreamImpl(
config_->rtp.ssrcs, config_->rtp.ssrcs,
video_stream_encoder), video_stream_encoder),
protection_bitrate_calculator_(Clock::GetRealTimeClock(), this), protection_bitrate_calculator_(Clock::GetRealTimeClock(), this),
bandwidth_observer_(transport->send_side_cc() bandwidth_observer_(transport->send_side_cc()->GetBandwidthObserver()),
->GetBitrateController()
->CreateRtcpBandwidthObserver()),
rtp_rtcp_modules_(CreateRtpRtcpModules( rtp_rtcp_modules_(CreateRtpRtcpModules(
config_->send_transport, config_->send_transport,
&encoder_feedback_, &encoder_feedback_,
bandwidth_observer_.get(), bandwidth_observer_,
transport, transport,
call_stats_->rtcp_rtt_stats(), call_stats_->rtcp_rtt_stats(),
flexfec_sender_.get(), flexfec_sender_.get(),