Add Reported lost time series to ECN feedback graph in event log visualizer Plots the count of unreceived (reported lost) packets from RTCP Congestion Control Feedback alongside ECN markings. Bug: webrtc:436707095 Change-Id: I3206d80d340a7e08d9aa3b3eccd8a009313162fd Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/471881 Auto-Submit: Per Kjellander <perkj@webrtc.org> Commit-Queue: Björn Terelius <terelius@webrtc.org> Reviewed-by: Björn Terelius <terelius@webrtc.org> Cr-Commit-Position: refs/heads/main@{#47690}
diff --git a/rtc_tools/rtc_event_log_visualizer/analyze_rtp_rtcp.cc b/rtc_tools/rtc_event_log_visualizer/analyze_rtp_rtcp.cc index 9d6c066..e707f87 100644 --- a/rtc_tools/rtc_event_log_visualizer/analyze_rtp_rtcp.cc +++ b/rtc_tools/rtc_event_log_visualizer/analyze_rtp_rtcp.cc
@@ -462,15 +462,22 @@ TimeSeries ect_1("ECN capable", LineStyle::kBar, PointStyle::kHighlight); TimeSeries ce("Congestion experienced", LineStyle::kBar, PointStyle::kHighlight); + TimeSeries reported_lost("Reported lost", LineStyle::kBar, + PointStyle::kHighlight); for (const LoggedRtcpCongestionControlFeedback& feedback : parsed_log.congestion_feedback(direction)) { int ect_1_count = 0; int not_ect_count = 0; int ce_count = 0; + int reported_lost_count = 0; for (const rtcp::CongestionControlFeedback::PacketInfo& info : feedback.congestion_feedback.packets()) { + if (!info.received()) { + ++reported_lost_count; + continue; + } switch (info.ecn) { case EcnMarking::kNotEct: ++not_ect_count; @@ -491,11 +498,14 @@ not_ect.points.emplace_back(config.GetCallTimeSec(feedback.timestamp), not_ect_count); ce.points.emplace_back(config.GetCallTimeSec(feedback.timestamp), ce_count); + reported_lost.points.emplace_back(config.GetCallTimeSec(feedback.timestamp), + reported_lost_count); } plot->AppendTimeSeriesIfNotEmpty(std::move(ect_1)); plot->AppendTimeSeriesIfNotEmpty(std::move(not_ect)); plot->AppendTimeSeriesIfNotEmpty(std::move(ce)); + plot->AppendTimeSeriesIfNotEmpty(std::move(reported_lost)); plot->SetXAxis(config.CallBeginTimeSec(), config.CallEndTimeSec(), "Time (s)", kLeftMargin, kRightMargin);