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 c1bf94458dfb3bc2407ef2c2cfb08e80372f7705..713d4fc78ac5225b1700bf1903ae23892e9e84bb 100644 |
--- a/webrtc/logging/rtc_event_log/rtc_event_log_parser.cc |
+++ b/webrtc/logging/rtc_event_log/rtc_event_log_parser.cc |
@@ -69,10 +69,10 @@ ParsedRtcEventLog::EventType GetRuntimeEventType( |
return ParsedRtcEventLog::EventType::RTCP_EVENT; |
case rtclog::Event::AUDIO_PLAYOUT_EVENT: |
return ParsedRtcEventLog::EventType::AUDIO_PLAYOUT_EVENT; |
- case rtclog::Event::BWE_PACKET_LOSS_EVENT: |
- return ParsedRtcEventLog::EventType::BWE_PACKET_LOSS_EVENT; |
- case rtclog::Event::BWE_PACKET_DELAY_EVENT: |
- return ParsedRtcEventLog::EventType::BWE_PACKET_DELAY_EVENT; |
+ case rtclog::Event::LOSS_BASED_BWE_UPDATE: |
+ return ParsedRtcEventLog::EventType::LOSS_BASED_BWE_UPDATE; |
+ case rtclog::Event::DELAY_BASED_BWE_UPDATE: |
+ return ParsedRtcEventLog::EventType::DELAY_BASED_BWE_UPDATE; |
case rtclog::Event::VIDEO_RECEIVER_CONFIG_EVENT: |
return ParsedRtcEventLog::EventType::VIDEO_RECEIVER_CONFIG_EVENT; |
case rtclog::Event::VIDEO_SENDER_CONFIG_EVENT: |
@@ -88,6 +88,20 @@ ParsedRtcEventLog::EventType GetRuntimeEventType( |
return ParsedRtcEventLog::EventType::UNKNOWN_EVENT; |
} |
+BandwidthUsage GetRuntimeDetectorState( |
+ rtclog::DelayBasedBweUpdate::DetectorState detector_state) { |
+ switch (detector_state) { |
+ case rtclog::DelayBasedBweUpdate::BWE_NORMAL: |
+ return kBwNormal; |
+ case rtclog::DelayBasedBweUpdate::BWE_UNDERUSING: |
+ return kBwUnderusing; |
+ case rtclog::DelayBasedBweUpdate::BWE_OVERUSING: |
+ return kBwOverusing; |
+ } |
+ RTC_NOTREACHED(); |
+ return kBwNormal; |
+} |
+ |
std::pair<uint64_t, bool> ParseVarInt(std::istream& stream) { |
uint64_t varint = 0; |
for (size_t bytes_read = 0; bytes_read < 10; ++bytes_read) { |
@@ -447,19 +461,19 @@ void ParsedRtcEventLog::GetAudioPlayout(size_t index, uint32_t* ssrc) const { |
} |
} |
-void ParsedRtcEventLog::GetBwePacketLossEvent(size_t index, |
- int32_t* bitrate, |
+void ParsedRtcEventLog::GetLossBasedBweUpdate(size_t index, |
+ int32_t* bitrate_bps, |
uint8_t* fraction_loss, |
int32_t* total_packets) 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_PACKET_LOSS_EVENT); |
- RTC_CHECK(event.has_bwe_packet_loss_event()); |
- const rtclog::BwePacketLossEvent& loss_event = event.bwe_packet_loss_event(); |
- RTC_CHECK(loss_event.has_bitrate()); |
- if (bitrate != nullptr) { |
- *bitrate = loss_event.bitrate(); |
+ RTC_CHECK_EQ(event.type(), rtclog::Event::LOSS_BASED_BWE_UPDATE); |
+ RTC_CHECK(event.has_loss_based_bwe_update()); |
+ const rtclog::LossBasedBweUpdate& loss_event = event.loss_based_bwe_update(); |
+ RTC_CHECK(loss_event.has_bitrate_bps()); |
+ if (bitrate_bps != nullptr) { |
+ *bitrate_bps = loss_event.bitrate_bps(); |
} |
RTC_CHECK(loss_event.has_fraction_loss()); |
if (fraction_loss != nullptr) { |
@@ -471,6 +485,27 @@ void ParsedRtcEventLog::GetBwePacketLossEvent(size_t index, |
} |
} |
+void ParsedRtcEventLog::GetDelayBasedBweUpdate( |
+ size_t index, |
+ int32_t* bitrate_bps, |
+ BandwidthUsage* detector_state) const { |
+ RTC_CHECK_LT(index, GetNumberOfEvents()); |
+ const rtclog::Event& event = events_[index]; |
+ RTC_CHECK(event.has_type()); |
+ RTC_CHECK_EQ(event.type(), rtclog::Event::DELAY_BASED_BWE_UPDATE); |
+ RTC_CHECK(event.has_delay_based_bwe_update()); |
+ const rtclog::DelayBasedBweUpdate& delay_event = |
+ event.delay_based_bwe_update(); |
+ RTC_CHECK(delay_event.has_bitrate_bps()); |
+ if (bitrate_bps != nullptr) { |
+ *bitrate_bps = delay_event.bitrate_bps(); |
+ } |
+ RTC_CHECK(delay_event.has_detector_state()); |
+ if (detector_state != nullptr) { |
+ *detector_state = GetRuntimeDetectorState(delay_event.detector_state()); |
+ } |
+} |
+ |
void ParsedRtcEventLog::GetAudioNetworkAdaptation( |
size_t index, |
AudioNetworkAdaptor::EncoderRuntimeConfig* config) const { |