Plot accumelated packets over time.
BUG= Review-Url: https://codereview.webrtc.org/2295063006 Cr-Commit-Position: refs/heads/master@{#14066}
This commit is contained in:
@ -498,6 +498,53 @@ void EventLogAnalyzer::CreatePacketGraph(PacketDirection desired_direction,
|
||||
}
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
void EventLogAnalyzer::CreateAccumulatedPacketsTimeSeries(
|
||||
PacketDirection desired_direction,
|
||||
Plot* plot,
|
||||
const std::map<StreamId, std::vector<T>>& packets,
|
||||
const std::string& label_prefix) {
|
||||
for (auto& kv : packets) {
|
||||
StreamId stream_id = kv.first;
|
||||
const std::vector<T>& packet_stream = kv.second;
|
||||
// Filter on direction and SSRC.
|
||||
if (stream_id.GetDirection() != desired_direction ||
|
||||
!MatchingSsrc(stream_id.GetSsrc(), desired_ssrc_)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
TimeSeries time_series;
|
||||
time_series.label = label_prefix + " " + SsrcToString(stream_id.GetSsrc());
|
||||
time_series.style = LINE_GRAPH;
|
||||
|
||||
for (size_t i = 0; i < packet_stream.size(); i++) {
|
||||
float x = static_cast<float>(packet_stream[i].timestamp - begin_time_) /
|
||||
1000000;
|
||||
time_series.points.emplace_back(x, i);
|
||||
time_series.points.emplace_back(x, i + 1);
|
||||
}
|
||||
|
||||
plot->series_list_.push_back(std::move(time_series));
|
||||
}
|
||||
}
|
||||
|
||||
void EventLogAnalyzer::CreateAccumulatedPacketsGraph(
|
||||
PacketDirection desired_direction,
|
||||
Plot* plot) {
|
||||
CreateAccumulatedPacketsTimeSeries(desired_direction, plot, rtp_packets_,
|
||||
"RTP");
|
||||
CreateAccumulatedPacketsTimeSeries(desired_direction, plot, rtcp_packets_,
|
||||
"RTCP");
|
||||
|
||||
plot->SetXAxis(0, call_duration_s_, "Time (s)", kLeftMargin, kRightMargin);
|
||||
plot->SetSuggestedYAxis(0, 1, "Received Packets", kBottomMargin, kTopMargin);
|
||||
if (desired_direction == webrtc::PacketDirection::kIncomingPacket) {
|
||||
plot->SetTitle("Accumulated Incoming RTP/RTCP packets");
|
||||
} else if (desired_direction == webrtc::PacketDirection::kOutgoingPacket) {
|
||||
plot->SetTitle("Accumulated Outgoing RTP/RTCP packets");
|
||||
}
|
||||
}
|
||||
|
||||
// For each SSRC, plot the time between the consecutive playouts.
|
||||
void EventLogAnalyzer::CreatePlayoutGraph(Plot* plot) {
|
||||
std::map<uint32_t, TimeSeries> time_series;
|
||||
|
||||
@ -11,11 +11,12 @@
|
||||
#ifndef WEBRTC_TOOLS_EVENT_LOG_VISUALIZER_ANALYZER_H_
|
||||
#define WEBRTC_TOOLS_EVENT_LOG_VISUALIZER_ANALYZER_H_
|
||||
|
||||
#include <vector>
|
||||
#include <map>
|
||||
#include <memory>
|
||||
#include <set>
|
||||
#include <string>
|
||||
#include <utility>
|
||||
#include <vector>
|
||||
|
||||
#include "webrtc/call/rtc_event_log_parser.h"
|
||||
#include "webrtc/modules/rtp_rtcp/include/rtp_rtcp_defines.h"
|
||||
@ -60,6 +61,9 @@ class EventLogAnalyzer {
|
||||
|
||||
void CreatePacketGraph(PacketDirection desired_direction, Plot* plot);
|
||||
|
||||
void CreateAccumulatedPacketsGraph(PacketDirection desired_direction,
|
||||
Plot* plot);
|
||||
|
||||
void CreatePlayoutGraph(Plot* plot);
|
||||
|
||||
void CreateSequenceNumberGraph(Plot* plot);
|
||||
@ -99,6 +103,13 @@ class EventLogAnalyzer {
|
||||
webrtc::PacketDirection direction_;
|
||||
};
|
||||
|
||||
template <typename T>
|
||||
void CreateAccumulatedPacketsTimeSeries(
|
||||
PacketDirection desired_direction,
|
||||
Plot* plot,
|
||||
const std::map<StreamId, std::vector<T>>& packets,
|
||||
const std::string& label_prefix);
|
||||
|
||||
bool IsRtxSsrc(StreamId stream_id);
|
||||
|
||||
bool IsVideoSsrc(StreamId stream_id);
|
||||
|
||||
@ -91,10 +91,16 @@ int main(int argc, char* argv[]) {
|
||||
if (FLAGS_incoming) {
|
||||
analyzer.CreatePacketGraph(webrtc::PacketDirection::kIncomingPacket,
|
||||
collection->AppendNewPlot());
|
||||
analyzer.CreateAccumulatedPacketsGraph(
|
||||
webrtc::PacketDirection::kIncomingPacket,
|
||||
collection->AppendNewPlot());
|
||||
}
|
||||
if (FLAGS_outgoing) {
|
||||
analyzer.CreatePacketGraph(webrtc::PacketDirection::kOutgoingPacket,
|
||||
collection->AppendNewPlot());
|
||||
analyzer.CreateAccumulatedPacketsGraph(
|
||||
webrtc::PacketDirection::kOutgoingPacket,
|
||||
collection->AppendNewPlot());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user