diff --git a/audio/voip/voip_core.cc b/audio/voip/voip_core.cc index 30868946fd..8df1c594aa 100644 --- a/audio/voip/voip_core.cc +++ b/audio/voip/voip_core.cc @@ -61,7 +61,7 @@ bool VoipCore::InitializeIfNeeded() { // introduced in the future. MutexLock lock(&lock_); - if (audio_device_module_->Initialized()) { + if (initialized_) { return true; } @@ -116,6 +116,8 @@ bool VoipCore::InitializeIfNeeded() { RTC_LOG(LS_WARNING) << "Unable to register audio callback."; } + initialized_ = true; + return true; } diff --git a/audio/voip/voip_core.h b/audio/voip/voip_core.h index 6df7d4edb0..6c3aec6fa2 100644 --- a/audio/voip/voip_core.h +++ b/audio/voip/voip_core.h @@ -164,6 +164,9 @@ class VoipCore : public VoipEngine, // ChannelId. std::unordered_map> channels_ RTC_GUARDED_BY(lock_); + + // Boolean flag to ensure initialization only occurs once. + bool initialized_ RTC_GUARDED_BY(lock_) = false; }; } // namespace webrtc