Fix capture_clock_offset_updater_ data race.
Change-Id: I1b84810ea19c8bf24ec49d7fb69e954d18759e37
Bug: b/288066973
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/309680
Reviewed-by: Jakob Ivarsson‎ <jakobi@webrtc.org>
Commit-Queue: Jeremy Leconte <jleconte@google.com>
Cr-Commit-Position: refs/heads/main@{#40320}
diff --git a/audio/channel_receive.cc b/audio/channel_receive.cc
index 32c4676..87fcaf9 100644
--- a/audio/channel_receive.cc
+++ b/audio/channel_receive.cc
@@ -292,7 +292,8 @@
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<ChannelReceiveFrameTransformerDelegate>
frame_transformer_delegate_;
@@ -474,6 +475,7 @@
for (auto& packet_info : audio_frame->packet_infos_) {
absl::optional<int64_t> 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()