Make rtc_event_log2text output header extensions

BUG=webrtc:none

Review-Url: https://codereview.webrtc.org/2918103002
Cr-Commit-Position: refs/heads/master@{#18530}
diff --git a/webrtc/tools/event_log_visualizer/analyzer.cc b/webrtc/tools/event_log_visualizer/analyzer.cc
index dcff92c..c4f5c7b 100644
--- a/webrtc/tools/event_log_visualizer/analyzer.cc
+++ b/webrtc/tools/event_log_visualizer/analyzer.cc
@@ -289,10 +289,6 @@
   uint64_t first_timestamp = std::numeric_limits<uint64_t>::max();
   uint64_t last_timestamp = std::numeric_limits<uint64_t>::min();
 
-  // Maps a stream identifier consisting of ssrc and direction
-  // to the header extensions used by that stream,
-  std::map<StreamId, RtpHeaderExtensionMap> extension_maps;
-
   PacketDirection direction;
   uint8_t header[IP_PACKET_SIZE];
   size_t header_length;
@@ -323,11 +319,8 @@
       case ParsedRtcEventLog::VIDEO_RECEIVER_CONFIG_EVENT: {
         rtclog::StreamConfig config = parsed_log_.GetVideoReceiveConfig(i);
         StreamId stream(config.remote_ssrc, kIncomingPacket);
-        extension_maps[stream] = RtpHeaderExtensionMap(config.rtp_extensions);
         video_ssrcs_.insert(stream);
         StreamId rtx_stream(config.rtx_ssrc, kIncomingPacket);
-        extension_maps[rtx_stream] =
-            RtpHeaderExtensionMap(config.rtp_extensions);
         video_ssrcs_.insert(rtx_stream);
         rtx_ssrcs_.insert(rtx_stream);
         break;
@@ -337,12 +330,8 @@
             parsed_log_.GetVideoSendConfig(i);
         for (const auto& config : configs) {
           StreamId stream(config.local_ssrc, kOutgoingPacket);
-          extension_maps[stream] =
-              RtpHeaderExtensionMap(config.rtp_extensions);
           video_ssrcs_.insert(stream);
           StreamId rtx_stream(config.rtx_ssrc, kOutgoingPacket);
-          extension_maps[rtx_stream] =
-              RtpHeaderExtensionMap(config.rtp_extensions);
           video_ssrcs_.insert(rtx_stream);
           rtx_ssrcs_.insert(rtx_stream);
         }
@@ -351,28 +340,21 @@
       case ParsedRtcEventLog::AUDIO_RECEIVER_CONFIG_EVENT: {
         rtclog::StreamConfig config = parsed_log_.GetAudioReceiveConfig(i);
         StreamId stream(config.remote_ssrc, kIncomingPacket);
-        extension_maps[stream] = RtpHeaderExtensionMap(config.rtp_extensions);
         audio_ssrcs_.insert(stream);
         break;
       }
       case ParsedRtcEventLog::AUDIO_SENDER_CONFIG_EVENT: {
         rtclog::StreamConfig config = parsed_log_.GetAudioSendConfig(i);
         StreamId stream(config.local_ssrc, kOutgoingPacket);
-        extension_maps[stream] = RtpHeaderExtensionMap(config.rtp_extensions);
         audio_ssrcs_.insert(stream);
         break;
       }
       case ParsedRtcEventLog::RTP_EVENT: {
-        parsed_log_.GetRtpHeader(i, &direction, header, &header_length,
-                                 &total_length);
-        // Parse header to get SSRC.
+        RtpHeaderExtensionMap* extension_map = parsed_log_.GetRtpHeader(
+            i, &direction, header, &header_length, &total_length);
         RtpUtility::RtpHeaderParser rtp_parser(header, header_length);
         RTPHeader parsed_header;
-        rtp_parser.Parse(&parsed_header);
-        StreamId stream(parsed_header.ssrc, direction);
-        // Look up the extension_map and parse it again to get the extensions.
-        if (extension_maps.count(stream) == 1) {
-          RtpHeaderExtensionMap* extension_map = &extension_maps[stream];
+        if (extension_map != nullptr) {
           rtp_parser.Parse(&parsed_header, extension_map);
         } else {
           // Use the default extension map.
@@ -382,6 +364,7 @@
           rtp_parser.Parse(&parsed_header, &default_extension_map);
         }
         uint64_t timestamp = parsed_log_.GetTimestamp(i);
+        StreamId stream(parsed_header.ssrc, direction);
         rtp_packets_[stream].push_back(
             LoggedRtpPacket(timestamp, parsed_header, total_length));
         break;