diff --git a/media/engine/webrtc_voice_engine.cc b/media/engine/webrtc_voice_engine.cc index f055a0000a..e8d4435611 100644 --- a/media/engine/webrtc_voice_engine.cc +++ b/media/engine/webrtc_voice_engine.cc @@ -1105,9 +1105,10 @@ class WebRtcVoiceSendChannel::WebRtcAudioSendStream : public AudioSource::Sink { RTC_DCHECK_RUN_ON(&worker_thread_checker_); RTC_DCHECK(stream_); RTC_DCHECK_EQ(1UL, rtp_parameters_.encodings.size()); - if (send_ && source_ != nullptr && rtp_parameters_.encodings[0].active) { + // Stream can be started without |source_| being set. + if (send_ && rtp_parameters_.encodings[0].active) { stream_->Start(); - } else { // !send || source_ = nullptr + } else { stream_->Stop(); } } diff --git a/media/engine/webrtc_voice_engine_unittest.cc b/media/engine/webrtc_voice_engine_unittest.cc index e1d7805180..0a3c592d17 100644 --- a/media/engine/webrtc_voice_engine_unittest.cc +++ b/media/engine/webrtc_voice_engine_unittest.cc @@ -2248,20 +2248,6 @@ TEST_P(WebRtcVoiceEngineTestFake, Send) { EXPECT_FALSE(GetSendStream(kSsrcX).IsSending()); } -// Test that a channel will send if and only if it has a source and is enabled -// for sending. -TEST_P(WebRtcVoiceEngineTestFake, SendStateWithAndWithoutSource) { - EXPECT_TRUE(SetupSendStream()); - SetSenderParameters(send_parameters_); - SetAudioSend(kSsrcX, true, nullptr); - SetSend(true); - EXPECT_FALSE(GetSendStream(kSsrcX).IsSending()); - SetAudioSend(kSsrcX, true, &fake_source_); - EXPECT_TRUE(GetSendStream(kSsrcX).IsSending()); - SetAudioSend(kSsrcX, true, nullptr); - EXPECT_FALSE(GetSendStream(kSsrcX).IsSending()); -} - // Test that a channel is muted/unmuted. TEST_P(WebRtcVoiceEngineTestFake, SendStateMuteUnmute) { EXPECT_TRUE(SetupSendStream());