Index: webrtc/modules/audio_coding/codecs/opus/audio_encoder_opus.cc |
diff --git a/webrtc/modules/audio_coding/codecs/opus/audio_encoder_opus.cc b/webrtc/modules/audio_coding/codecs/opus/audio_encoder_opus.cc |
index bac963f4e8e2de9ff047ac78d889e9b187c6469e..5b58da4857db3ccf95350b2f0874fb16b18a8c17 100644 |
--- a/webrtc/modules/audio_coding/codecs/opus/audio_encoder_opus.cc |
+++ b/webrtc/modules/audio_coding/codecs/opus/audio_encoder_opus.cc |
@@ -293,15 +293,19 @@ void AudioEncoderOpus::DisableAudioNetworkAdaptor() { |
} |
void AudioEncoderOpus::OnReceivedUplinkPacketLossFraction( |
- float uplink_packet_loss_fraction) { |
+ const rtc::Optional<float>& uplink_packet_loss_fraction) { |
if (!audio_network_adaptor_) { |
- packet_loss_fraction_smoother_->AddSample(uplink_packet_loss_fraction); |
- float average_fraction_loss = packet_loss_fraction_smoother_->GetAverage(); |
- return SetProjectedPacketLossRate(average_fraction_loss); |
+ if (uplink_packet_loss_fraction) { |
+ packet_loss_fraction_smoother_->AddSample(*uplink_packet_loss_fraction); |
+ float average_fraction_loss = |
+ packet_loss_fraction_smoother_->GetAverage(); |
+ SetProjectedPacketLossRate(average_fraction_loss); |
+ } |
+ } else { |
+ audio_network_adaptor_->SetUplinkPacketLossFraction( |
+ uplink_packet_loss_fraction); |
+ ApplyAudioNetworkAdaptor(); |
} |
- audio_network_adaptor_->SetUplinkPacketLossFraction( |
- uplink_packet_loss_fraction); |
- ApplyAudioNetworkAdaptor(); |
} |
void AudioEncoderOpus::OnReceivedUplinkBandwidth( |