From fdc635d2a8ffceeec44b57a83c9ca102fba1a88f Mon Sep 17 00:00:00 2001 From: Bjorn Terelius Date: Wed, 14 Nov 2018 13:40:13 +0100 Subject: [PATCH] Remove deprecated APIs from RTC event log parser. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bug: webrtc:8111 Change-Id: Ic64f8754c35c2de16d1f74e5d470a501d0a1af52 Reviewed-on: https://webrtc-review.googlesource.com/c/110900 Reviewed-by: Sebastian Jansson Commit-Queue: Björn Terelius Cr-Commit-Position: refs/heads/master@{#25637} --- .../rtc_event_log/rtc_event_log2rtp_dump.cc | 2 - .../rtc_event_log/rtc_event_log_parser_new.cc | 246 +++--------------- .../rtc_event_log/rtc_event_log_parser_new.h | 161 +++--------- rtc_tools/event_log_visualizer/main.cc | 4 +- 4 files changed, 62 insertions(+), 351 deletions(-) diff --git a/logging/rtc_event_log/rtc_event_log2rtp_dump.cc b/logging/rtc_event_log/rtc_event_log2rtp_dump.cc index 094af1f82d..da7df64fad 100644 --- a/logging/rtc_event_log/rtc_event_log2rtp_dump.cc +++ b/logging/rtc_event_log/rtc_event_log2rtp_dump.cc @@ -198,8 +198,6 @@ int main(int argc, char* argv[]) { return -1; } - std::cout << "Found " << parsed_stream.GetNumberOfEvents() - << " events in the input file." << std::endl; int rtp_counter = 0, rtcp_counter = 0; bool header_only = false; diff --git a/logging/rtc_event_log/rtc_event_log_parser_new.cc b/logging/rtc_event_log/rtc_event_log_parser_new.cc index 90445c8d6d..9fce8401cf 100644 --- a/logging/rtc_event_log/rtc_event_log_parser_new.cc +++ b/logging/rtc_event_log/rtc_event_log_parser_new.cc @@ -59,52 +59,6 @@ RtcpMode GetRuntimeRtcpMode(rtclog::VideoReceiveConfig::RtcpMode rtcp_mode) { return RtcpMode::kOff; } -ParsedRtcEventLogNew::EventType GetRuntimeEventType( - rtclog::Event::EventType event_type) { - switch (event_type) { - case rtclog::Event::UNKNOWN_EVENT: - return ParsedRtcEventLogNew::EventType::UNKNOWN_EVENT; - case rtclog::Event::LOG_START: - return ParsedRtcEventLogNew::EventType::LOG_START; - case rtclog::Event::LOG_END: - return ParsedRtcEventLogNew::EventType::LOG_END; - case rtclog::Event::RTP_EVENT: - return ParsedRtcEventLogNew::EventType::RTP_EVENT; - case rtclog::Event::RTCP_EVENT: - return ParsedRtcEventLogNew::EventType::RTCP_EVENT; - case rtclog::Event::AUDIO_PLAYOUT_EVENT: - return ParsedRtcEventLogNew::EventType::AUDIO_PLAYOUT_EVENT; - case rtclog::Event::LOSS_BASED_BWE_UPDATE: - return ParsedRtcEventLogNew::EventType::LOSS_BASED_BWE_UPDATE; - case rtclog::Event::DELAY_BASED_BWE_UPDATE: - return ParsedRtcEventLogNew::EventType::DELAY_BASED_BWE_UPDATE; - case rtclog::Event::VIDEO_RECEIVER_CONFIG_EVENT: - return ParsedRtcEventLogNew::EventType::VIDEO_RECEIVER_CONFIG_EVENT; - case rtclog::Event::VIDEO_SENDER_CONFIG_EVENT: - return ParsedRtcEventLogNew::EventType::VIDEO_SENDER_CONFIG_EVENT; - case rtclog::Event::AUDIO_RECEIVER_CONFIG_EVENT: - return ParsedRtcEventLogNew::EventType::AUDIO_RECEIVER_CONFIG_EVENT; - case rtclog::Event::AUDIO_SENDER_CONFIG_EVENT: - return ParsedRtcEventLogNew::EventType::AUDIO_SENDER_CONFIG_EVENT; - case rtclog::Event::AUDIO_NETWORK_ADAPTATION_EVENT: - return ParsedRtcEventLogNew::EventType::AUDIO_NETWORK_ADAPTATION_EVENT; - case rtclog::Event::BWE_PROBE_CLUSTER_CREATED_EVENT: - return ParsedRtcEventLogNew::EventType::BWE_PROBE_CLUSTER_CREATED_EVENT; - case rtclog::Event::BWE_PROBE_RESULT_EVENT: - // Probe successes and failures are currently stored in the same proto - // message, we are moving towards separate messages. Probe results - // therefore need special treatment in the parser. - return ParsedRtcEventLogNew::EventType::UNKNOWN_EVENT; - case rtclog::Event::ALR_STATE_EVENT: - return ParsedRtcEventLogNew::EventType::ALR_STATE_EVENT; - case rtclog::Event::ICE_CANDIDATE_PAIR_CONFIG: - return ParsedRtcEventLogNew::EventType::ICE_CANDIDATE_PAIR_CONFIG; - case rtclog::Event::ICE_CANDIDATE_PAIR_EVENT: - return ParsedRtcEventLogNew::EventType::ICE_CANDIDATE_PAIR_EVENT; - } - return ParsedRtcEventLogNew::EventType::UNKNOWN_EVENT; -} - BandwidthUsage GetRuntimeDetectorState( rtclog::DelayBasedBweUpdate::DetectorState detector_state) { switch (detector_state) { @@ -846,7 +800,6 @@ ParsedRtcEventLogNew::ParsedRtcEventLogNew( } void ParsedRtcEventLogNew::Clear() { - events_.clear(); default_extension_map_ = GetDefaultHeaderExtensionMap(); incoming_rtx_ssrcs_.clear(); @@ -1030,7 +983,6 @@ bool ParsedRtcEventLogNew::ParseStreamInternal( RTC_CHECK_EQ(event_stream.stream_size(), 1); StoreParsedLegacyEvent(event_stream.stream(0)); - events_.push_back(event_stream.stream(0)); } else { // Parse the protobuf event from the buffer. rtclog2::EventStream event_stream; @@ -1045,6 +997,7 @@ bool ParsedRtcEventLogNew::ParseStreamInternal( } void ParsedRtcEventLogNew::StoreParsedLegacyEvent(const rtclog::Event& event) { + RTC_CHECK(event.has_type()); if (event.type() != rtclog::Event::VIDEO_RECEIVER_CONFIG_EVENT && event.type() != rtclog::Event::VIDEO_SENDER_CONFIG_EVENT && event.type() != rtclog::Event::AUDIO_RECEIVER_CONFIG_EVENT && @@ -1057,8 +1010,8 @@ void ParsedRtcEventLogNew::StoreParsedLegacyEvent(const rtclog::Event& event) { last_timestamp_ = std::max(last_timestamp_, timestamp); } - switch (GetEventType(event)) { - case ParsedRtcEventLogNew::EventType::VIDEO_RECEIVER_CONFIG_EVENT: { + switch (event.type()) { + case rtclog::Event::VIDEO_RECEIVER_CONFIG_EVENT: { rtclog::StreamConfig config = GetVideoReceiveConfig(event); video_recv_configs_.emplace_back(GetTimestamp(event), config); incoming_rtp_extensions_maps_[config.remote_ssrc] = @@ -1073,7 +1026,7 @@ void ParsedRtcEventLogNew::StoreParsedLegacyEvent(const rtclog::Event& event) { incoming_rtx_ssrcs_.insert(config.rtx_ssrc); break; } - case ParsedRtcEventLogNew::EventType::VIDEO_SENDER_CONFIG_EVENT: { + case rtclog::Event::VIDEO_SENDER_CONFIG_EVENT: { std::vector configs = GetVideoSendConfig(event); video_send_configs_.emplace_back(GetTimestamp(event), configs); for (const auto& config : configs) { @@ -1087,7 +1040,7 @@ void ParsedRtcEventLogNew::StoreParsedLegacyEvent(const rtclog::Event& event) { } break; } - case ParsedRtcEventLogNew::EventType::AUDIO_RECEIVER_CONFIG_EVENT: { + case rtclog::Event::AUDIO_RECEIVER_CONFIG_EVENT: { rtclog::StreamConfig config = GetAudioReceiveConfig(event); audio_recv_configs_.emplace_back(GetTimestamp(event), config); incoming_rtp_extensions_maps_[config.remote_ssrc] = @@ -1097,7 +1050,7 @@ void ParsedRtcEventLogNew::StoreParsedLegacyEvent(const rtclog::Event& event) { incoming_audio_ssrcs_.insert(config.remote_ssrc); break; } - case ParsedRtcEventLogNew::EventType::AUDIO_SENDER_CONFIG_EVENT: { + case rtclog::Event::AUDIO_SENDER_CONFIG_EVENT: { rtclog::StreamConfig config = GetAudioSendConfig(event); audio_send_configs_.emplace_back(GetTimestamp(event), config); outgoing_rtp_extensions_maps_[config.local_ssrc] = @@ -1105,7 +1058,7 @@ void ParsedRtcEventLogNew::StoreParsedLegacyEvent(const rtclog::Event& event) { outgoing_audio_ssrcs_.insert(config.local_ssrc); break; } - case ParsedRtcEventLogNew::EventType::RTP_EVENT: { + case rtclog::Event::RTP_EVENT: { PacketDirection direction; uint8_t header[IP_PACKET_SIZE]; size_t header_length; @@ -1148,7 +1101,7 @@ void ParsedRtcEventLogNew::StoreParsedLegacyEvent(const rtclog::Event& event) { } break; } - case ParsedRtcEventLogNew::EventType::RTCP_EVENT: { + case rtclog::Event::RTCP_EVENT: { PacketDirection direction; uint8_t packet[IP_PACKET_SIZE]; size_t total_length; @@ -1234,113 +1187,76 @@ void ParsedRtcEventLogNew::StoreParsedLegacyEvent(const rtclog::Event& event) { } break; } - case ParsedRtcEventLogNew::EventType::LOG_START: { + case rtclog::Event::LOG_START: { start_log_events_.push_back(LoggedStartEvent(GetTimestamp(event))); break; } - case ParsedRtcEventLogNew::EventType::LOG_END: { + case rtclog::Event::LOG_END: { stop_log_events_.push_back(LoggedStopEvent(GetTimestamp(event))); break; } - case ParsedRtcEventLogNew::EventType::AUDIO_PLAYOUT_EVENT: { + case rtclog::Event::AUDIO_PLAYOUT_EVENT: { LoggedAudioPlayoutEvent playout_event = GetAudioPlayout(event); audio_playout_events_[playout_event.ssrc].push_back(playout_event); break; } - case ParsedRtcEventLogNew::EventType::LOSS_BASED_BWE_UPDATE: { + case rtclog::Event::LOSS_BASED_BWE_UPDATE: { bwe_loss_updates_.push_back(GetLossBasedBweUpdate(event)); break; } - case ParsedRtcEventLogNew::EventType::DELAY_BASED_BWE_UPDATE: { + case rtclog::Event::DELAY_BASED_BWE_UPDATE: { bwe_delay_updates_.push_back(GetDelayBasedBweUpdate(event)); break; } - case ParsedRtcEventLogNew::EventType::AUDIO_NETWORK_ADAPTATION_EVENT: { + case rtclog::Event::AUDIO_NETWORK_ADAPTATION_EVENT: { LoggedAudioNetworkAdaptationEvent ana_event = GetAudioNetworkAdaptation(event); audio_network_adaptation_events_.push_back(ana_event); break; } - case ParsedRtcEventLogNew::EventType::BWE_PROBE_CLUSTER_CREATED_EVENT: { + case rtclog::Event::BWE_PROBE_CLUSTER_CREATED_EVENT: { bwe_probe_cluster_created_events_.push_back( GetBweProbeClusterCreated(event)); break; } - case ParsedRtcEventLogNew::EventType::BWE_PROBE_FAILURE_EVENT: { - bwe_probe_failure_events_.push_back(GetBweProbeFailure(event)); + case rtclog::Event::BWE_PROBE_RESULT_EVENT: { + // Probe successes and failures are currently stored in the same proto + // message, we are moving towards separate messages. Probe results + // therefore need special treatment in the parser. + RTC_CHECK(event.has_probe_result()); + RTC_CHECK(event.probe_result().has_result()); + if (event.probe_result().result() == rtclog::BweProbeResult::SUCCESS) { + bwe_probe_success_events_.push_back(GetBweProbeSuccess(event)); + } else { + bwe_probe_failure_events_.push_back(GetBweProbeFailure(event)); + } break; } - case ParsedRtcEventLogNew::EventType::BWE_PROBE_SUCCESS_EVENT: { - bwe_probe_success_events_.push_back(GetBweProbeSuccess(event)); - break; - } - case ParsedRtcEventLogNew::EventType::ALR_STATE_EVENT: { + case rtclog::Event::ALR_STATE_EVENT: { alr_state_events_.push_back(GetAlrState(event)); break; } - case ParsedRtcEventLogNew::EventType::ICE_CANDIDATE_PAIR_CONFIG: { + case rtclog::Event::ICE_CANDIDATE_PAIR_CONFIG: { ice_candidate_pair_configs_.push_back(GetIceCandidatePairConfig(event)); break; } - case ParsedRtcEventLogNew::EventType::ICE_CANDIDATE_PAIR_EVENT: { + case rtclog::Event::ICE_CANDIDATE_PAIR_EVENT: { ice_candidate_pair_events_.push_back(GetIceCandidatePairEvent(event)); break; } - case ParsedRtcEventLogNew::EventType::UNKNOWN_EVENT: { + case rtclog::Event::UNKNOWN_EVENT: { break; } } } -size_t ParsedRtcEventLogNew::GetNumberOfEvents() const { - return events_.size(); -} - -int64_t ParsedRtcEventLogNew::GetTimestamp(size_t index) const { - RTC_CHECK_LT(index, GetNumberOfEvents()); - const rtclog::Event& event = events_[index]; - return GetTimestamp(event); -} int64_t ParsedRtcEventLogNew::GetTimestamp(const rtclog::Event& event) const { RTC_CHECK(event.has_timestamp_us()); return event.timestamp_us(); } -ParsedRtcEventLogNew::EventType ParsedRtcEventLogNew::GetEventType( - size_t index) const { - RTC_CHECK_LT(index, GetNumberOfEvents()); - const rtclog::Event& event = events_[index]; - return GetEventType(event); -} - -ParsedRtcEventLogNew::EventType ParsedRtcEventLogNew::GetEventType( - const rtclog::Event& event) const { - RTC_CHECK(event.has_type()); - if (event.type() == rtclog::Event::BWE_PROBE_RESULT_EVENT) { - RTC_CHECK(event.has_probe_result()); - RTC_CHECK(event.probe_result().has_result()); - if (event.probe_result().result() == rtclog::BweProbeResult::SUCCESS) - return ParsedRtcEventLogNew::EventType::BWE_PROBE_SUCCESS_EVENT; - return ParsedRtcEventLogNew::EventType::BWE_PROBE_FAILURE_EVENT; - } - return GetRuntimeEventType(event.type()); -} - // The header must have space for at least IP_PACKET_SIZE bytes. -const webrtc::RtpHeaderExtensionMap* ParsedRtcEventLogNew::GetRtpHeader( - size_t index, - PacketDirection* incoming, - uint8_t* header, - size_t* header_length, - size_t* total_length, - int* probe_cluster_id) const { - RTC_CHECK_LT(index, GetNumberOfEvents()); - const rtclog::Event& event = events_[index]; - return GetRtpHeader(event, incoming, header, header_length, total_length, - probe_cluster_id); -} - const webrtc::RtpHeaderExtensionMap* ParsedRtcEventLogNew::GetRtpHeader( const rtclog::Event& event, PacketDirection* incoming, @@ -1402,15 +1318,6 @@ const webrtc::RtpHeaderExtensionMap* ParsedRtcEventLogNew::GetRtpHeader( } // The packet must have space for at least IP_PACKET_SIZE bytes. -void ParsedRtcEventLogNew::GetRtcpPacket(size_t index, - PacketDirection* incoming, - uint8_t* packet, - size_t* length) const { - RTC_CHECK_LT(index, GetNumberOfEvents()); - const rtclog::Event& event = events_[index]; - GetRtcpPacket(event, incoming, packet, length); -} - void ParsedRtcEventLogNew::GetRtcpPacket(const rtclog::Event& event, PacketDirection* incoming, uint8_t* packet, @@ -1438,12 +1345,6 @@ void ParsedRtcEventLogNew::GetRtcpPacket(const rtclog::Event& event, } } -rtclog::StreamConfig ParsedRtcEventLogNew::GetVideoReceiveConfig( - size_t index) const { - RTC_CHECK_LT(index, GetNumberOfEvents()); - return GetVideoReceiveConfig(events_[index]); -} - rtclog::StreamConfig ParsedRtcEventLogNew::GetVideoReceiveConfig( const rtclog::Event& event) const { rtclog::StreamConfig config; @@ -1505,12 +1406,6 @@ rtclog::StreamConfig ParsedRtcEventLogNew::GetVideoReceiveConfig( return config; } -std::vector ParsedRtcEventLogNew::GetVideoSendConfig( - size_t index) const { - RTC_CHECK_LT(index, GetNumberOfEvents()); - return GetVideoSendConfig(events_[index]); -} - std::vector ParsedRtcEventLogNew::GetVideoSendConfig( const rtclog::Event& event) const { std::vector configs; @@ -1549,12 +1444,6 @@ std::vector ParsedRtcEventLogNew::GetVideoSendConfig( return configs; } -rtclog::StreamConfig ParsedRtcEventLogNew::GetAudioReceiveConfig( - size_t index) const { - RTC_CHECK_LT(index, GetNumberOfEvents()); - return GetAudioReceiveConfig(events_[index]); -} - rtclog::StreamConfig ParsedRtcEventLogNew::GetAudioReceiveConfig( const rtclog::Event& event) const { rtclog::StreamConfig config; @@ -1574,12 +1463,6 @@ rtclog::StreamConfig ParsedRtcEventLogNew::GetAudioReceiveConfig( return config; } -rtclog::StreamConfig ParsedRtcEventLogNew::GetAudioSendConfig( - size_t index) const { - RTC_CHECK_LT(index, GetNumberOfEvents()); - return GetAudioSendConfig(events_[index]); -} - rtclog::StreamConfig ParsedRtcEventLogNew::GetAudioSendConfig( const rtclog::Event& event) const { rtclog::StreamConfig config; @@ -1596,13 +1479,6 @@ rtclog::StreamConfig ParsedRtcEventLogNew::GetAudioSendConfig( return config; } -LoggedAudioPlayoutEvent ParsedRtcEventLogNew::GetAudioPlayout( - size_t index) const { - RTC_CHECK_LT(index, GetNumberOfEvents()); - const rtclog::Event& event = events_[index]; - return GetAudioPlayout(event); -} - LoggedAudioPlayoutEvent ParsedRtcEventLogNew::GetAudioPlayout( const rtclog::Event& event) const { RTC_CHECK(event.has_type()); @@ -1616,13 +1492,6 @@ LoggedAudioPlayoutEvent ParsedRtcEventLogNew::GetAudioPlayout( return res; } -LoggedBweLossBasedUpdate ParsedRtcEventLogNew::GetLossBasedBweUpdate( - size_t index) const { - RTC_CHECK_LT(index, GetNumberOfEvents()); - const rtclog::Event& event = events_[index]; - return GetLossBasedBweUpdate(event); -} - LoggedBweLossBasedUpdate ParsedRtcEventLogNew::GetLossBasedBweUpdate( const rtclog::Event& event) const { RTC_CHECK(event.has_type()); @@ -1641,13 +1510,6 @@ LoggedBweLossBasedUpdate ParsedRtcEventLogNew::GetLossBasedBweUpdate( return bwe_update; } -LoggedBweDelayBasedUpdate ParsedRtcEventLogNew::GetDelayBasedBweUpdate( - size_t index) const { - RTC_CHECK_LT(index, GetNumberOfEvents()); - const rtclog::Event& event = events_[index]; - return GetDelayBasedBweUpdate(event); -} - LoggedBweDelayBasedUpdate ParsedRtcEventLogNew::GetDelayBasedBweUpdate( const rtclog::Event& event) const { RTC_CHECK(event.has_type()); @@ -1665,13 +1527,6 @@ LoggedBweDelayBasedUpdate ParsedRtcEventLogNew::GetDelayBasedBweUpdate( return res; } -LoggedAudioNetworkAdaptationEvent -ParsedRtcEventLogNew::GetAudioNetworkAdaptation(size_t index) const { - RTC_CHECK_LT(index, GetNumberOfEvents()); - const rtclog::Event& event = events_[index]; - return GetAudioNetworkAdaptation(event); -} - LoggedAudioNetworkAdaptationEvent ParsedRtcEventLogNew::GetAudioNetworkAdaptation( const rtclog::Event& event) const { @@ -1699,13 +1554,6 @@ ParsedRtcEventLogNew::GetAudioNetworkAdaptation( return res; } -LoggedBweProbeClusterCreatedEvent -ParsedRtcEventLogNew::GetBweProbeClusterCreated(size_t index) const { - RTC_CHECK_LT(index, GetNumberOfEvents()); - const rtclog::Event& event = events_[index]; - return GetBweProbeClusterCreated(event); -} - LoggedBweProbeClusterCreatedEvent ParsedRtcEventLogNew::GetBweProbeClusterCreated( const rtclog::Event& event) const { @@ -1726,13 +1574,6 @@ ParsedRtcEventLogNew::GetBweProbeClusterCreated( return res; } -LoggedBweProbeFailureEvent ParsedRtcEventLogNew::GetBweProbeFailure( - size_t index) const { - RTC_CHECK_LT(index, GetNumberOfEvents()); - const rtclog::Event& event = events_[index]; - return GetBweProbeFailure(event); -} - LoggedBweProbeFailureEvent ParsedRtcEventLogNew::GetBweProbeFailure( const rtclog::Event& event) const { RTC_CHECK(event.has_type()); @@ -1763,13 +1604,6 @@ LoggedBweProbeFailureEvent ParsedRtcEventLogNew::GetBweProbeFailure( return res; } -LoggedBweProbeSuccessEvent ParsedRtcEventLogNew::GetBweProbeSuccess( - size_t index) const { - RTC_CHECK_LT(index, GetNumberOfEvents()); - const rtclog::Event& event = events_[index]; - return GetBweProbeSuccess(event); -} - LoggedBweProbeSuccessEvent ParsedRtcEventLogNew::GetBweProbeSuccess( const rtclog::Event& event) const { RTC_CHECK(event.has_type()); @@ -1789,12 +1623,6 @@ LoggedBweProbeSuccessEvent ParsedRtcEventLogNew::GetBweProbeSuccess( return res; } -LoggedAlrStateEvent ParsedRtcEventLogNew::GetAlrState(size_t index) const { - RTC_CHECK_LT(index, GetNumberOfEvents()); - const rtclog::Event& event = events_[index]; - return GetAlrState(event); -} - LoggedAlrStateEvent ParsedRtcEventLogNew::GetAlrState( const rtclog::Event& event) const { RTC_CHECK(event.has_type()); @@ -1809,13 +1637,6 @@ LoggedAlrStateEvent ParsedRtcEventLogNew::GetAlrState( return res; } -LoggedIceCandidatePairConfig ParsedRtcEventLogNew::GetIceCandidatePairConfig( - size_t index) const { - RTC_CHECK_LT(index, GetNumberOfEvents()); - const rtclog::Event& rtc_event = events_[index]; - return GetIceCandidatePairConfig(rtc_event); -} - LoggedIceCandidatePairConfig ParsedRtcEventLogNew::GetIceCandidatePairConfig( const rtclog::Event& rtc_event) const { RTC_CHECK(rtc_event.has_type()); @@ -1852,13 +1673,6 @@ LoggedIceCandidatePairConfig ParsedRtcEventLogNew::GetIceCandidatePairConfig( return res; } -LoggedIceCandidatePairEvent ParsedRtcEventLogNew::GetIceCandidatePairEvent( - size_t index) const { - RTC_CHECK_LT(index, GetNumberOfEvents()); - const rtclog::Event& rtc_event = events_[index]; - return GetIceCandidatePairEvent(rtc_event); -} - LoggedIceCandidatePairEvent ParsedRtcEventLogNew::GetIceCandidatePairEvent( const rtclog::Event& rtc_event) const { RTC_CHECK(rtc_event.has_type()); diff --git a/logging/rtc_event_log/rtc_event_log_parser_new.h b/logging/rtc_event_log/rtc_event_log_parser_new.h index d81f5f53fa..7eb2237af2 100644 --- a/logging/rtc_event_log/rtc_event_log_parser_new.h +++ b/logging/rtc_event_log/rtc_event_log_parser_new.h @@ -612,30 +612,6 @@ class ParsedRtcEventLogNew { friend class RtcEventLogTestHelper; public: - ~ParsedRtcEventLogNew(); - - enum class EventType { - UNKNOWN_EVENT = 0, - LOG_START = 1, - LOG_END = 2, - RTP_EVENT = 3, - RTCP_EVENT = 4, - AUDIO_PLAYOUT_EVENT = 5, - LOSS_BASED_BWE_UPDATE = 6, - DELAY_BASED_BWE_UPDATE = 7, - VIDEO_RECEIVER_CONFIG_EVENT = 8, - VIDEO_SENDER_CONFIG_EVENT = 9, - AUDIO_RECEIVER_CONFIG_EVENT = 10, - AUDIO_SENDER_CONFIG_EVENT = 11, - AUDIO_NETWORK_ADAPTATION_EVENT = 16, - BWE_PROBE_CLUSTER_CREATED_EVENT = 17, - BWE_PROBE_FAILURE_EVENT = 18, - BWE_PROBE_SUCCESS_EVENT = 19, - ALR_STATE_EVENT = 20, - ICE_CANDIDATE_PAIR_CONFIG = 21, - ICE_CANDIDATE_PAIR_EVENT = 22, - }; - enum class MediaType { ANY, AUDIO, VIDEO, DATA }; enum class UnconfiguredHeaderExtensions { kDontParse, @@ -676,6 +652,8 @@ class ParsedRtcEventLogNew { UnconfiguredHeaderExtensions parse_unconfigured_header_extensions = UnconfiguredHeaderExtensions::kDontParse); + ~ParsedRtcEventLogNew(); + // Clears previously parsed events and resets the ParsedRtcEventLogNew to an // empty state. void Clear(); @@ -690,111 +668,8 @@ class ParsedRtcEventLogNew { bool ParseStream( std::istream& stream); // no-presubmit-check TODO(webrtc:8982) - // Returns the number of events in an EventStream. - size_t GetNumberOfEvents() const; - - // Reads the arrival timestamp (in microseconds) from a rtclog::Event. - int64_t GetTimestamp(size_t index) const; - int64_t GetTimestamp(const rtclog::Event& event) const; - - // Reads the event type of the rtclog::Event at |index|. - EventType GetEventType(size_t index) const; - EventType GetEventType(const rtclog::Event& event) const; - - // Reads the header, direction, header length and packet length from the RTP - // event at |index|, and stores the values in the corresponding output - // parameters. Each output parameter can be set to nullptr if that value - // isn't needed. - // NB: The header must have space for at least IP_PACKET_SIZE bytes. - // Returns: a pointer to a header extensions map acquired from parsing - // corresponding Audio/Video Sender/Receiver config events. - // Warning: if the same SSRC is reused by both video and audio streams during - // call, extensions maps may be incorrect (the last one would be returned). - const webrtc::RtpHeaderExtensionMap* GetRtpHeader( - size_t index, - PacketDirection* incoming, - uint8_t* header, - size_t* header_length, - size_t* total_length, - int* probe_cluster_id) const; - const webrtc::RtpHeaderExtensionMap* GetRtpHeader( - const rtclog::Event& event, - PacketDirection* incoming, - uint8_t* header, - size_t* header_length, - size_t* total_length, - int* probe_cluster_id) const; - - // Reads packet, direction and packet length from the RTCP event at |index|, - // and stores the values in the corresponding output parameters. - // Each output parameter can be set to nullptr if that value isn't needed. - // NB: The packet must have space for at least IP_PACKET_SIZE bytes. - void GetRtcpPacket(size_t index, - PacketDirection* incoming, - uint8_t* packet, - size_t* length) const; - void GetRtcpPacket(const rtclog::Event& event, - PacketDirection* incoming, - uint8_t* packet, - size_t* length) const; - - // Reads a video receive config event to a StreamConfig struct. - // Only the fields that are stored in the protobuf will be written. - rtclog::StreamConfig GetVideoReceiveConfig(size_t index) const; - - // Reads a video send config event to a StreamConfig struct. If the proto - // contains multiple SSRCs and RTX SSRCs (this used to be the case for - // simulcast streams) then we return one StreamConfig per SSRC,RTX_SSRC pair. - // Only the fields that are stored in the protobuf will be written. - std::vector GetVideoSendConfig(size_t index) const; - - // Reads a audio receive config event to a StreamConfig struct. - // Only the fields that are stored in the protobuf will be written. - rtclog::StreamConfig GetAudioReceiveConfig(size_t index) const; - - // Reads a config event to a StreamConfig struct. - // Only the fields that are stored in the protobuf will be written. - rtclog::StreamConfig GetAudioSendConfig(size_t index) const; - - // Reads the SSRC from the audio playout event at |index|. The SSRC is stored - // in the output parameter ssrc. The output parameter can be set to nullptr - // and in that case the function only asserts that the event is well formed. - LoggedAudioPlayoutEvent GetAudioPlayout(size_t index) const; - - // Reads bitrate, fraction loss (as defined in RFC 1889) and total number of - // expected packets from the loss based BWE event at |index| and stores the - // values in - // the corresponding output parameters. Each output parameter can be set to - // nullptr if that - // value isn't needed. - LoggedBweLossBasedUpdate GetLossBasedBweUpdate(size_t index) const; - - // Reads bitrate and detector_state from the delay based BWE event at |index| - // and stores the values in the corresponding output parameters. Each output - // parameter can be set to nullptr if that - // value isn't needed. - LoggedBweDelayBasedUpdate GetDelayBasedBweUpdate(size_t index) const; - - // Reads a audio network adaptation event to a (non-NULL) - // AudioEncoderRuntimeConfig struct. Only the fields that are - // stored in the protobuf will be written. - LoggedAudioNetworkAdaptationEvent GetAudioNetworkAdaptation( - size_t index) const; - - LoggedBweProbeClusterCreatedEvent GetBweProbeClusterCreated( - size_t index) const; - - LoggedBweProbeFailureEvent GetBweProbeFailure(size_t index) const; - LoggedBweProbeSuccessEvent GetBweProbeSuccess(size_t index) const; - MediaType GetMediaType(uint32_t ssrc, PacketDirection direction) const; - LoggedAlrStateEvent GetAlrState(size_t index) const; - - LoggedIceCandidatePairConfig GetIceCandidatePairConfig(size_t index) const; - - LoggedIceCandidatePairEvent GetIceCandidatePairEvent(size_t index) const; - // Configured SSRCs. const std::set& incoming_rtx_ssrcs() const { return incoming_rtx_ssrcs_; @@ -978,6 +853,35 @@ class ParsedRtcEventLogNew { void StoreParsedLegacyEvent(const rtclog::Event& event); + // Reads the arrival timestamp (in microseconds) from a rtclog::Event. + int64_t GetTimestamp(const rtclog::Event& event) const; + + // Reads the header, direction, header length and packet length from the RTP + // event at |index|, and stores the values in the corresponding output + // parameters. Each output parameter can be set to nullptr if that value + // isn't needed. + // NB: The header must have space for at least IP_PACKET_SIZE bytes. + // Returns: a pointer to a header extensions map acquired from parsing + // corresponding Audio/Video Sender/Receiver config events. + // Warning: if the same SSRC is reused by both video and audio streams during + // call, extensions maps may be incorrect (the last one would be returned). + const webrtc::RtpHeaderExtensionMap* GetRtpHeader( + const rtclog::Event& event, + PacketDirection* incoming, + uint8_t* header, + size_t* header_length, + size_t* total_length, + int* probe_cluster_id) const; + + // Reads packet, direction and packet length from the RTCP event at |index|, + // and stores the values in the corresponding output parameters. + // Each output parameter can be set to nullptr if that value isn't needed. + // NB: The packet must have space for at least IP_PACKET_SIZE bytes. + void GetRtcpPacket(const rtclog::Event& event, + PacketDirection* incoming, + uint8_t* packet, + size_t* length) const; + rtclog::StreamConfig GetVideoReceiveConfig(const rtclog::Event& event) const; std::vector GetVideoSendConfig( const rtclog::Event& event) const; @@ -1008,9 +912,6 @@ class ParsedRtcEventLogNew { LoggedIceCandidatePairEvent GetIceCandidatePairEvent( const rtclog::Event& event) const; - // TODO(terelius): Remove - std::vector events_; - // Parsing functions for new format. void StoreParsedNewFormatEvent(const rtclog2::EventStream& event); void StoreIncomingRtpPackets(const rtclog2::IncomingRtpPackets& proto); diff --git a/rtc_tools/event_log_visualizer/main.cc b/rtc_tools/event_log_visualizer/main.cc index e4e183f8ff..0b4e7617e6 100644 --- a/rtc_tools/event_log_visualizer/main.cc +++ b/rtc_tools/event_log_visualizer/main.cc @@ -252,9 +252,7 @@ int main(int argc, char* argv[]) { if (!parsed_log.ParseFile(filename)) { std::cerr << "Could not parse the entire log file." << std::endl; - std::cerr << "Proceeding to analyze the first " - << parsed_log.GetNumberOfEvents() << " events in the file." - << std::endl; + std::cerr << "Only the parsable events will be analyzed." << std::endl; } webrtc::EventLogAnalyzer analyzer(parsed_log, FLAG_normalize_time);