diff --git a/test/pc/e2e/analyzer/video/BUILD.gn b/test/pc/e2e/analyzer/video/BUILD.gn
index e055703..f9acf89 100644
--- a/test/pc/e2e/analyzer/video/BUILD.gn
+++ b/test/pc/e2e/analyzer/video/BUILD.gn
@@ -263,6 +263,7 @@
     "../..:metric_metadata_keys",
     "../../../../../api:peer_connection_quality_test_fixture_api",
     "../../../../../api:rtc_stats_api",
+    "../../../../../api:scoped_refptr",
     "../../../../../api:track_id_stream_info_map",
     "../../../../../api/numerics",
     "../../../../../api/test/metrics:metric",
@@ -272,7 +273,11 @@
     "../../../../../api/units:time_delta",
     "../../../../../api/units:timestamp",
     "../../../../../rtc_base:checks",
+    "../../../../../rtc_base:logging",
+    "../../../../../rtc_base:macromagic",
     "../../../../../rtc_base/synchronization:mutex",
+    "../../../../../rtc_base/synchronization:mutex",
+    "../../../../../system_wrappers",
     "//third_party/abseil-cpp/absl/strings:string_view",
   ]
 }
diff --git a/test/pc/e2e/analyzer/video/video_quality_metrics_reporter.cc b/test/pc/e2e/analyzer/video/video_quality_metrics_reporter.cc
index 87f1590..8669457 100644
--- a/test/pc/e2e/analyzer/video/video_quality_metrics_reporter.cc
+++ b/test/pc/e2e/analyzer/video/video_quality_metrics_reporter.cc
@@ -13,13 +13,22 @@
 #include <map>
 #include <string>
 
+#include "absl/strings/string_view.h"
+#include "api/numerics/samples_stats_counter.h"
+#include "api/scoped_refptr.h"
 #include "api/stats/rtc_stats.h"
+#include "api/stats/rtc_stats_report.h"
 #include "api/stats/rtcstats_objects.h"
 #include "api/test/metrics/metric.h"
+#include "api/test/metrics/metrics_logger.h"
+#include "api/test/track_id_stream_info_map.h"
 #include "api/units/data_rate.h"
+#include "api/units/data_size.h"
 #include "api/units/time_delta.h"
 #include "api/units/timestamp.h"
 #include "rtc_base/checks.h"
+#include "rtc_base/synchronization/mutex.h"
+#include "system_wrappers/include/clock.h"
 #include "test/pc/e2e/metric_metadata_keys.h"
 
 namespace webrtc {
@@ -28,7 +37,6 @@
 
 using ::webrtc::test::ImprovementDirection;
 using ::webrtc::test::Unit;
-using ::webrtc::webrtc_pc_e2e::MetricMetadataKey;
 
 SamplesStatsCounter BytesPerSecondToKbps(const SamplesStatsCounter& counter) {
   return counter * 0.008;
@@ -73,12 +81,10 @@
   auto outbound_rtp_stats = report->GetStatsOfType<RTCOutboundRtpStreamStats>();
   StatsSample sample;
   for (auto& s : outbound_rtp_stats) {
-    if (!s->kind.has_value()) {
+    if (!s->kind.has_value() || *s->kind != "video") {
       continue;
     }
-    if (!(*s->kind == "video")) {
-      continue;
-    }
+    sample.scalability_mode = s->scalability_mode;
     if (s->timestamp() > sample.sample_time) {
       sample.sample_time = s->timestamp();
     }
@@ -99,6 +105,12 @@
   }
 
   StatsSample prev_sample = last_stats_sample_[std::string(pc_label)];
+  if (prev_sample.scalability_mode != sample.scalability_mode) {
+    // Counters are reset when the scalability mode changes.
+    prev_sample.bytes_sent = DataSize::Zero();
+    prev_sample.header_bytes_sent = DataSize::Zero();
+    prev_sample.retransmitted_bytes_sent = DataSize::Zero();
+  }
   if (prev_sample.sample_time.IsZero()) {
     prev_sample.sample_time = start_time_.value();
   }
diff --git a/test/pc/e2e/analyzer/video/video_quality_metrics_reporter.h b/test/pc/e2e/analyzer/video/video_quality_metrics_reporter.h
index cc31c48..75e2ace 100644
--- a/test/pc/e2e/analyzer/video/video_quality_metrics_reporter.h
+++ b/test/pc/e2e/analyzer/video/video_quality_metrics_reporter.h
@@ -12,16 +12,21 @@
 #define TEST_PC_E2E_ANALYZER_VIDEO_VIDEO_QUALITY_METRICS_REPORTER_H_
 
 #include <map>
+#include <optional>
 #include <string>
 
 #include "absl/strings/string_view.h"
 #include "api/numerics/samples_stats_counter.h"
+#include "api/scoped_refptr.h"
+#include "api/stats/rtc_stats_report.h"
 #include "api/test/metrics/metrics_logger.h"
 #include "api/test/peerconnection_quality_test_fixture.h"
 #include "api/test/track_id_stream_info_map.h"
 #include "api/units/data_size.h"
 #include "api/units/timestamp.h"
 #include "rtc_base/synchronization/mutex.h"
+#include "rtc_base/thread_annotations.h"
+#include "system_wrappers/include/clock.h"
 
 namespace webrtc {
 namespace webrtc_pc_e2e {
@@ -48,6 +53,7 @@
 
  private:
   struct StatsSample {
+    std::optional<std::string> scalability_mode;
     DataSize bytes_sent = DataSize::Zero();
     DataSize header_bytes_sent = DataSize::Zero();
     DataSize retransmitted_bytes_sent = DataSize::Zero();
