From 5284d6e9058449dabec40a0888fcdb7da48e3420 Mon Sep 17 00:00:00 2001 From: "mflodman@webrtc.org" Date: Mon, 23 Apr 2012 13:22:26 +0000 Subject: [PATCH] Minor change to trigger REMB packets in RTCP RR if there is no sending channel. BUG= TEST=video_engine_core_unittest Review URL: https://webrtc-codereview.appspot.com/508007 git-svn-id: http://webrtc.googlecode.com/svn/trunk@2092 4adac7df-926f-26a2-2b94-8c16560cd09d --- src/video_engine/vie_remb.cc | 2 ++ src/video_engine/vie_remb_unittest.cc | 7 ++++--- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/video_engine/vie_remb.cc b/src/video_engine/vie_remb.cc index 2bd1cffc6f..e0ecf3fe06 100644 --- a/src/video_engine/vie_remb.cc +++ b/src/video_engine/vie_remb.cc @@ -227,6 +227,8 @@ WebRtc_Word32 VieRemb::Process() { RtpRtcp* sender = NULL; if (!rtcp_sender_.empty()) { sender = rtcp_sender_.front(); + } else if (!receive_modules_.empty()){ + sender = receive_modules_.front(); } last_send_bitrate_ = total_bitrate; list_crit_->Leave(); diff --git a/src/video_engine/vie_remb_unittest.cc b/src/video_engine/vie_remb_unittest.cc index bcfe06f45d..d8f1e0ebc1 100644 --- a/src/video_engine/vie_remb_unittest.cc +++ b/src/video_engine/vie_remb_unittest.cc @@ -326,6 +326,8 @@ TEST_F(ViERembTest, NoOnReceivedBitrateChangedCall) vie_remb_->RemoveRembSender(&rtp); } +// Only register receiving modules and make sure we fallback to trigger a REMB +// packet on this one. TEST_F(ViERembTest, NoSendingRtpModule) { MockRtpRtcp rtp; @@ -338,11 +340,10 @@ TEST_F(ViERembTest, NoSendingRtpModule) EXPECT_CALL(rtp, RemoteSSRC()) .WillRepeatedly(Return(ssrc[0])); - // Lower the estimate. This should normally trigger a callback, but not now - // since we have no sending module. + // Lower the estimate to trigger a new packet REMB packet. bitrate_estimate = bitrate_estimate - 100; EXPECT_CALL(rtp, SetREMBData(_, _, _)) - .Times(0); + .Times(1); vie_remb_->OnReceiveBitrateChanged(ssrc[0], bitrate_estimate); vie_remb_->Process(); }