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
This commit is contained in:
mflodman@webrtc.org 2012-04-23 13:22:26 +00:00
parent bf9f469a13
commit 5284d6e905
2 changed files with 6 additions and 3 deletions

View File

@ -227,6 +227,8 @@ WebRtc_Word32 VieRemb::Process() {
RtpRtcp* sender = NULL; RtpRtcp* sender = NULL;
if (!rtcp_sender_.empty()) { if (!rtcp_sender_.empty()) {
sender = rtcp_sender_.front(); sender = rtcp_sender_.front();
} else if (!receive_modules_.empty()){
sender = receive_modules_.front();
} }
last_send_bitrate_ = total_bitrate; last_send_bitrate_ = total_bitrate;
list_crit_->Leave(); list_crit_->Leave();

View File

@ -326,6 +326,8 @@ TEST_F(ViERembTest, NoOnReceivedBitrateChangedCall)
vie_remb_->RemoveRembSender(&rtp); 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) TEST_F(ViERembTest, NoSendingRtpModule)
{ {
MockRtpRtcp rtp; MockRtpRtcp rtp;
@ -338,11 +340,10 @@ TEST_F(ViERembTest, NoSendingRtpModule)
EXPECT_CALL(rtp, RemoteSSRC()) EXPECT_CALL(rtp, RemoteSSRC())
.WillRepeatedly(Return(ssrc[0])); .WillRepeatedly(Return(ssrc[0]));
// Lower the estimate. This should normally trigger a callback, but not now // Lower the estimate to trigger a new packet REMB packet.
// since we have no sending module.
bitrate_estimate = bitrate_estimate - 100; bitrate_estimate = bitrate_estimate - 100;
EXPECT_CALL(rtp, SetREMBData(_, _, _)) EXPECT_CALL(rtp, SetREMBData(_, _, _))
.Times(0); .Times(1);
vie_remb_->OnReceiveBitrateChanged(ssrc[0], bitrate_estimate); vie_remb_->OnReceiveBitrateChanged(ssrc[0], bitrate_estimate);
vie_remb_->Process(); vie_remb_->Process();
} }