Moves ProbeBitrateEstimator from DelayBasedBwe.

This prepares for providing an additional implementation of delay based
rate control. By moving the probe controller, less code will have to be
added in the upcoming CL.

Bug: webrtc:9718
Change-Id: I64eb2c8f5f7950b6e9d209f110dc0a757c710b4b
Reviewed-on: https://webrtc-review.googlesource.com/c/111860
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Christoffer Rodbro <crodbro@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25770}
This commit is contained in:
Sebastian Jansson
2018-11-23 14:02:35 +01:00
committed by Commit Bot
parent e3abb8134f
commit 885cf60106
11 changed files with 52 additions and 12 deletions

View File

@ -143,6 +143,7 @@ SendSideCongestionController::SendSideCongestionController(
pause_pacer_(false),
pacer_paused_(false),
min_bitrate_bps_(congestion_controller::GetMinBitrateBps()),
probe_bitrate_estimator_(new ProbeBitrateEstimator(event_log_)),
delay_based_bwe_(new DelayBasedBwe(event_log_)),
in_cwnd_experiment_(CwndExperimentEnabled()),
accepted_queue_ms_(kDefaultAcceptedQueueMs),
@ -258,6 +259,7 @@ void SendSideCongestionController::OnNetworkRouteChanged(
rtc::CritScope cs(&bwe_lock_);
transport_overhead_bytes_per_packet_ = network_route.packet_overhead;
min_bitrate_bps_ = min_bitrate_bps;
probe_bitrate_estimator_.reset(new ProbeBitrateEstimator(event_log_));
delay_based_bwe_.reset(new DelayBasedBwe(event_log_));
acknowledged_bitrate_estimator_.reset(new AcknowledgedBitrateEstimator());
if (bitrate_bps > 0) {
@ -416,8 +418,15 @@ void SendSideCongestionController::OnTransportFeedback(
DelayBasedBwe::Result result;
{
rtc::CritScope cs(&bwe_lock_);
for (const auto& packet : feedback_vector) {
if (packet.send_time_ms != PacketFeedback::kNoSendTime &&
packet.pacing_info.probe_cluster_id != PacedPacketInfo::kNotAProbe) {
probe_bitrate_estimator_->HandleProbeAndEstimateBitrate(packet);
}
}
result = delay_based_bwe_->IncomingPacketFeedbackVector(
feedback_vector, acknowledged_bitrate_estimator_->bitrate(),
probe_bitrate_estimator_->FetchAndResetLastEstimatedBitrate(),
Timestamp::ms(clock_->TimeInMilliseconds()));
}
if (result.updated) {