From c97933fb82f862a4da64a89fbfcb6586ff4347ac Mon Sep 17 00:00:00 2001 From: Minyue Li Date: Fri, 10 Aug 2018 12:51:15 +0200 Subject: [PATCH] Clean up code regarding jitter buffer plot in event log visualizer. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bug: webrtc:9147 Change-Id: I2c1f0b383706ae9a788eb8b5d308d4c7fe612730 Reviewed-on: https://webrtc-review.googlesource.com/92390 Commit-Queue: Minyue Li Reviewed-by: Björn Terelius Cr-Commit-Position: refs/heads/master@{#24261} --- .../neteq/tools/neteq_replacement_input.cc | 1 - rtc_tools/event_log_visualizer/analyzer.cc | 50 +++++++------------ 2 files changed, 17 insertions(+), 34 deletions(-) diff --git a/modules/audio_coding/neteq/tools/neteq_replacement_input.cc b/modules/audio_coding/neteq/tools/neteq_replacement_input.cc index 6aa75815cd..362eb89de9 100644 --- a/modules/audio_coding/neteq/tools/neteq_replacement_input.cc +++ b/modules/audio_coding/neteq/tools/neteq_replacement_input.cc @@ -28,7 +28,6 @@ NetEqReplacementInput::NetEqReplacementInput( RTC_CHECK(source_); packet_ = source_->PopPacket(); ReplacePacket(); - RTC_CHECK(packet_); } absl::optional NetEqReplacementInput::NextPacketTime() const { diff --git a/rtc_tools/event_log_visualizer/analyzer.cc b/rtc_tools/event_log_visualizer/analyzer.cc index 4ddd68c9e4..56ea1c7fe3 100644 --- a/rtc_tools/event_log_visualizer/analyzer.cc +++ b/rtc_tools/event_log_visualizer/analyzer.cc @@ -1826,9 +1826,8 @@ EventLogAnalyzer::NetEqStatsGetterMap EventLogAnalyzer::SimulateNetEq( return neteq_stats; } -// Plots the jitter buffer delay profile. This will plot only for the first -// incoming audio SSRC. If the stream contains more than one incoming audio -// SSRC, all but the first will be ignored. +// Given a NetEqStatsGetter and the SSRC that the NetEqStatsGetter was created +// for, this method generates a plot for the jitter buffer delay profile. void EventLogAnalyzer::CreateAudioJitterBufferGraph( uint32_t ssrc, const test::NetEqStatsGetter* stats_getter, @@ -1842,55 +1841,40 @@ void EventLogAnalyzer::CreateAudioJitterBufferGraph( &arrival_delay_ms, &corrected_arrival_delay_ms, &playout_delay_ms, &target_delay_ms); - std::map time_series_packet_arrival; - std::map time_series_relative_packet_arrival; - std::map time_series_play_time; - std::map time_series_target_time; + TimeSeries time_series_packet_arrival("packet arrival delay", + LineStyle::kLine); + TimeSeries time_series_relative_packet_arrival( + "Relative packet arrival delay", LineStyle::kLine); + TimeSeries time_series_play_time("Playout delay", LineStyle::kLine); + TimeSeries time_series_target_time("Target delay", LineStyle::kLine, + PointStyle::kHighlight); for (const auto& data : arrival_delay_ms) { const float x = ToCallTimeSec(data.first * 1000); // ms to us. const float y = data.second; - time_series_packet_arrival[ssrc].points.emplace_back(TimeSeriesPoint(x, y)); + time_series_packet_arrival.points.emplace_back(TimeSeriesPoint(x, y)); } for (const auto& data : corrected_arrival_delay_ms) { const float x = ToCallTimeSec(data.first * 1000); // ms to us. const float y = data.second; - time_series_relative_packet_arrival[ssrc].points.emplace_back( + time_series_relative_packet_arrival.points.emplace_back( TimeSeriesPoint(x, y)); } for (const auto& data : playout_delay_ms) { const float x = ToCallTimeSec(data.first * 1000); // ms to us. const float y = data.second; - time_series_play_time[ssrc].points.emplace_back(TimeSeriesPoint(x, y)); + time_series_play_time.points.emplace_back(TimeSeriesPoint(x, y)); } for (const auto& data : target_delay_ms) { const float x = ToCallTimeSec(data.first * 1000); // ms to us. const float y = data.second; - time_series_target_time[ssrc].points.emplace_back(TimeSeriesPoint(x, y)); + time_series_target_time.points.emplace_back(TimeSeriesPoint(x, y)); } - // This code is adapted for a single stream. The creation of the streams above - // guarantee that no more than one steam is included. If multiple streams are - // to be plotted, they should likely be given distinct labels below. - RTC_DCHECK_EQ(time_series_relative_packet_arrival.size(), 1); - for (auto& series : time_series_relative_packet_arrival) { - series.second.label = "Relative packet arrival delay"; - series.second.line_style = LineStyle::kLine; - plot->AppendTimeSeries(std::move(series.second)); - } - RTC_DCHECK_EQ(time_series_play_time.size(), 1); - for (auto& series : time_series_play_time) { - series.second.label = "Playout delay"; - series.second.line_style = LineStyle::kLine; - plot->AppendTimeSeries(std::move(series.second)); - } - RTC_DCHECK_EQ(time_series_target_time.size(), 1); - for (auto& series : time_series_target_time) { - series.second.label = "Target delay"; - series.second.line_style = LineStyle::kLine; - series.second.point_style = PointStyle::kHighlight; - plot->AppendTimeSeries(std::move(series.second)); - } + plot->AppendTimeSeries(std::move(time_series_packet_arrival)); + plot->AppendTimeSeries(std::move(time_series_relative_packet_arrival)); + plot->AppendTimeSeries(std::move(time_series_play_time)); + plot->AppendTimeSeries(std::move(time_series_target_time)); plot->SetXAxis(ToCallTimeSec(begin_time_), call_duration_s_, "Time (s)", kLeftMargin, kRightMargin);