diff --git a/talk/media/base/videoengine_unittest.h b/talk/media/base/videoengine_unittest.h index dc22122d4c..0f03c7b859 100644 --- a/talk/media/base/videoengine_unittest.h +++ b/talk/media/base/videoengine_unittest.h @@ -1698,6 +1698,14 @@ class VideoMediaChannelTest : public testing::Test, EXPECT_EQ_WAIT(frame_count, renderer_.num_rendered_frames(), kTimeout); EXPECT_FALSE(renderer_.black_frame()); + // Test that muting an existing stream succeeds even if it's muted. + EXPECT_TRUE(channel_->MuteStream(kSsrc, true)); + EXPECT_TRUE(channel_->MuteStream(kSsrc, true)); + + // Test that unmuting an existing stream succeeds even if it's not muted. + EXPECT_TRUE(channel_->MuteStream(kSsrc, false)); + EXPECT_TRUE(channel_->MuteStream(kSsrc, false)); + // Test that muting an invalid stream fails. EXPECT_FALSE(channel_->MuteStream(kSsrc+1, true)); EXPECT_TRUE(channel_->SetCapturer(kSsrc, NULL)); diff --git a/talk/media/webrtc/webrtcvideoengine2.cc b/talk/media/webrtc/webrtcvideoengine2.cc index fb5c4608a4..5bb9db4716 100644 --- a/talk/media/webrtc/webrtcvideoengine2.cc +++ b/talk/media/webrtc/webrtcvideoengine2.cc @@ -1181,7 +1181,9 @@ bool WebRtcVideoChannel2::MuteStream(uint32 ssrc, bool mute) { LOG(LS_ERROR) << "No sending stream on ssrc " << ssrc; return false; } - return send_streams_[ssrc]->MuteStream(mute); + + send_streams_[ssrc]->MuteStream(mute); + return true; } bool WebRtcVideoChannel2::SetRecvRtpHeaderExtensions( @@ -1472,11 +1474,9 @@ bool WebRtcVideoChannel2::WebRtcVideoSendStream::SetVideoFormat( return true; } -bool WebRtcVideoChannel2::WebRtcVideoSendStream::MuteStream(bool mute) { +void WebRtcVideoChannel2::WebRtcVideoSendStream::MuteStream(bool mute) { rtc::CritScope cs(&lock_); - bool was_muted = muted_; muted_ = mute; - return was_muted != mute; } bool WebRtcVideoChannel2::WebRtcVideoSendStream::DisconnectCapturer() { diff --git a/talk/media/webrtc/webrtcvideoengine2.h b/talk/media/webrtc/webrtcvideoengine2.h index c331d82072..c7eb6a483a 100644 --- a/talk/media/webrtc/webrtcvideoengine2.h +++ b/talk/media/webrtc/webrtcvideoengine2.h @@ -304,7 +304,7 @@ class WebRtcVideoChannel2 : public rtc::MessageHandler, void InputFrame(VideoCapturer* capturer, const VideoFrame* frame); bool SetCapturer(VideoCapturer* capturer); bool SetVideoFormat(const VideoFormat& format); - bool MuteStream(bool mute); + void MuteStream(bool mute); bool DisconnectCapturer(); void Start();