From c4e0254909d951de48c633a1a65be3db407fa9c3 Mon Sep 17 00:00:00 2001 From: Jeremy Leconte Date: Wed, 21 Jun 2023 08:15:52 +0200 Subject: [PATCH] Fix capture_clock_offset_updater_ data race. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change-Id: I1b84810ea19c8bf24ec49d7fb69e954d18759e37 Bug: b/288066973 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/309680 Reviewed-by: Jakob Ivarsson‎ Commit-Queue: Jeremy Leconte Cr-Commit-Position: refs/heads/main@{#40320} --- audio/channel_receive.cc | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/audio/channel_receive.cc b/audio/channel_receive.cc index 32c46764d2..87fcaf9511 100644 --- a/audio/channel_receive.cc +++ b/audio/channel_receive.cc @@ -292,7 +292,8 @@ class ChannelReceive : public ChannelReceiveInterface, webrtc::AbsoluteCaptureTimeInterpolator absolute_capture_time_interpolator_ RTC_GUARDED_BY(worker_thread_checker_); - webrtc::CaptureClockOffsetUpdater capture_clock_offset_updater_; + webrtc::CaptureClockOffsetUpdater capture_clock_offset_updater_ + RTC_GUARDED_BY(ts_stats_lock_); rtc::scoped_refptr frame_transformer_delegate_; @@ -474,6 +475,7 @@ AudioMixer::Source::AudioFrameInfo ChannelReceive::GetAudioFrameWithInfo( for (auto& packet_info : audio_frame->packet_infos_) { absl::optional local_capture_clock_offset_q32x32; if (packet_info.absolute_capture_time().has_value()) { + MutexLock lock(&ts_stats_lock_); local_capture_clock_offset_q32x32 = capture_clock_offset_updater_.AdjustEstimatedCaptureClockOffset( packet_info.absolute_capture_time()