From e035e2d26f9b6ef0a6a5b262fae775080f91bacf Mon Sep 17 00:00:00 2001 From: terelius Date: Wed, 21 Sep 2016 06:51:47 -0700 Subject: [PATCH] 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} --- webrtc/audio/audio_send_stream.cc | 5 ++++- webrtc/audio/audio_send_stream.h | 4 +++- webrtc/audio/audio_send_stream_unittest.cc | 20 +++++++++++++++----- webrtc/call/call.cc | 2 +- 4 files changed, 23 insertions(+), 8 deletions(-) diff --git a/webrtc/audio/audio_send_stream.cc b/webrtc/audio/audio_send_stream.cc index 417720cdb0..ee84b96aaa 100644 --- a/webrtc/audio/audio_send_stream.cc +++ b/webrtc/audio/audio_send_stream.cc @@ -63,7 +63,8 @@ AudioSendStream::AudioSendStream( const rtc::scoped_refptr& 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 @@ AudioSendStream::AudioSendStream( VoiceEngineImpl* voe_impl = static_cast(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 @@ AudioSendStream::~AudioSendStream() { 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 e92c326c53..2e0b7aed58 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 @@ class AudioSendStream final : public webrtc::AudioSendStream, const rtc::scoped_refptr& 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 9172064705..ebac828079 100644 --- a/webrtc/audio/audio_send_stream_unittest.cc +++ b/webrtc/audio/audio_send_stream_unittest.cc @@ -106,6 +106,10 @@ struct ConfigHelper { .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 @@ struct ConfigHelper { } 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 @@ TEST(AudioSendStreamTest, ConstructDestruct) { 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 @@ TEST(AudioSendStreamTest, SetMuted) { 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 @@ TEST(AudioSendStreamTest, GetStats) { 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 @@ TEST(AudioSendStreamTest, GetStatsTypingNoiseDetected) { 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 a3b4ec60de..16a6f469d5 100644 --- a/webrtc/call/call.cc +++ b/webrtc/call/call.cc @@ -380,7 +380,7 @@ webrtc::AudioSendStream* Call::CreateAudioSendStream( 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) ==