diff --git a/audio/audio_send_stream.cc b/audio/audio_send_stream.cc index 283fd9a603..c1503bbb80 100644 --- a/audio/audio_send_stream.cc +++ b/audio/audio_send_stream.cc @@ -517,6 +517,9 @@ void AudioSendStream::OnOverheadChanged( void AudioSendStream::UpdateOverheadForEncoder() { const size_t overhead_per_packet_bytes = GetPerPacketOverheadBytes(); + if (overhead_per_packet_bytes == 0) { + return; // Overhead is not known yet, do not tell the encoder. + } channel_send_->CallEncoder([&](AudioEncoder* encoder) { encoder->OnReceivedOverhead(overhead_per_packet_bytes); }); @@ -626,7 +629,9 @@ bool AudioSendStream::SetupSendCodec(AudioSendStream* stream, // If overhead changes later, it will be updated in UpdateOverheadForEncoder. { rtc::CritScope cs(&stream->overhead_per_packet_lock_); - encoder->OnReceivedOverhead(stream->GetPerPacketOverheadBytes()); + if (stream->GetPerPacketOverheadBytes() > 0) { + encoder->OnReceivedOverhead(stream->GetPerPacketOverheadBytes()); + } } stream->StoreEncoderProperties(encoder->SampleRateHz(), diff --git a/audio/audio_send_stream_unittest.cc b/audio/audio_send_stream_unittest.cc index 701df1c9ee..54c4d9b3a2 100644 --- a/audio/audio_send_stream_unittest.cc +++ b/audio/audio_send_stream_unittest.cc @@ -536,9 +536,6 @@ TEST(AudioSendStreamTest, ReconfigureTransportCcResetsFirst) { .Times(1); } - // CallEncoder will be called to re-set overhead. - EXPECT_CALL(*helper.channel_send(), CallEncoder(::testing::_)).Times(1); - send_stream->Reconfigure(new_config); } diff --git a/modules/audio_coding/audio_network_adaptor/bitrate_controller.cc b/modules/audio_coding/audio_network_adaptor/bitrate_controller.cc index 6850926c27..eee6f403aa 100644 --- a/modules/audio_coding/audio_network_adaptor/bitrate_controller.cc +++ b/modules/audio_coding/audio_network_adaptor/bitrate_controller.cc @@ -43,8 +43,10 @@ void BitrateController::UpdateNetworkMetrics( const NetworkMetrics& network_metrics) { if (network_metrics.target_audio_bitrate_bps) target_audio_bitrate_bps_ = network_metrics.target_audio_bitrate_bps; - if (network_metrics.overhead_bytes_per_packet) + if (network_metrics.overhead_bytes_per_packet) { + RTC_DCHECK_GT(*network_metrics.overhead_bytes_per_packet, 0); overhead_bytes_per_packet_ = network_metrics.overhead_bytes_per_packet; + } } void BitrateController::MakeDecision(AudioEncoderRuntimeConfig* config) {