Tooling to process RtcEventNetEqSetMinimumDelay
This introduce some tooling to display and plot the NetEq SetMinimum
delay event.
Bug: webrtc:14763
Change-Id: I69b73a51322734ec62e9b99abcdd0ac4e735879f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/287860
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Commit-Queue: Lionel Koenig <lionelk@webrtc.org>
Reviewed-by: Lionel Koenig <lionelk@webrtc.org>
Reviewed-by: Per Kjellander <perkj@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#39112}
diff --git a/rtc_tools/rtc_event_log_visualizer/analyzer.cc b/rtc_tools/rtc_event_log_visualizer/analyzer.cc
index 6b9449f..a5b8b49 100644
--- a/rtc_tools/rtc_event_log_visualizer/analyzer.cc
+++ b/rtc_tools/rtc_event_log_visualizer/analyzer.cc
@@ -205,7 +205,6 @@
return delay_change;
}
-
template <typename T>
TimeSeries CreateRtcpTypeTimeSeries(const std::vector<T>& rtcp_list,
AnalyzerConfig config,
@@ -617,6 +616,30 @@
plot->SetTitle("Audio playout");
}
+void EventLogAnalyzer::CreateNetEqSetMinimumDelay(Plot* plot) {
+ for (const auto& playout_stream :
+ parsed_log_.neteq_set_minimum_delay_events()) {
+ uint32_t ssrc = playout_stream.first;
+ if (!MatchingSsrc(ssrc, desired_ssrc_))
+ continue;
+
+ TimeSeries time_series(SsrcToString(ssrc), LineStyle::kStep,
+ PointStyle::kHighlight);
+ for (const auto& event : playout_stream.second) {
+ float x = config_.GetCallTimeSec(event.log_time());
+ float y = event.minimum_delay_ms;
+ time_series.points.push_back(TimeSeriesPoint(x, y));
+ }
+ plot->AppendTimeSeries(std::move(time_series));
+ }
+
+ plot->SetXAxis(config_.CallBeginTimeSec(), config_.CallEndTimeSec(),
+ "Time (s)", kLeftMargin, kRightMargin);
+ plot->SetSuggestedYAxis(0, 1000, "Minimum Delay (ms)", kBottomMargin,
+ kTopMargin);
+ plot->SetTitle("Set Minimum Delay");
+}
+
// For audio SSRCs, plot the audio level.
void EventLogAnalyzer::CreateAudioLevelGraph(PacketDirection direction,
Plot* plot) {
diff --git a/rtc_tools/rtc_event_log_visualizer/analyzer.h b/rtc_tools/rtc_event_log_visualizer/analyzer.h
index 1f31d8b..e58a482 100644
--- a/rtc_tools/rtc_event_log_visualizer/analyzer.h
+++ b/rtc_tools/rtc_event_log_visualizer/analyzer.h
@@ -46,6 +46,8 @@
void CreatePlayoutGraph(Plot* plot);
+ void CreateNetEqSetMinimumDelay(Plot* plot);
+
void CreateAudioLevelGraph(PacketDirection direction, Plot* plot);
void CreateSequenceNumberGraph(Plot* plot);
diff --git a/rtc_tools/rtc_event_log_visualizer/main.cc b/rtc_tools/rtc_event_log_visualizer/main.cc
index 9f0c632..4988808 100644
--- a/rtc_tools/rtc_event_log_visualizer/main.cc
+++ b/rtc_tools/rtc_event_log_visualizer/main.cc
@@ -322,6 +322,11 @@
});
plots.RegisterPlot("audio_playout",
[&](Plot* plot) { analyzer.CreatePlayoutGraph(plot); });
+
+ plots.RegisterPlot("neteq_set_minimum_delay", [&](Plot* plot) {
+ analyzer.CreateNetEqSetMinimumDelay(plot);
+ });
+
plots.RegisterPlot("incoming_audio_level", [&](Plot* plot) {
analyzer.CreateAudioLevelGraph(webrtc::kIncomingPacket, plot);
});