Index: webrtc/modules/audio_coding/audio_network_adaptor/fec_controller.cc |
diff --git a/webrtc/modules/audio_coding/audio_network_adaptor/fec_controller.cc b/webrtc/modules/audio_coding/audio_network_adaptor/fec_controller.cc |
index 07495f0f85ce0f94ac6cfcb30c8fb037819e3f6c..15c12b1a1ba8bc2f22e3666b5c4e9a53166ce6e2 100644 |
--- a/webrtc/modules/audio_coding/audio_network_adaptor/fec_controller.cc |
+++ b/webrtc/modules/audio_coding/audio_network_adaptor/fec_controller.cc |
@@ -75,8 +75,10 @@ void FecController::MakeDecision( |
if (metrics.uplink_packet_loss_fraction) |
packet_loss_smoothed_->AddSample(*metrics.uplink_packet_loss_fraction); |
- fec_enabled_ = fec_enabled_ ? !FecDisablingDecision(metrics) |
- : FecEnablingDecision(metrics); |
+ const auto& packet_loss = packet_loss_smoothed_->GetAverage(); |
+ |
+ fec_enabled_ = fec_enabled_ ? !FecDisablingDecision(metrics, packet_loss) |
+ : FecEnablingDecision(metrics, packet_loss); |
config->enable_fec = rtc::Optional<bool>(fec_enabled_); |
@@ -107,27 +109,25 @@ float FecController::GetPacketLossThreshold( |
return threshold_info.offset + threshold_info.slope * bandwidth_bps; |
} |
-bool FecController::FecEnablingDecision(const NetworkMetrics& metrics) const { |
+bool FecController::FecEnablingDecision( |
+ const NetworkMetrics& metrics, |
+ const rtc::Optional<float>& packet_loss) const { |
if (!metrics.uplink_bandwidth_bps) |
return false; |
- |
- auto packet_loss = packet_loss_smoothed_->GetAverage(); |
if (!packet_loss) |
return false; |
- |
return *packet_loss >= GetPacketLossThreshold(*metrics.uplink_bandwidth_bps, |
config_.fec_enabling_threshold, |
fec_enabling_threshold_info_); |
} |
-bool FecController::FecDisablingDecision(const NetworkMetrics& metrics) const { |
+bool FecController::FecDisablingDecision( |
+ const NetworkMetrics& metrics, |
+ const rtc::Optional<float>& packet_loss) const { |
if (!metrics.uplink_bandwidth_bps) |
return false; |
- |
- auto packet_loss = packet_loss_smoothed_->GetAverage(); |
if (!packet_loss) |
return false; |
- |
return *packet_loss <= GetPacketLossThreshold(*metrics.uplink_bandwidth_bps, |
config_.fec_disabling_threshold, |
fec_disabling_threshold_info_); |