diff --git a/test/pc/e2e/BUILD.gn b/test/pc/e2e/BUILD.gn
index e46f33d..7b9365b 100644
--- a/test/pc/e2e/BUILD.gn
+++ b/test/pc/e2e/BUILD.gn
@@ -385,6 +385,7 @@
     "../../../api:libjingle_peerconnection_api",
     "../../../api:stats_observer_interface",
     "../../../api:track_id_stream_label_map",
+    "../../../rtc_base:criticalsection",
     "../../../rtc_base:logging",
     "../../../rtc_base:rtc_numerics",
     "//third_party/abseil-cpp/absl/strings",
diff --git a/test/pc/e2e/analyzer/audio/default_audio_quality_analyzer.cc b/test/pc/e2e/analyzer/audio/default_audio_quality_analyzer.cc
index 0c025a1..04bb7bf 100644
--- a/test/pc/e2e/analyzer/audio/default_audio_quality_analyzer.cc
+++ b/test/pc/e2e/analyzer/audio/default_audio_quality_analyzer.cc
@@ -10,8 +10,6 @@
 
 #include "test/pc/e2e/analyzer/audio/default_audio_quality_analyzer.h"
 
-#include <string.h>
-
 #include "api/stats_types.h"
 #include "rtc_base/logging.h"
 #include "test/testsupport/perf_test.h"
@@ -80,6 +78,8 @@
 
     const std::string& stream_label =
         GetStreamLabelFromStatsReport(stats_report);
+
+    rtc::CritScope crit(&lock_);
     AudioStreamStats& audio_stream_stats = streams_stats_[stream_label];
     audio_stream_stats.expand_rate.AddSample(expand_rate->float_val());
     audio_stream_stats.accelerate_rate.AddSample(accelerate_rate->float_val());
@@ -106,6 +106,7 @@
 }
 
 void DefaultAudioQualityAnalyzer::Stop() {
+  rtc::CritScope crit(&lock_);
   for (auto& item : streams_stats_) {
     ReportResult("expand_rate", item.first, item.second.expand_rate,
                  "unitless");
@@ -120,6 +121,12 @@
   }
 }
 
+std::map<std::string, AudioStreamStats>
+DefaultAudioQualityAnalyzer::GetAudioStreamsStats() const {
+  rtc::CritScope crit(&lock_);
+  return streams_stats_;
+}
+
 void DefaultAudioQualityAnalyzer::ReportResult(
     const std::string& metric_name,
     const std::string& stream_label,
diff --git a/test/pc/e2e/analyzer/audio/default_audio_quality_analyzer.h b/test/pc/e2e/analyzer/audio/default_audio_quality_analyzer.h
index 75f9f34..019ab2e 100644
--- a/test/pc/e2e/analyzer/audio/default_audio_quality_analyzer.h
+++ b/test/pc/e2e/analyzer/audio/default_audio_quality_analyzer.h
@@ -18,13 +18,13 @@
 #include "api/stats_types.h"
 #include "api/test/audio_quality_analyzer_interface.h"
 #include "api/test/track_id_stream_label_map.h"
+#include "rtc_base/critical_section.h"
 #include "rtc_base/numerics/samples_stats_counter.h"
 
 namespace webrtc {
 namespace webrtc_pc_e2e {
 
 struct AudioStreamStats {
- public:
   SamplesStatsCounter expand_rate;
   SamplesStatsCounter accelerate_rate;
   SamplesStatsCounter preemptive_rate;
@@ -42,6 +42,9 @@
                       const StatsReports& stats_reports) override;
   void Stop() override;
 
+  // Returns audio quality stats per stream label.
+  std::map<std::string, AudioStreamStats> GetAudioStreamsStats() const;
+
  private:
   const std::string& GetStreamLabelFromStatsReport(
       const StatsReport* stats_report) const;
@@ -53,7 +56,9 @@
 
   std::string test_case_name_;
   TrackIdStreamLabelMap* analyzer_helper_;
-  std::map<std::string, AudioStreamStats> streams_stats_;
+
+  rtc::CriticalSection lock_;
+  std::map<std::string, AudioStreamStats> streams_stats_ RTC_GUARDED_BY(lock_);
 };
 
 }  // namespace webrtc_pc_e2e
