Replace AudioSendStream::Config with rtclog::StreamConfig.

BUG=webrtc:7538

Review-Url: https://codereview.webrtc.org/2856063003
Cr-Original-Commit-Position: refs/heads/master@{#18224}
Cr-Mirrored-From: https://chromium.googlesource.com/external/webrtc
Cr-Mirrored-Commit: f472699bbd955062dcf1413316d0810eb3e2dea9
diff --git a/call/call.cc b/call/call.cc
index 0246bba..87e41b0 100644
--- a/call/call.cc
+++ b/call/call.cc
@@ -133,6 +133,18 @@
   return rtclog_config;
 }
 
+rtclog::StreamConfig CreateRtcLogStreamConfig(
+    const AudioSendStream::Config& config) {
+  rtclog::StreamConfig rtclog_config;
+  rtclog_config.local_ssrc = config.rtp.ssrc;
+  rtclog_config.rtp_extensions = config.rtp.extensions;
+  if (config.send_codec_spec) {
+    rtclog_config.codecs.emplace_back(config.send_codec_spec->format.name,
+                                      config.send_codec_spec->payload_type, 0);
+  }
+  return rtclog_config;
+}
+
 }  // namespace
 
 namespace internal {
@@ -549,7 +561,7 @@
     const webrtc::AudioSendStream::Config& config) {
   TRACE_EVENT0("webrtc", "Call::CreateAudioSendStream");
   RTC_DCHECK(configuration_thread_checker_.CalledOnValidThread());
-  event_log_->LogAudioSendStreamConfig(config);
+  event_log_->LogAudioSendStreamConfig(CreateRtcLogStreamConfig(config));
   AudioSendStream* send_stream = new AudioSendStream(
       config, config_.audio_state, &worker_queue_, transport_send_.get(),
       bitrate_allocator_.get(), event_log_, call_stats_->rtcp_rtt_stats());
diff --git a/logging/rtc_event_log/mock/mock_rtc_event_log.h b/logging/rtc_event_log/mock/mock_rtc_event_log.h
index 4791c82..cedc309 100644
--- a/logging/rtc_event_log/mock/mock_rtc_event_log.h
+++ b/logging/rtc_event_log/mock/mock_rtc_event_log.h
@@ -39,7 +39,7 @@
                void(const rtclog::StreamConfig& config));
 
   MOCK_METHOD1(LogAudioSendStreamConfig,
-               void(const webrtc::AudioSendStream::Config& config));
+               void(const rtclog::StreamConfig& config));
 
   MOCK_METHOD4(LogRtpHeader,
                void(PacketDirection direction,
diff --git a/logging/rtc_event_log/rtc_event_log.cc b/logging/rtc_event_log/rtc_event_log.cc
index edaeabf..7469cf7 100644
--- a/logging/rtc_event_log/rtc_event_log.cc
+++ b/logging/rtc_event_log/rtc_event_log.cc
@@ -65,7 +65,7 @@
   void LogVideoReceiveStreamConfig(const rtclog::StreamConfig& config) override;
   void LogVideoSendStreamConfig(const rtclog::StreamConfig& config) override;
   void LogAudioReceiveStreamConfig(const rtclog::StreamConfig& config) override;
-  void LogAudioSendStreamConfig(const AudioSendStream::Config& config) override;
+  void LogAudioSendStreamConfig(const rtclog::StreamConfig& config) override;
   void LogRtpHeader(PacketDirection direction,
                     MediaType media_type,
                     const uint8_t* header,
@@ -370,16 +370,16 @@
 }
 
 void RtcEventLogImpl::LogAudioSendStreamConfig(
-    const AudioSendStream::Config& config) {
+    const rtclog::StreamConfig& config) {
   std::unique_ptr<rtclog::Event> event(new rtclog::Event());
   event->set_timestamp_us(rtc::TimeMicros());
   event->set_type(rtclog::Event::AUDIO_SENDER_CONFIG_EVENT);
 
   rtclog::AudioSendConfig* sender_config = event->mutable_audio_sender_config();
 
-  sender_config->set_ssrc(config.rtp.ssrc);
+  sender_config->set_ssrc(config.local_ssrc);
 
-  for (const auto& e : config.rtp.extensions) {
+  for (const auto& e : config.rtp_extensions) {
     rtclog::RtpHeaderExtension* extension =
         sender_config->add_header_extensions();
     extension->set_name(e.uri);
diff --git a/logging/rtc_event_log/rtc_event_log.h b/logging/rtc_event_log/rtc_event_log.h
index 8e8bd82..3f96556 100644
--- a/logging/rtc_event_log/rtc_event_log.h
+++ b/logging/rtc_event_log/rtc_event_log.h
@@ -123,9 +123,8 @@
   virtual void LogAudioReceiveStreamConfig(
       const rtclog::StreamConfig& config) = 0;
 
-  // Logs configuration information for webrtc::AudioSendStream.
-  virtual void LogAudioSendStreamConfig(
-      const webrtc::AudioSendStream::Config& config) = 0;
+  // Logs configuration information for an audio send stream.
+  virtual void LogAudioSendStreamConfig(const rtclog::StreamConfig& config) = 0;
 
   // Logs the header of an incoming or outgoing RTP packet. packet_length
   // is the total length of the packet, including both header and payload.
@@ -203,8 +202,7 @@
   void LogVideoSendStreamConfig(const rtclog::StreamConfig& config) override {}
   void LogAudioReceiveStreamConfig(
       const rtclog::StreamConfig& config) override {}
-  void LogAudioSendStreamConfig(
-      const AudioSendStream::Config& config) override {}
+  void LogAudioSendStreamConfig(const rtclog::StreamConfig& config) override {}
   void LogRtpHeader(PacketDirection direction,
                     MediaType media_type,
                     const uint8_t* header,
diff --git a/logging/rtc_event_log/rtc_event_log2text.cc b/logging/rtc_event_log/rtc_event_log2text.cc
index da31615..fab04c9 100644
--- a/logging/rtc_event_log/rtc_event_log2text.cc
+++ b/logging/rtc_event_log/rtc_event_log2text.cc
@@ -415,13 +415,13 @@
     }
     if (parsed_stream.GetEventType(i) ==
         webrtc::ParsedRtcEventLog::AUDIO_SENDER_CONFIG_EVENT) {
-      webrtc::AudioSendStream::Config config(nullptr);
+      webrtc::rtclog::StreamConfig config;
       parsed_stream.GetAudioSendConfig(i, &config);
-      global_streams.emplace_back(config.rtp.ssrc, webrtc::MediaType::AUDIO,
+      global_streams.emplace_back(config.local_ssrc, webrtc::MediaType::AUDIO,
                                   webrtc::kOutgoingPacket);
       if (!FLAGS_noconfig && !FLAGS_noaudio && !FLAGS_nooutgoing) {
         std::cout << parsed_stream.GetTimestamp(i) << "\tAUDIO_SEND_CONFIG"
-                  << "\tssrc=" << config.rtp.ssrc << std::endl;
+                  << "\tssrc=" << config.local_ssrc << std::endl;
       }
     }
     if (!FLAGS_nortp &&
diff --git a/logging/rtc_event_log/rtc_event_log_parser.cc b/logging/rtc_event_log/rtc_event_log_parser.cc
index 88f26a6..6194d3a 100644
--- a/logging/rtc_event_log/rtc_event_log_parser.cc
+++ b/logging/rtc_event_log/rtc_event_log_parser.cc
@@ -436,9 +436,8 @@
                       receiver_config.header_extensions());
 }
 
-void ParsedRtcEventLog::GetAudioSendConfig(
-    size_t index,
-    AudioSendStream::Config* config) const {
+void ParsedRtcEventLog::GetAudioSendConfig(size_t index,
+                                           rtclog::StreamConfig* config) const {
   RTC_CHECK_LT(index, GetNumberOfEvents());
   const rtclog::Event& event = events_[index];
   RTC_CHECK(config != nullptr);
@@ -448,9 +447,9 @@
   const rtclog::AudioSendConfig& sender_config = event.audio_sender_config();
   // Get SSRCs.
   RTC_CHECK(sender_config.has_ssrc());
-  config->rtp.ssrc = sender_config.ssrc();
+  config->local_ssrc = sender_config.ssrc();
   // Get header extensions.
-  GetHeaderExtensions(&config->rtp.extensions,
+  GetHeaderExtensions(&config->rtp_extensions,
                       sender_config.header_extensions());
 }
 
diff --git a/logging/rtc_event_log/rtc_event_log_parser.h b/logging/rtc_event_log/rtc_event_log_parser.h
index d5aee96..966f00d 100644
--- a/logging/rtc_event_log/rtc_event_log_parser.h
+++ b/logging/rtc_event_log/rtc_event_log_parser.h
@@ -126,9 +126,9 @@
   // Only the fields that are stored in the protobuf will be written.
   void GetAudioReceiveConfig(size_t index, rtclog::StreamConfig* config) const;
 
-  // Reads a config event to a (non-NULL) AudioSendStream::Config struct.
+  // Reads a config event to a (non-NULL) StreamConfig struct.
   // Only the fields that are stored in the protobuf will be written.
-  void GetAudioSendConfig(size_t index, AudioSendStream::Config* config) const;
+  void GetAudioSendConfig(size_t index, rtclog::StreamConfig* config) 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
diff --git a/logging/rtc_event_log/rtc_event_log_unittest.cc b/logging/rtc_event_log/rtc_event_log_unittest.cc
index fea07b8..e655b4b 100644
--- a/logging/rtc_event_log/rtc_event_log_unittest.cc
+++ b/logging/rtc_event_log/rtc_event_log_unittest.cc
@@ -206,14 +206,14 @@
 }
 
 void GenerateAudioSendConfig(uint32_t extensions_bitvector,
-                             AudioSendStream::Config* config,
+                             rtclog::StreamConfig* config,
                              Random* prng) {
   // Add SSRC to the stream.
-  config->rtp.ssrc = prng->Rand<uint32_t>();
+  config->local_ssrc = prng->Rand<uint32_t>();
   // Add header extensions.
   for (unsigned i = 0; i < kNumExtensions; i++) {
     if (extensions_bitvector & (1u << i)) {
-      config->rtp.extensions.push_back(
+      config->rtp_extensions.push_back(
           RtpExtension(kExtensionNames[i], prng->Rand<int>()));
     }
   }
@@ -788,7 +788,7 @@
 
 class AudioSendConfigReadWriteTest : public ConfigReadWriteTest {
  public:
-  AudioSendConfigReadWriteTest() : config(nullptr) {}
+  AudioSendConfigReadWriteTest() {}
   void GenerateConfig(uint32_t extensions_bitvector) override {
     GenerateAudioSendConfig(extensions_bitvector, &config, &prng);
   }
@@ -800,7 +800,7 @@
     RtcEventLogTestHelper::VerifyAudioSendStreamConfig(parsed_log, index,
                                                        config);
   }
-  AudioSendStream::Config config;
+  rtclog::StreamConfig config;
 };
 
 class VideoReceiveConfigReadWriteTest : public ConfigReadWriteTest {
diff --git a/logging/rtc_event_log/rtc_event_log_unittest_helper.cc b/logging/rtc_event_log/rtc_event_log_unittest_helper.cc
index 152f10f..8b4ea6b 100644
--- a/logging/rtc_event_log/rtc_event_log_unittest_helper.cc
+++ b/logging/rtc_event_log/rtc_event_log_unittest_helper.cc
@@ -339,37 +339,29 @@
 void RtcEventLogTestHelper::VerifyAudioSendStreamConfig(
     const ParsedRtcEventLog& parsed_log,
     size_t index,
-    const AudioSendStream::Config& config) {
+    const rtclog::StreamConfig& config) {
   const rtclog::Event& event = parsed_log.events_[index];
   ASSERT_TRUE(IsValidBasicEvent(event));
   ASSERT_EQ(rtclog::Event::AUDIO_SENDER_CONFIG_EVENT, event.type());
   const rtclog::AudioSendConfig& sender_config = event.audio_sender_config();
   // Check SSRCs.
-  EXPECT_EQ(config.rtp.ssrc, sender_config.ssrc());
+  EXPECT_EQ(config.local_ssrc, sender_config.ssrc());
   // Check header extensions.
-  ASSERT_EQ(static_cast<int>(config.rtp.extensions.size()),
+  ASSERT_EQ(static_cast<int>(config.rtp_extensions.size()),
             sender_config.header_extensions_size());
   for (int i = 0; i < sender_config.header_extensions_size(); i++) {
     ASSERT_TRUE(sender_config.header_extensions(i).has_name());
     ASSERT_TRUE(sender_config.header_extensions(i).has_id());
     const std::string& name = sender_config.header_extensions(i).name();
     int id = sender_config.header_extensions(i).id();
-    EXPECT_EQ(config.rtp.extensions[i].id, id);
-    EXPECT_EQ(config.rtp.extensions[i].uri, name);
+    EXPECT_EQ(config.rtp_extensions[i].id, id);
+    EXPECT_EQ(config.rtp_extensions[i].uri, name);
   }
 
   // Check consistency of the parser.
-  AudioSendStream::Config parsed_config(nullptr);
+  rtclog::StreamConfig parsed_config;
   parsed_log.GetAudioSendConfig(index, &parsed_config);
-  // Check SSRCs
-  EXPECT_EQ(config.rtp.ssrc, parsed_config.rtp.ssrc);
-  // Check header extensions.
-  EXPECT_EQ(config.rtp.extensions.size(), parsed_config.rtp.extensions.size());
-  for (size_t i = 0; i < parsed_config.rtp.extensions.size(); i++) {
-    EXPECT_EQ(config.rtp.extensions[i].uri,
-              parsed_config.rtp.extensions[i].uri);
-    EXPECT_EQ(config.rtp.extensions[i].id, parsed_config.rtp.extensions[i].id);
-  }
+  VerifyStreamConfigsAreEqual(config, parsed_config);
 }
 
 void RtcEventLogTestHelper::VerifyRtpEvent(const ParsedRtcEventLog& parsed_log,
diff --git a/logging/rtc_event_log/rtc_event_log_unittest_helper.h b/logging/rtc_event_log/rtc_event_log_unittest_helper.h
index a23f50c..c0fc493 100644
--- a/logging/rtc_event_log/rtc_event_log_unittest_helper.h
+++ b/logging/rtc_event_log/rtc_event_log_unittest_helper.h
@@ -29,10 +29,9 @@
       const ParsedRtcEventLog& parsed_log,
       size_t index,
       const rtclog::StreamConfig& config);
-  static void VerifyAudioSendStreamConfig(
-      const ParsedRtcEventLog& parsed_log,
-      size_t index,
-      const AudioSendStream::Config& config);
+  static void VerifyAudioSendStreamConfig(const ParsedRtcEventLog& parsed_log,
+                                          size_t index,
+                                          const rtclog::StreamConfig& config);
   static void VerifyRtpEvent(const ParsedRtcEventLog& parsed_log,
                              size_t index,
                              PacketDirection direction,
diff --git a/tools/event_log_visualizer/analyzer.cc b/tools/event_log_visualizer/analyzer.cc
index 71f8909..a34d855 100644
--- a/tools/event_log_visualizer/analyzer.cc
+++ b/tools/event_log_visualizer/analyzer.cc
@@ -365,10 +365,10 @@
         break;
       }
       case ParsedRtcEventLog::AUDIO_SENDER_CONFIG_EVENT: {
-        AudioSendStream::Config config(nullptr);
+        rtclog::StreamConfig config;
         parsed_log_.GetAudioSendConfig(i, &config);
-        StreamId stream(config.rtp.ssrc, kOutgoingPacket);
-        extension_maps[stream] = RtpHeaderExtensionMap(config.rtp.extensions);
+        StreamId stream(config.local_ssrc, kOutgoingPacket);
+        extension_maps[stream] = RtpHeaderExtensionMap(config.rtp_extensions);
         audio_ssrcs_.insert(stream);
         break;
       }
diff --git a/voice_engine/channel.cc b/voice_engine/channel.cc
index dddfe6d..bf7d30c 100644
--- a/voice_engine/channel.cc
+++ b/voice_engine/channel.cc
@@ -93,7 +93,7 @@
   }
 
   void LogAudioSendStreamConfig(
-      const webrtc::AudioSendStream::Config& config) override {
+      const webrtc::rtclog::StreamConfig& config) override {
     rtc::CritScope lock(&crit_);
     if (event_log_) {
       event_log_->LogAudioSendStreamConfig(config);