From 007d56229adb8933960bfb08af1090ec20d48072 Mon Sep 17 00:00:00 2001 From: terelius Date: Tue, 8 Aug 2017 05:40:26 -0700 Subject: [PATCH] Use default header extension map in rtc_event_log2text Use defaults if the header extension map is missing from the config. BUG=webrtc:6399 Review-Url: https://codereview.webrtc.org/2983283002 Cr-Commit-Position: refs/heads/master@{#19267} --- .../rtc_event_log/rtc_event_log2text.cc | 33 +++++++++++++++++++ .../event_log_visualizer/analyzer.cc | 12 +++++++ 2 files changed, 45 insertions(+) diff --git a/webrtc/logging/rtc_event_log/rtc_event_log2text.cc b/webrtc/logging/rtc_event_log/rtc_event_log2text.cc index c17a3b5802..c7214e2bc8 100644 --- a/webrtc/logging/rtc_event_log/rtc_event_log2text.cc +++ b/webrtc/logging/rtc_event_log/rtc_event_log2text.cc @@ -16,6 +16,7 @@ #include "gflags/gflags.h" #include "webrtc/common_types.h" +#include "webrtc/config.h" #include "webrtc/logging/rtc_event_log/rtc_event_log_parser.h" #include "webrtc/modules/rtp_rtcp/source/rtcp_packet/bye.h" #include "webrtc/modules/rtp_rtcp/source/rtcp_packet/common_header.h" @@ -31,6 +32,7 @@ #include "webrtc/modules/rtp_rtcp/source/rtcp_packet/tmmbn.h" #include "webrtc/modules/rtp_rtcp/source/rtcp_packet/tmmbr.h" #include "webrtc/modules/rtp_rtcp/source/rtcp_packet/transport_feedback.h" +#include "webrtc/modules/rtp_rtcp/source/rtp_header_extensions.h" #include "webrtc/modules/rtp_rtcp/source/rtp_utility.h" #include "webrtc/rtc_base/checks.h" @@ -119,6 +121,32 @@ const char* StreamInfo(webrtc::PacketDirection direction, return "(unknown)"; } +// Return default values for header extensions, to use on streams without stored +// mapping data. Currently this only applies to audio streams, since the mapping +// is not stored in the event log. +// TODO(ivoc): Remove this once this mapping is stored in the event log for +// audio streams. Tracking bug: webrtc:6399 +webrtc::RtpHeaderExtensionMap GetDefaultHeaderExtensionMap() { + webrtc::RtpHeaderExtensionMap default_map; + default_map.Register( + webrtc::RtpExtension::kAudioLevelDefaultId); + default_map.Register( + webrtc::RtpExtension::kTimestampOffsetDefaultId); + default_map.Register( + webrtc::RtpExtension::kAbsSendTimeDefaultId); + default_map.Register( + webrtc::RtpExtension::kVideoRotationDefaultId); + default_map.Register( + webrtc::RtpExtension::kVideoContentTypeDefaultId); + default_map.Register( + webrtc::RtpExtension::kVideoTimingDefaultId); + default_map.Register( + webrtc::RtpExtension::kTransportSequenceNumberDefaultId); + default_map.Register( + webrtc::RtpExtension::kPlayoutDelayDefaultId); + return default_map; +} + void PrintSenderReport(const webrtc::ParsedRtcEventLog& parsed_stream, const webrtc::rtcp::CommonHeader& rtcp_block, uint64_t log_timestamp, @@ -344,6 +372,8 @@ int main(int argc, char* argv[]) { if (!FLAGS_ssrc.empty()) RTC_CHECK(ParseSsrc(FLAGS_ssrc)) << "Flag verification has failed."; + webrtc::RtpHeaderExtensionMap default_map = GetDefaultHeaderExtensionMap(); + webrtc::ParsedRtcEventLog parsed_stream; if (!parsed_stream.ParseFile(input_file)) { std::cerr << "Error while parsing input file: " << input_file << std::endl; @@ -444,6 +474,9 @@ int main(int argc, char* argv[]) { webrtc::RtpHeaderExtensionMap* extension_map = parsed_stream.GetRtpHeader( i, &direction, header, &header_length, &total_length); + if (extension_map == nullptr) + extension_map = &default_map; + // Parse header to get SSRC and RTP time. webrtc::RtpUtility::RtpHeaderParser rtp_parser(header, header_length); webrtc::RTPHeader parsed_header; diff --git a/webrtc/rtc_tools/event_log_visualizer/analyzer.cc b/webrtc/rtc_tools/event_log_visualizer/analyzer.cc index b42f0820f4..593a3b8bf7 100644 --- a/webrtc/rtc_tools/event_log_visualizer/analyzer.cc +++ b/webrtc/rtc_tools/event_log_visualizer/analyzer.cc @@ -119,8 +119,20 @@ int64_t WrappingDifference(uint32_t later, uint32_t earlier, int64_t modulus) { webrtc::RtpHeaderExtensionMap GetDefaultHeaderExtensionMap() { webrtc::RtpHeaderExtensionMap default_map; default_map.Register(webrtc::RtpExtension::kAudioLevelDefaultId); + default_map.Register( + webrtc::RtpExtension::kTimestampOffsetDefaultId); default_map.Register( webrtc::RtpExtension::kAbsSendTimeDefaultId); + default_map.Register( + webrtc::RtpExtension::kVideoRotationDefaultId); + default_map.Register( + webrtc::RtpExtension::kVideoContentTypeDefaultId); + default_map.Register( + webrtc::RtpExtension::kVideoTimingDefaultId); + default_map.Register( + webrtc::RtpExtension::kTransportSequenceNumberDefaultId); + default_map.Register( + webrtc::RtpExtension::kPlayoutDelayDefaultId); return default_map; }