Index: webrtc/logging/rtc_event_log/rtc_event_log_parser.cc |
diff --git a/webrtc/logging/rtc_event_log/rtc_event_log_parser.cc b/webrtc/logging/rtc_event_log/rtc_event_log_parser.cc |
index a806b3db0e663149c1157a7833fb306304210847..815308df11fe804341bb0d9c9efe9535b4d2f40c 100644 |
--- a/webrtc/logging/rtc_event_log/rtc_event_log_parser.cc |
+++ b/webrtc/logging/rtc_event_log/rtc_event_log_parser.cc |
@@ -534,4 +534,58 @@ void ParsedRtcEventLog::GetAudioNetworkAdaptation( |
rtc::Optional<float>(ana_event.uplink_packet_loss_fraction()); |
} |
+ParsedRtcEventLog::BweProbeClusterCreatedEvent |
+ParsedRtcEventLog::GetBweProbeClusterCreated(size_t index) const { |
+ RTC_CHECK_LT(index, GetNumberOfEvents()); |
+ const rtclog::Event& event = events_[index]; |
+ RTC_CHECK(event.has_type()); |
+ RTC_CHECK_EQ(event.type(), rtclog::Event::BWE_PROBE_CLUSTER_CREATED_EVENT); |
+ RTC_CHECK(event.has_probe_cluster()); |
+ const rtclog::BweProbeCluster& pcc_event = event.probe_cluster(); |
+ BweProbeClusterCreatedEvent res; |
+ res.timestamp = GetTimestamp(index); |
+ RTC_CHECK(pcc_event.has_id()); |
+ res.id = pcc_event.id(); |
+ RTC_CHECK(pcc_event.has_bitrate_bps()); |
+ res.bitrate_bps = pcc_event.bitrate_bps(); |
+ RTC_CHECK(pcc_event.has_min_packets()); |
+ res.min_packets = pcc_event.min_packets(); |
+ RTC_CHECK(pcc_event.has_min_bytes()); |
+ res.min_bytes = pcc_event.min_bytes(); |
+ return res; |
+} |
+ |
+ParsedRtcEventLog::BweProbeResultEvent ParsedRtcEventLog::GetBweProbeResult( |
+ size_t index) const { |
+ RTC_CHECK_LT(index, GetNumberOfEvents()); |
+ const rtclog::Event& event = events_[index]; |
+ RTC_CHECK(event.has_type()); |
+ RTC_CHECK_EQ(event.type(), rtclog::Event::BWE_PROBE_RESULT_EVENT); |
+ RTC_CHECK(event.has_probe_result()); |
+ const rtclog::BweProbeResult& pr_event = event.probe_result(); |
+ BweProbeResultEvent res; |
+ res.timestamp = GetTimestamp(index); |
+ RTC_CHECK(pr_event.has_id()); |
+ res.id = pr_event.id(); |
+ |
+ RTC_CHECK(pr_event.has_result()); |
+ if (pr_event.result() == rtclog::BweProbeResult::SUCCESS) { |
+ RTC_CHECK(pr_event.has_bitrate_bps()); |
+ res.bitrate_bps = rtc::Optional<uint64_t>(pr_event.bitrate_bps()); |
+ } else if (pr_event.result() == |
+ rtclog::BweProbeResult::INVALID_SEND_RECEIVE_INTERVAL) { |
+ res.failure_reason = |
+ rtc::Optional<ProbeFailureReason>(kInvalidSendReceiveInterval); |
+ } else if (pr_event.result() == |
+ rtclog::BweProbeResult::INVALID_SEND_RECEIVE_RATIO) { |
+ res.failure_reason = |
+ rtc::Optional<ProbeFailureReason>(kInvalidSendReceiveRatio); |
+ } else if (pr_event.result() == rtclog::BweProbeResult::TIMEOUT) { |
+ res.failure_reason = rtc::Optional<ProbeFailureReason>(kTimeout); |
+ } else { |
+ RTC_NOTREACHED(); |
+ } |
+ |
+ return res; |
+} |
} // namespace webrtc |