diff --git a/talk/app/webrtc/mediastreamprovider.h b/talk/app/webrtc/mediastreamprovider.h index b80f6b2bd4..1c62daf9f1 100644 --- a/talk/app/webrtc/mediastreamprovider.h +++ b/talk/app/webrtc/mediastreamprovider.h @@ -55,9 +55,7 @@ namespace webrtc { class AudioProviderInterface { public: // Enable/disable the audio playout of a remote audio track with |ssrc|. - virtual void SetAudioPlayout(uint32_t ssrc, - bool enable, - cricket::AudioRenderer* renderer) = 0; + virtual void SetAudioPlayout(uint32_t ssrc, bool enable) = 0; // Enable/disable sending audio on the local audio track with |ssrc|. // When |enable| is true |options| should be applied to the audio track. virtual void SetAudioSend(uint32_t ssrc, diff --git a/talk/app/webrtc/rtpreceiver.cc b/talk/app/webrtc/rtpreceiver.cc index faf3de3033..b88554f0ac 100644 --- a/talk/app/webrtc/rtpreceiver.cc +++ b/talk/app/webrtc/rtpreceiver.cc @@ -70,7 +70,7 @@ void AudioRtpReceiver::Stop() { if (!provider_) { return; } - provider_->SetAudioPlayout(ssrc_, false, nullptr); + provider_->SetAudioPlayout(ssrc_, false); provider_ = nullptr; } @@ -78,7 +78,7 @@ void AudioRtpReceiver::Reconfigure() { if (!provider_) { return; } - provider_->SetAudioPlayout(ssrc_, track_->enabled(), track_->GetRenderer()); + provider_->SetAudioPlayout(ssrc_, track_->enabled()); } VideoRtpReceiver::VideoRtpReceiver(VideoTrackInterface* track, diff --git a/talk/app/webrtc/rtpsenderreceiver_unittest.cc b/talk/app/webrtc/rtpsenderreceiver_unittest.cc index b69221bfb6..c9d7e008c3 100644 --- a/talk/app/webrtc/rtpsenderreceiver_unittest.cc +++ b/talk/app/webrtc/rtpsenderreceiver_unittest.cc @@ -56,10 +56,9 @@ namespace webrtc { class MockAudioProvider : public AudioProviderInterface { public: virtual ~MockAudioProvider() {} - MOCK_METHOD3(SetAudioPlayout, + MOCK_METHOD2(SetAudioPlayout, void(uint32_t ssrc, - bool enable, - cricket::AudioRenderer* renderer)); + bool enable)); MOCK_METHOD4(SetAudioSend, void(uint32_t ssrc, bool enable, @@ -150,7 +149,7 @@ class RtpSenderReceiverTest : public testing::Test { audio_track_ = AudioTrack::Create(kAudioTrackId, RemoteAudioSource::Create().get()); EXPECT_TRUE(stream_->AddTrack(audio_track_)); - EXPECT_CALL(audio_provider_, SetAudioPlayout(kAudioSsrc, true, _)); + EXPECT_CALL(audio_provider_, SetAudioPlayout(kAudioSsrc, true)); audio_rtp_receiver_ = new AudioRtpReceiver(stream_->GetAudioTracks()[0], kAudioSsrc, &audio_provider_); } @@ -164,7 +163,7 @@ class RtpSenderReceiverTest : public testing::Test { } void DestroyAudioRtpReceiver() { - EXPECT_CALL(audio_provider_, SetAudioPlayout(kAudioSsrc, false, _)); + EXPECT_CALL(audio_provider_, SetAudioPlayout(kAudioSsrc, false)); audio_rtp_receiver_ = nullptr; } @@ -228,10 +227,10 @@ TEST_F(RtpSenderReceiverTest, LocalAudioTrackDisable) { TEST_F(RtpSenderReceiverTest, RemoteAudioTrackDisable) { CreateAudioRtpReceiver(); - EXPECT_CALL(audio_provider_, SetAudioPlayout(kAudioSsrc, false, _)); + EXPECT_CALL(audio_provider_, SetAudioPlayout(kAudioSsrc, false)); audio_track_->set_enabled(false); - EXPECT_CALL(audio_provider_, SetAudioPlayout(kAudioSsrc, true, _)); + EXPECT_CALL(audio_provider_, SetAudioPlayout(kAudioSsrc, true)); audio_track_->set_enabled(true); DestroyAudioRtpReceiver(); @@ -267,11 +266,11 @@ TEST_F(RtpSenderReceiverTest, RemoteAudioTrackSetVolume) { audio_track_->GetSource()->SetVolume(volume); // Disable the audio track, this should prevent setting the volume. - EXPECT_CALL(audio_provider_, SetAudioPlayout(kAudioSsrc, false, _)); + EXPECT_CALL(audio_provider_, SetAudioPlayout(kAudioSsrc, false)); audio_track_->set_enabled(false); audio_track_->GetSource()->SetVolume(1.0); - EXPECT_CALL(audio_provider_, SetAudioPlayout(kAudioSsrc, true, _)); + EXPECT_CALL(audio_provider_, SetAudioPlayout(kAudioSsrc, true)); audio_track_->set_enabled(true); double new_volume = 0.8; diff --git a/talk/app/webrtc/webrtcsession.cc b/talk/app/webrtc/webrtcsession.cc index 10b607caa3..bdc47840bd 100644 --- a/talk/app/webrtc/webrtcsession.cc +++ b/talk/app/webrtc/webrtcsession.cc @@ -1233,19 +1233,12 @@ std::string WebRtcSession::BadStateErrMsg(State state) { return desc.str(); } -void WebRtcSession::SetAudioPlayout(uint32_t ssrc, - bool enable, - cricket::AudioRenderer* renderer) { +void WebRtcSession::SetAudioPlayout(uint32_t ssrc, bool enable) { ASSERT(signaling_thread()->IsCurrent()); if (!voice_channel_) { LOG(LS_ERROR) << "SetAudioPlayout: No audio channel exists."; return; } - if (!voice_channel_->SetRemoteRenderer(ssrc, renderer)) { - // SetRenderer() can fail if the ssrc does not match any playout channel. - LOG(LS_ERROR) << "SetAudioPlayout: ssrc is incorrect: " << ssrc; - return; - } if (!voice_channel_->SetOutputVolume(ssrc, enable ? 1 : 0)) { // Allow that SetOutputVolume fail if |enable| is false but assert // otherwise. This in the normal case when the underlying media channel has diff --git a/talk/app/webrtc/webrtcsession.h b/talk/app/webrtc/webrtcsession.h index 6e4a9e92b4..b214eb69b8 100644 --- a/talk/app/webrtc/webrtcsession.h +++ b/talk/app/webrtc/webrtcsession.h @@ -202,9 +202,7 @@ class WebRtcSession : public cricket::BaseSession, virtual bool GetRemoteTrackIdBySsrc(uint32_t ssrc, std::string* track_id); // AudioMediaProviderInterface implementation. - void SetAudioPlayout(uint32_t ssrc, - bool enable, - cricket::AudioRenderer* renderer) override; + void SetAudioPlayout(uint32_t ssrc, bool enable) override; void SetAudioSend(uint32_t ssrc, bool enable, const cricket::AudioOptions& options, diff --git a/talk/app/webrtc/webrtcsession_unittest.cc b/talk/app/webrtc/webrtcsession_unittest.cc index e8624761e9..a463ba90bb 100644 --- a/talk/app/webrtc/webrtcsession_unittest.cc +++ b/talk/app/webrtc/webrtcsession_unittest.cc @@ -3101,11 +3101,10 @@ TEST_F(WebRtcSessionTest, SetAudioPlayout) { double volume; EXPECT_TRUE(channel->GetOutputVolume(receive_ssrc, &volume)); EXPECT_EQ(1, volume); - rtc::scoped_ptr renderer(new FakeAudioRenderer()); - session_->SetAudioPlayout(receive_ssrc, false, renderer.get()); + session_->SetAudioPlayout(receive_ssrc, false); EXPECT_TRUE(channel->GetOutputVolume(receive_ssrc, &volume)); EXPECT_EQ(0, volume); - session_->SetAudioPlayout(receive_ssrc, true, NULL); + session_->SetAudioPlayout(receive_ssrc, true); EXPECT_TRUE(channel->GetOutputVolume(receive_ssrc, &volume)); EXPECT_EQ(1, volume); } diff --git a/talk/media/base/fakemediaengine.h b/talk/media/base/fakemediaengine.h index 3a7d3f063f..2728c7d325 100644 --- a/talk/media/base/fakemediaengine.h +++ b/talk/media/base/fakemediaengine.h @@ -300,24 +300,6 @@ class FakeVoiceMediaChannel : public RtpHelper { output_scalings_.erase(ssrc); return true; } - virtual bool SetRemoteRenderer(uint32_t ssrc, AudioRenderer* renderer) { - std::map::iterator it = - remote_renderers_.find(ssrc); - if (renderer) { - if (it != remote_renderers_.end()) { - ASSERT(it->second == renderer); - } else { - remote_renderers_.insert(std::make_pair(ssrc, renderer)); - } - } else { - if (it != remote_renderers_.end()) { - remote_renderers_.erase(it); - } else { - return false; - } - } - return true; - } virtual bool GetActiveStreams(AudioInfo::StreamList* streams) { return true; } virtual int GetOutputLevel() { return 0; } @@ -439,7 +421,6 @@ class FakeVoiceMediaChannel : public RtpHelper { int time_since_last_typing_; AudioOptions options_; std::map local_renderers_; - std::map remote_renderers_; }; // A helper function to compare the FakeVoiceMediaChannel::DtmfInfo. diff --git a/talk/media/base/mediachannel.h b/talk/media/base/mediachannel.h index ed49961bd7..05d56cf9e0 100644 --- a/talk/media/base/mediachannel.h +++ b/talk/media/base/mediachannel.h @@ -1055,8 +1055,6 @@ class VoiceMediaChannel : public MediaChannel { bool enable, const AudioOptions* options, AudioRenderer* renderer) = 0; - // Sets the renderer object to be used for the specified remote audio stream. - virtual bool SetRemoteRenderer(uint32_t ssrc, AudioRenderer* renderer) = 0; // Gets current energy levels for all incoming streams. virtual bool GetActiveStreams(AudioInfo::StreamList* actives) = 0; // Get the current energy level of the stream sent to the speaker. diff --git a/talk/media/webrtc/webrtcvoiceengine.cc b/talk/media/webrtc/webrtcvoiceengine.cc index 4d74e915c5..3fae1a742d 100644 --- a/talk/media/webrtc/webrtcvoiceengine.cc +++ b/talk/media/webrtc/webrtcvoiceengine.cc @@ -2389,29 +2389,6 @@ bool WebRtcVoiceMediaChannel::RemoveRecvStream(uint32_t ssrc) { return true; } -bool WebRtcVoiceMediaChannel::SetRemoteRenderer(uint32_t ssrc, - AudioRenderer* renderer) { - RTC_DCHECK(thread_checker_.CalledOnValidThread()); - ChannelMap::iterator it = receive_channels_.find(ssrc); - if (it == receive_channels_.end()) { - if (renderer) { - // Return an error if trying to set a valid renderer with an invalid ssrc. - LOG(LS_ERROR) << "SetRemoteRenderer failed with ssrc "<< ssrc; - return false; - } - - // The channel likely has gone away, do nothing. - return true; - } - - if (renderer) - it->second->Start(renderer); - else - it->second->Stop(); - - return true; -} - bool WebRtcVoiceMediaChannel::SetLocalRenderer(uint32_t ssrc, AudioRenderer* renderer) { ChannelMap::iterator it = send_channels_.find(ssrc); diff --git a/talk/media/webrtc/webrtcvoiceengine.h b/talk/media/webrtc/webrtcvoiceengine.h index 5af8088f14..8527cdb930 100644 --- a/talk/media/webrtc/webrtcvoiceengine.h +++ b/talk/media/webrtc/webrtcvoiceengine.h @@ -200,7 +200,6 @@ class WebRtcVoiceMediaChannel : public VoiceMediaChannel, bool RemoveSendStream(uint32_t ssrc) override; bool AddRecvStream(const StreamParams& sp) override; bool RemoveRecvStream(uint32_t ssrc) override; - bool SetRemoteRenderer(uint32_t ssrc, AudioRenderer* renderer) override; bool GetActiveStreams(AudioInfo::StreamList* actives) override; int GetOutputLevel() override; int GetTimeSinceLastTyping() override; diff --git a/talk/session/media/channel.cc b/talk/session/media/channel.cc index 5a7ba607cd..fb0f574211 100644 --- a/talk/session/media/channel.cc +++ b/talk/session/media/channel.cc @@ -1296,11 +1296,6 @@ bool VoiceChannel::Init() { return true; } -bool VoiceChannel::SetRemoteRenderer(uint32_t ssrc, AudioRenderer* renderer) { - return InvokeOnWorker(Bind(&VoiceMediaChannel::SetRemoteRenderer, - media_channel(), ssrc, renderer)); -} - bool VoiceChannel::SetAudioSend(uint32_t ssrc, bool enable, const AudioOptions* options, diff --git a/talk/session/media/channel.h b/talk/session/media/channel.h index 36cc6b0464..d7f93c73b4 100644 --- a/talk/session/media/channel.h +++ b/talk/session/media/channel.h @@ -335,7 +335,6 @@ class VoiceChannel : public BaseChannel { bool rtcp); ~VoiceChannel(); bool Init(); - bool SetRemoteRenderer(uint32_t ssrc, AudioRenderer* renderer); // Configure sending media on the stream with SSRC |ssrc| // If there is only one sending stream SSRC 0 can be used.