[PCLF] Add ToString function for VideoResolution

Bug: b/231394729
Change-Id: Iac803440153d368f0c2ea143e64fe347323eeeef
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/264556
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#37082}
diff --git a/api/BUILD.gn b/api/BUILD.gn
index b0e878e..107e57d 100644
--- a/api/BUILD.gn
+++ b/api/BUILD.gn
@@ -460,6 +460,7 @@
     "../modules/audio_processing:api",
     "../rtc_base:checks",
     "../rtc_base:rtc_base",
+    "../rtc_base:stringutils",
     "../rtc_base:threading",
     "audio:audio_mixer_api",
     "rtc_event_log",
diff --git a/api/test/peerconnection_quality_test_fixture.cc b/api/test/peerconnection_quality_test_fixture.cc
index 3158109..2e815aa 100644
--- a/api/test/peerconnection_quality_test_fixture.cc
+++ b/api/test/peerconnection_quality_test_fixture.cc
@@ -10,18 +10,36 @@
 
 #include "api/test/peerconnection_quality_test_fixture.h"
 
+#include <string>
+
 #include "absl/types/optional.h"
 #include "api/array_view.h"
 #include "rtc_base/checks.h"
+#include "rtc_base/strings/string_builder.h"
 
 namespace webrtc {
 namespace webrtc_pc_e2e {
+namespace {
 
 using VideoCodecConfig = ::webrtc::webrtc_pc_e2e::
     PeerConnectionE2EQualityTestFixture::VideoCodecConfig;
 using VideoSubscription = ::webrtc::webrtc_pc_e2e::
     PeerConnectionE2EQualityTestFixture::VideoSubscription;
 
+std::string SpecToString(
+    PeerConnectionE2EQualityTestFixture::VideoResolution::VideoResolution::Spec
+        spec) {
+  switch (spec) {
+    case PeerConnectionE2EQualityTestFixture::VideoResolution::Spec::kNone:
+      return "None";
+    case PeerConnectionE2EQualityTestFixture::VideoResolution::Spec::
+        kMaxFromSender:
+      return "MaxFromSender";
+  }
+}
+
+}  // namespace
+
 PeerConnectionE2EQualityTestFixture::VideoResolution::VideoResolution(
     size_t width,
     size_t height,
@@ -41,6 +59,14 @@
          fps_ == other.fps_ && spec_ == other.spec_;
 }
 
+std::string PeerConnectionE2EQualityTestFixture::VideoResolution::ToString()
+    const {
+  rtc::StringBuilder out;
+  out << "{ width=" << width_ << ", height=" << height_ << ", fps=" << fps_
+      << ", spec=" << SpecToString(spec_) << " }";
+  return out.Release();
+}
+
 bool PeerConnectionE2EQualityTestFixture::VideoSubscription::operator==(
     const VideoSubscription& other) const {
   return default_resolution_ == other.default_resolution_ &&
diff --git a/api/test/peerconnection_quality_test_fixture.h b/api/test/peerconnection_quality_test_fixture.h
index 29fff7d..fd819be 100644
--- a/api/test/peerconnection_quality_test_fixture.h
+++ b/api/test/peerconnection_quality_test_fixture.h
@@ -208,6 +208,8 @@
     // if it's spec is `Spec::kNone`.
     bool IsRegular() const { return spec_ == Spec::kNone; }
 
+    std::string ToString() const;
+
    private:
     size_t width_ = 0;
     size_t height_ = 0;