Set the event log in Channel from AudioSendStream. This will re-enable logging of outgoing audio packets.

BUG=webrtc:6195

Review-Url: https://codereview.webrtc.org/2226823003
Cr-Commit-Position: refs/heads/master@{#14331}
diff --git a/webrtc/audio/audio_send_stream.cc b/webrtc/audio/audio_send_stream.cc
index 417720c..ee84b96 100644
--- a/webrtc/audio/audio_send_stream.cc
+++ b/webrtc/audio/audio_send_stream.cc
@@ -63,7 +63,8 @@
     const rtc::scoped_refptr<webrtc::AudioState>& audio_state,
     rtc::TaskQueue* worker_queue,
     CongestionController* congestion_controller,
-    BitrateAllocator* bitrate_allocator)
+    BitrateAllocator* bitrate_allocator,
+    RtcEventLog* event_log)
     : worker_queue_(worker_queue),
       config_(config),
       audio_state_(audio_state),
@@ -75,6 +76,7 @@
 
   VoiceEngineImpl* voe_impl = static_cast<VoiceEngineImpl*>(voice_engine());
   channel_proxy_ = voe_impl->GetChannelProxy(config_.voe_channel_id);
+  channel_proxy_->SetRtcEventLog(event_log);
   channel_proxy_->RegisterSenderCongestionControlObjects(
       congestion_controller->pacer(),
       congestion_controller->GetTransportFeedbackObserver(),
@@ -107,6 +109,7 @@
   LOG(LS_INFO) << "~AudioSendStream: " << config_.ToString();
   channel_proxy_->DeRegisterExternalTransport();
   channel_proxy_->ResetCongestionControlObjects();
+  channel_proxy_->SetRtcEventLog(nullptr);
 }
 
 void AudioSendStream::Start() {
diff --git a/webrtc/audio/audio_send_stream.h b/webrtc/audio/audio_send_stream.h
index e92c326..2e0b7ae 100644
--- a/webrtc/audio/audio_send_stream.h
+++ b/webrtc/audio/audio_send_stream.h
@@ -22,6 +22,7 @@
 namespace webrtc {
 class CongestionController;
 class VoiceEngine;
+class RtcEventLog;
 
 namespace voe {
 class ChannelProxy;
@@ -35,7 +36,8 @@
                   const rtc::scoped_refptr<webrtc::AudioState>& audio_state,
                   rtc::TaskQueue* worker_queue,
                   CongestionController* congestion_controller,
-                  BitrateAllocator* bitrate_allocator);
+                  BitrateAllocator* bitrate_allocator,
+                  RtcEventLog* event_log);
   ~AudioSendStream() override;
 
   // webrtc::AudioSendStream implementation.
diff --git a/webrtc/audio/audio_send_stream_unittest.cc b/webrtc/audio/audio_send_stream_unittest.cc
index 9172064..ebac828 100644
--- a/webrtc/audio/audio_send_stream_unittest.cc
+++ b/webrtc/audio/audio_send_stream_unittest.cc
@@ -106,6 +106,10 @@
               .Times(1);
           EXPECT_CALL(*channel_proxy_, DeRegisterExternalTransport())
               .Times(1);
+          EXPECT_CALL(*channel_proxy_, SetRtcEventLog(testing::NotNull()))
+              .Times(1);
+          EXPECT_CALL(*channel_proxy_, SetRtcEventLog(testing::IsNull()))
+              .Times(1);  // Destructor resets the event log
           return channel_proxy_;
         }));
     stream_config_.voe_channel_id = kChannelId;
@@ -128,6 +132,7 @@
   }
   BitrateAllocator* bitrate_allocator() { return &bitrate_allocator_; }
   rtc::TaskQueue* worker_queue() { return &worker_queue_; }
+  RtcEventLog* event_log() { return &event_log_; }
 
   void SetupMockForSendTelephoneEvent() {
     EXPECT_TRUE(channel_proxy_);
@@ -210,14 +215,16 @@
   ConfigHelper helper;
   internal::AudioSendStream send_stream(
       helper.config(), helper.audio_state(), helper.worker_queue(),
-      helper.congestion_controller(), helper.bitrate_allocator());
+      helper.congestion_controller(), helper.bitrate_allocator(),
+      helper.event_log());
 }
 
 TEST(AudioSendStreamTest, SendTelephoneEvent) {
   ConfigHelper helper;
   internal::AudioSendStream send_stream(
       helper.config(), helper.audio_state(), helper.worker_queue(),
-      helper.congestion_controller(), helper.bitrate_allocator());
+      helper.congestion_controller(), helper.bitrate_allocator(),
+      helper.event_log());
   helper.SetupMockForSendTelephoneEvent();
   EXPECT_TRUE(send_stream.SendTelephoneEvent(kTelephoneEventPayloadType,
       kTelephoneEventCode, kTelephoneEventDuration));
@@ -227,7 +234,8 @@
   ConfigHelper helper;
   internal::AudioSendStream send_stream(
       helper.config(), helper.audio_state(), helper.worker_queue(),
-      helper.congestion_controller(), helper.bitrate_allocator());
+      helper.congestion_controller(), helper.bitrate_allocator(),
+      helper.event_log());
   EXPECT_CALL(*helper.channel_proxy(), SetInputMute(true));
   send_stream.SetMuted(true);
 }
@@ -236,7 +244,8 @@
   ConfigHelper helper;
   internal::AudioSendStream send_stream(
       helper.config(), helper.audio_state(), helper.worker_queue(),
-      helper.congestion_controller(), helper.bitrate_allocator());
+      helper.congestion_controller(), helper.bitrate_allocator(),
+      helper.event_log());
   helper.SetupMockForGetStats();
   AudioSendStream::Stats stats = send_stream.GetStats();
   EXPECT_EQ(kSsrc, stats.local_ssrc);
@@ -265,7 +274,8 @@
   ConfigHelper helper;
   internal::AudioSendStream send_stream(
       helper.config(), helper.audio_state(), helper.worker_queue(),
-      helper.congestion_controller(), helper.bitrate_allocator());
+      helper.congestion_controller(), helper.bitrate_allocator(),
+      helper.event_log());
   helper.SetupMockForGetStats();
   EXPECT_FALSE(send_stream.GetStats().typing_noise_detected);
 
diff --git a/webrtc/call/call.cc b/webrtc/call/call.cc
index a3b4ec6..16a6f46 100644
--- a/webrtc/call/call.cc
+++ b/webrtc/call/call.cc
@@ -380,7 +380,7 @@
   RTC_DCHECK(configuration_thread_checker_.CalledOnValidThread());
   AudioSendStream* send_stream = new AudioSendStream(
       config, config_.audio_state, &worker_queue_, congestion_controller_.get(),
-      bitrate_allocator_.get());
+      bitrate_allocator_.get(), event_log_.get());
   {
     WriteLockScoped write_lock(*send_crit_);
     RTC_DCHECK(audio_send_ssrcs_.find(config.rtp.ssrc) ==