diff --git a/test/pc/e2e/analyzer/video/default_video_quality_analyzer.cc b/test/pc/e2e/analyzer/video/default_video_quality_analyzer.cc index 8cf9e7a011..81231d71c7 100644 --- a/test/pc/e2e/analyzer/video/default_video_quality_analyzer.cc +++ b/test/pc/e2e/analyzer/video/default_video_quality_analyzer.cc @@ -52,21 +52,6 @@ void LogFrameCounters(const std::string& name, const FrameCounters& counters) { RTC_LOG(LS_INFO) << "[" << name << "] Dropped : " << counters.dropped; } -absl::string_view ToString(FrameDropPhase phase) { - switch (phase) { - case FrameDropPhase::kBeforeEncoder: - return "kBeforeEncoder"; - case FrameDropPhase::kByEncoder: - return "kByEncoder"; - case FrameDropPhase::kTransport: - return "kTransport"; - case FrameDropPhase::kAfterDecoder: - return "kAfterDecoder"; - case FrameDropPhase::kLastValue: - RTC_CHECK(false) << "FrameDropPhase::kLastValue mustn't be used"; - } -} - void LogStreamInternalStats(const std::string& name, const StreamStats& stats, Timestamp start_time) { diff --git a/test/pc/e2e/analyzer/video/default_video_quality_analyzer_shared_objects.cc b/test/pc/e2e/analyzer/video/default_video_quality_analyzer_shared_objects.cc index cc17429072..732ec217b8 100644 --- a/test/pc/e2e/analyzer/video/default_video_quality_analyzer_shared_objects.cc +++ b/test/pc/e2e/analyzer/video/default_video_quality_analyzer_shared_objects.cc @@ -11,6 +11,8 @@ #include #include +#include +#include #include "api/units/timestamp.h" #include "rtc_base/checks.h" @@ -23,6 +25,46 @@ constexpr int kMicrosPerSecond = 1000000; } // namespace +std::string StreamCodecInfo::ToString() const { + rtc::StringBuilder out; + out << "{codec_name=" << codec_name << "; first_frame_id=" << first_frame_id + << "; last_frame_id=" << last_frame_id + << "; switched_on_at=" << webrtc::ToString(switched_on_at) + << "; switched_from_at=" << webrtc::ToString(switched_from_at) << " }"; + return out.str(); +} + +std::ostream& operator<<(std::ostream& os, const StreamCodecInfo& state) { + return os << state.ToString(); +} + +rtc::StringBuilder& operator<<(rtc::StringBuilder& sb, + const StreamCodecInfo& state) { + return sb << state.ToString(); +} + +std::string ToString(FrameDropPhase phase) { + switch (phase) { + case FrameDropPhase::kBeforeEncoder: + return "kBeforeEncoder"; + case FrameDropPhase::kByEncoder: + return "kByEncoder"; + case FrameDropPhase::kTransport: + return "kTransport"; + case FrameDropPhase::kAfterDecoder: + return "kAfterDecoder"; + case FrameDropPhase::kLastValue: + return "kLastValue"; + } +} + +std::ostream& operator<<(std::ostream& os, FrameDropPhase phase) { + return os << ToString(phase); +} +rtc::StringBuilder& operator<<(rtc::StringBuilder& sb, FrameDropPhase phase) { + return sb << ToString(phase); +} + void SamplesRateCounter::AddEvent(Timestamp event_time) { if (event_first_time_.IsMinusInfinity()) { event_first_time_ = event_time; diff --git a/test/pc/e2e/analyzer/video/default_video_quality_analyzer_shared_objects.h b/test/pc/e2e/analyzer/video/default_video_quality_analyzer_shared_objects.h index 8f0afd36f7..3b2897bf9d 100644 --- a/test/pc/e2e/analyzer/video/default_video_quality_analyzer_shared_objects.h +++ b/test/pc/e2e/analyzer/video/default_video_quality_analyzer_shared_objects.h @@ -13,6 +13,7 @@ #include #include +#include #include #include #include @@ -21,6 +22,7 @@ #include "absl/types/optional.h" #include "api/numerics/samples_stats_counter.h" #include "api/units/timestamp.h" +#include "rtc_base/strings/string_builder.h" namespace webrtc { @@ -77,8 +79,14 @@ struct StreamCodecInfo { Timestamp switched_on_at = Timestamp::PlusInfinity(); // Timestamp when this codec was used last time. Timestamp switched_from_at = Timestamp::PlusInfinity(); + + std::string ToString() const; }; +std::ostream& operator<<(std::ostream& os, const StreamCodecInfo& state); +rtc::StringBuilder& operator<<(rtc::StringBuilder& sb, + const StreamCodecInfo& state); + // Represents phases where video frame can be dropped and such drop will be // detected by analyzer. enum class FrameDropPhase : int { @@ -90,6 +98,10 @@ enum class FrameDropPhase : int { kLastValue }; +std::string ToString(FrameDropPhase phase); +std::ostream& operator<<(std::ostream& os, FrameDropPhase phase); +rtc::StringBuilder& operator<<(rtc::StringBuilder& sb, FrameDropPhase phase); + struct StreamStats { explicit StreamStats(Timestamp stream_started_time);