From 198647473ba207d59dc94216ef38496d43d15592 Mon Sep 17 00:00:00 2001 From: "pbos@webrtc.org" Date: Fri, 30 May 2014 07:35:47 +0000 Subject: [PATCH] Implement and fix new-API NackIsEnabled test. Required enabling NACK on receiver side which was apparently missed. BUG=1788 R=pthatcher@google.com, pthatcher@webrtc.org Review URL: https://webrtc-codereview.appspot.com/16499007 git-svn-id: http://webrtc.googlecode.com/svn/trunk@6278 4adac7df-926f-26a2-2b94-8c16560cd09d --- talk/media/webrtc/webrtcvideoengine2.cc | 1 + .../webrtc/webrtcvideoengine2_unittest.cc | 20 ++++++++++++++++--- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/talk/media/webrtc/webrtcvideoengine2.cc b/talk/media/webrtc/webrtcvideoengine2.cc index cc3c7593f7..cc5db0cdf5 100644 --- a/talk/media/webrtc/webrtcvideoengine2.cc +++ b/talk/media/webrtc/webrtcvideoengine2.cc @@ -1011,6 +1011,7 @@ bool WebRtcVideoChannel2::AddRecvStream(const StreamParams& sp) { config.rtp.rtx[0].ssrc = rtx_ssrc; } + config.rtp.nack.rtp_history_ms = kNackHistoryMs; config.rtp.remb = true; // TODO(pbos): This protection is against setting the same local ssrc as // remote which is not permitted by the lower-level API. RTCP requires a diff --git a/talk/media/webrtc/webrtcvideoengine2_unittest.cc b/talk/media/webrtc/webrtcvideoengine2_unittest.cc index d21899d99e..1e402e0c26 100644 --- a/talk/media/webrtc/webrtcvideoengine2_unittest.cc +++ b/talk/media/webrtc/webrtcvideoengine2_unittest.cc @@ -687,9 +687,23 @@ TEST_F(WebRtcVideoChannel2Test, DISABLED_RembOnOff) { FAIL() << "Not implemented."; // TODO(pbos): Implement. } -TEST_F(WebRtcVideoChannel2Test, DISABLED_NackEnabled) { - // Verify NACK on both sender and receiver. - FAIL() << "Not implemented."; // TODO(pbos): Implement. +TEST_F(WebRtcVideoChannel2Test, NackIsEnabled) { + EXPECT_TRUE(channel_->SetSendCodecs(engine_.codecs())); + EXPECT_TRUE(channel_->SetSend(true)); + + // Send side. + FakeVideoSendStream* send_stream = + AddSendStream(cricket::StreamParams::CreateLegacy(1)); + EXPECT_GT(send_stream->GetConfig().rtp.nack.rtp_history_ms, 0); + + // Receiver side. + FakeVideoReceiveStream* recv_stream = + AddRecvStream(cricket::StreamParams::CreateLegacy(1)); + EXPECT_GT(recv_stream->GetConfig().rtp.nack.rtp_history_ms, 0); + + // Nack history size should match between sender and receiver. + EXPECT_EQ(send_stream->GetConfig().rtp.nack.rtp_history_ms, + recv_stream->GetConfig().rtp.nack.rtp_history_ms); } TEST_F(WebRtcVideoChannel2Test, DISABLED_VideoProtectionInterop) {