From af0d5bca34b14e2d0f9e98ddfe64ed04bcf25472 Mon Sep 17 00:00:00 2001 From: Jakob Ivarsson Date: Thu, 18 Jun 2020 15:58:21 +0200 Subject: [PATCH] Remove ANA FEC control in Opus encoder. This has been proven to not be useful. Bug: chromium:1086942 Change-Id: Ib71b194f59301851791a1a056f5f10b98c5a1d57 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/177520 Reviewed-by: Ivo Creusen Reviewed-by: Minyue Li Commit-Queue: Jakob Ivarsson Cr-Commit-Position: refs/heads/master@{#31548} --- .../codecs/opus/audio_encoder_opus.cc | 18 +++++++----------- .../codecs/opus/audio_encoder_opus_unittest.cc | 5 ----- 2 files changed, 7 insertions(+), 16 deletions(-) diff --git a/modules/audio_coding/codecs/opus/audio_encoder_opus.cc b/modules/audio_coding/codecs/opus/audio_encoder_opus.cc index c17892e17e..ff5d71b605 100644 --- a/modules/audio_coding/codecs/opus/audio_encoder_opus.cc +++ b/modules/audio_coding/codecs/opus/audio_encoder_opus.cc @@ -472,14 +472,14 @@ void AudioEncoderOpusImpl::DisableAudioNetworkAdaptor() { void AudioEncoderOpusImpl::OnReceivedUplinkPacketLossFraction( 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 (audio_network_adaptor_) { + audio_network_adaptor_->SetUplinkPacketLossFraction( + uplink_packet_loss_fraction); + ApplyAudioNetworkAdaptor(); } - audio_network_adaptor_->SetUplinkPacketLossFraction( - uplink_packet_loss_fraction); - ApplyAudioNetworkAdaptor(); + packet_loss_fraction_smoother_->AddSample(uplink_packet_loss_fraction); + float average_fraction_loss = packet_loss_fraction_smoother_->GetAverage(); + SetProjectedPacketLossRate(average_fraction_loss); } void AudioEncoderOpusImpl::OnReceivedTargetAudioBitrate( @@ -758,10 +758,6 @@ void AudioEncoderOpusImpl::ApplyAudioNetworkAdaptor() { SetTargetBitrate(*config.bitrate_bps); if (config.frame_length_ms) SetFrameLength(*config.frame_length_ms); - if (config.enable_fec) - SetFec(*config.enable_fec); - if (config.uplink_packet_loss_fraction) - SetProjectedPacketLossRate(*config.uplink_packet_loss_fraction); if (config.enable_dtx) SetDtx(*config.enable_dtx); if (config.num_channels) diff --git a/modules/audio_coding/codecs/opus/audio_encoder_opus_unittest.cc b/modules/audio_coding/codecs/opus/audio_encoder_opus_unittest.cc index 8ba3559be1..1c73eaf717 100644 --- a/modules/audio_coding/codecs/opus/audio_encoder_opus_unittest.cc +++ b/modules/audio_coding/codecs/opus/audio_encoder_opus_unittest.cc @@ -93,17 +93,13 @@ std::unique_ptr CreateCodec(int sample_rate_hz, AudioEncoderRuntimeConfig CreateEncoderRuntimeConfig() { constexpr int kBitrate = 40000; constexpr int kFrameLength = 60; - constexpr bool kEnableFec = true; constexpr bool kEnableDtx = false; constexpr size_t kNumChannels = 1; - constexpr float kPacketLossFraction = 0.1f; AudioEncoderRuntimeConfig config; config.bitrate_bps = kBitrate; config.frame_length_ms = kFrameLength; - config.enable_fec = kEnableFec; config.enable_dtx = kEnableDtx; config.num_channels = kNumChannels; - config.uplink_packet_loss_fraction = kPacketLossFraction; return config; } @@ -111,7 +107,6 @@ void CheckEncoderRuntimeConfig(const AudioEncoderOpusImpl* encoder, const AudioEncoderRuntimeConfig& config) { EXPECT_EQ(*config.bitrate_bps, encoder->GetTargetBitrate()); EXPECT_EQ(*config.frame_length_ms, encoder->next_frame_length_ms()); - EXPECT_EQ(*config.enable_fec, encoder->fec_enabled()); EXPECT_EQ(*config.enable_dtx, encoder->GetDtx()); EXPECT_EQ(*config.num_channels, encoder->num_channels_to_encode()); }