Index: webrtc/tools/event_log_visualizer/analyzer.cc |
diff --git a/webrtc/tools/event_log_visualizer/analyzer.cc b/webrtc/tools/event_log_visualizer/analyzer.cc |
index b57f89e73f157f4d2b1081371c9a08242aaea90d..f38547cf23177145e7e08371913514eeb76b6c07 100644 |
--- a/webrtc/tools/event_log_visualizer/analyzer.cc |
+++ b/webrtc/tools/event_log_visualizer/analyzer.cc |
@@ -1167,5 +1167,33 @@ void EventLogAnalyzer::CreateNetworkDelayFeedbackGraph(Plot* plot) { |
plot->SetSuggestedYAxis(0, 10, "Delay (ms)", kBottomMargin, kTopMargin); |
plot->SetTitle("Network Delay Change."); |
} |
+ |
+std::vector<int64_t> EventLogAnalyzer::GetFrameTimestamps() const { |
+ std::vector<int64_t> timestamps; |
+ size_t largest_stream_size = 0; |
+ const std::vector<LoggedRtpPacket>* largest_video_stream = nullptr; |
+ // Find the incoming video stream with the most number of packets that is |
+ // not rtx. |
+ for (const auto& kv : rtp_packets_) { |
+ if (kv.first.GetDirection() == kIncomingPacket && |
+ video_ssrcs_.find(kv.first) != video_ssrcs_.end() && |
+ rtx_ssrcs_.find(kv.first) == rtx_ssrcs_.end() && |
+ kv.second.size() > largest_stream_size) { |
+ largest_stream_size = kv.second.size(); |
+ largest_video_stream = &kv.second; |
+ } |
+ } |
+ if (largest_video_stream == nullptr) |
+ return std::vector<int64_t>(); |
terelius
2016/12/20 15:25:08
Maybe:
if (largest_video_stream != nullptr) {
fo
stefan-webrtc
2016/12/20 15:28:39
Done.
|
+ for (auto& packet : *largest_video_stream) { |
+ if (packet.header.markerBit) { |
+ int64_t capture_ms = packet.header.timestamp / 90.0; |
+ timestamps.push_back(capture_ms); |
terelius
2016/12/20 15:25:08
I think it would be nicer if timestamps was a vect
stefan-webrtc
2016/12/20 15:28:39
Done.
|
+ int64_t arrival_ms = packet.timestamp / 1000.0; |
+ timestamps.push_back(arrival_ms); |
+ } |
+ } |
+ return timestamps; |
+} |
} // namespace plotting |
} // namespace webrtc |