Network up/down signaling in Call.
BUG=2429
R=mflodman@webrtc.org, stefan@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/13109005
git-svn-id: http://webrtc.googlecode.com/svn/trunk/talk@7044 4adac7df-926f-26a2-2b94-8c16560cd09d
diff --git a/media/webrtc/webrtcvideoengine2.cc b/media/webrtc/webrtcvideoengine2.cc
index 97d274d..44c1bf8 100644
--- a/media/webrtc/webrtcvideoengine2.cc
+++ b/media/webrtc/webrtcvideoengine2.cc
@@ -1153,7 +1153,9 @@
}
void WebRtcVideoChannel2::OnReadyToSend(bool ready) {
- LOG(LS_VERBOSE) << "OnReadySend: " << (ready ? "Ready." : "Not ready.");
+ LOG(LS_VERBOSE) << "OnReadyToSend: " << (ready ? "Ready." : "Not ready.");
+ call_->SignalNetworkState(ready ? webrtc::Call::kNetworkUp
+ : webrtc::Call::kNetworkDown);
}
bool WebRtcVideoChannel2::MuteStream(uint32 ssrc, bool mute) {
diff --git a/media/webrtc/webrtcvideoengine2_unittest.cc b/media/webrtc/webrtcvideoengine2_unittest.cc
index 4f69f6d..2178a68 100644
--- a/media/webrtc/webrtcvideoengine2_unittest.cc
+++ b/media/webrtc/webrtcvideoengine2_unittest.cc
@@ -157,7 +157,9 @@
void FakeVideoReceiveStream::GetCurrentReceiveCodec(webrtc::VideoCodec* codec) {
}
-FakeCall::FakeCall() { SetVideoCodecs(GetDefaultVideoCodecs()); }
+FakeCall::FakeCall() : network_state_(kNetworkUp) {
+ SetVideoCodecs(GetDefaultVideoCodecs());
+}
FakeCall::~FakeCall() {
EXPECT_EQ(0u, video_send_streams_.size());
@@ -218,6 +220,10 @@
return codecs;
}
+webrtc::Call::NetworkState FakeCall::GetNetworkState() const {
+ return network_state_;
+}
+
webrtc::VideoSendStream* FakeCall::CreateVideoSendStream(
const webrtc::VideoSendStream::Config& config,
const std::vector<webrtc::VideoStream>& video_streams,
@@ -274,6 +280,10 @@
return 0;
}
+void FakeCall::SignalNetworkState(webrtc::Call::NetworkState state) {
+ network_state_ = state;
+}
+
FakeWebRtcVideoChannel2::FakeWebRtcVideoChannel2(
FakeCall* call,
WebRtcVideoEngine2* engine,
@@ -289,6 +299,7 @@
VoiceMediaChannel* FakeWebRtcVideoChannel2::GetVoiceChannel() {
return voice_channel_;
}
+
FakeCall* FakeWebRtcVideoChannel2::GetFakeCall() {
return fake_call_;
}
@@ -1614,8 +1625,17 @@
FAIL() << "Not implemented."; // TODO(pbos): Implement.
}
-TEST_F(WebRtcVideoChannel2Test, DISABLED_OnReadyToSend) {
- FAIL() << "Not implemented."; // TODO(pbos): Implement.
+TEST_F(WebRtcVideoChannel2Test, OnReadyToSendSignalsNetworkState) {
+ EXPECT_EQ(webrtc::Call::kNetworkUp,
+ fake_channel_->GetFakeCall()->GetNetworkState());
+
+ channel_->OnReadyToSend(false);
+ EXPECT_EQ(webrtc::Call::kNetworkDown,
+ fake_channel_->GetFakeCall()->GetNetworkState());
+
+ channel_->OnReadyToSend(true);
+ EXPECT_EQ(webrtc::Call::kNetworkUp,
+ fake_channel_->GetFakeCall()->GetNetworkState());
}
TEST_F(WebRtcVideoChannel2Test, DISABLED_CaptureFrameTimestampToNtpTimestamp) {
diff --git a/media/webrtc/webrtcvideoengine2_unittest.h b/media/webrtc/webrtcvideoengine2_unittest.h
index 54e6f06..5aaa3e3 100644
--- a/media/webrtc/webrtcvideoengine2_unittest.h
+++ b/media/webrtc/webrtcvideoengine2_unittest.h
@@ -103,6 +103,8 @@
std::vector<webrtc::VideoCodec> GetDefaultVideoCodecs();
+ webrtc::Call::NetworkState GetNetworkState() const;
+
private:
virtual webrtc::VideoSendStream* CreateVideoSendStream(
const webrtc::VideoSendStream::Config& config,
@@ -122,6 +124,9 @@
virtual uint32_t SendBitrateEstimate() OVERRIDE;
virtual uint32_t ReceiveBitrateEstimate() OVERRIDE;
+ virtual void SignalNetworkState(webrtc::Call::NetworkState state) OVERRIDE;
+
+ webrtc::Call::NetworkState network_state_;
std::vector<webrtc::VideoCodec> codecs_;
std::vector<FakeVideoSendStream*> video_send_streams_;
std::vector<FakeVideoReceiveStream*> video_receive_streams_;