From 0fd67312ea078b3b997306d56284b85492b37650 Mon Sep 17 00:00:00 2001 From: Jakob Ivarsson Date: Thu, 20 Jun 2024 09:12:36 +0000 Subject: [PATCH] Reset the speech encoder when creating a comfort noise encoder. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This is to make sure that the two encoders are "in sync" (the CNG encoder can be created from an existing speech encoder). This is a speculative fix for a crash in the CNG encoder where a packet is unexpectedly emitted from the speech encoder. Bug: webrtc:42225071 Change-Id: I42571e56e032897f7f083f04d785f6a08ebfb813 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/355160 Commit-Queue: Jakob Ivarsson‎ Reviewed-by: Tomas Lundqvist Cr-Commit-Position: refs/heads/main@{#42516} --- modules/audio_coding/codecs/cng/audio_encoder_cng.cc | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/modules/audio_coding/codecs/cng/audio_encoder_cng.cc b/modules/audio_coding/codecs/cng/audio_encoder_cng.cc index 7546ac178f..de82cd99b9 100644 --- a/modules/audio_coding/codecs/cng/audio_encoder_cng.cc +++ b/modules/audio_coding/codecs/cng/audio_encoder_cng.cc @@ -89,7 +89,9 @@ AudioEncoderCng::AudioEncoderCng(AudioEncoderCngConfig&& config) : CreateVad(config.vad_mode)), cng_encoder_(new ComfortNoiseEncoder(SampleRateHz(), sid_frame_interval_ms_, - num_cng_coefficients_)) {} + num_cng_coefficients_)) { + speech_encoder_->Reset(); +} AudioEncoderCng::~AudioEncoderCng() = default;