From a066cbf37c361819cf219802d005073bbcf4ec94 Mon Sep 17 00:00:00 2001 From: "mflodman@webrtc.org" Date: Tue, 28 May 2013 15:00:15 +0000 Subject: [PATCH] Don't return an estimated receive BW for channels not receiving video. BUG=1834 TEST=ViE RTP autotest R=stefan@webrtc.org Review URL: https://webrtc-codereview.appspot.com/1572004 git-svn-id: http://webrtc.googlecode.com/svn/trunk@4121 4adac7df-926f-26a2-2b94-8c16560cd09d --- .../test/auto_test/source/vie_autotest_rtp_rtcp.cc | 10 ++++++++++ webrtc/video_engine/vie_receiver.cc | 3 ++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/webrtc/video_engine/test/auto_test/source/vie_autotest_rtp_rtcp.cc b/webrtc/video_engine/test/auto_test/source/vie_autotest_rtp_rtcp.cc index 00a6278444..d823700922 100644 --- a/webrtc/video_engine/test/auto_test/source/vie_autotest_rtp_rtcp.cc +++ b/webrtc/video_engine/test/auto_test/source/vie_autotest_rtp_rtcp.cc @@ -297,6 +297,16 @@ void ViEAutoTest::ViERtpRtcpStandardTest() tbChannel.videoChannel, &estimated_bandwidth)); EXPECT_GT(estimated_bandwidth, 0u); + + int passive_channel = -1; + EXPECT_EQ(ViE.base->CreateReceiveChannel(passive_channel, + tbChannel.videoChannel), 0); + EXPECT_EQ(ViE.base->StartReceive(passive_channel), 0); + EXPECT_EQ( + ViE.rtp_rtcp->GetEstimatedReceiveBandwidth(passive_channel, + &estimated_bandwidth), + 0); + EXPECT_EQ(estimated_bandwidth, 0u); } // Check that rec stats extended max is greater than what we've sent. diff --git a/webrtc/video_engine/vie_receiver.cc b/webrtc/video_engine/vie_receiver.cc index 508ae45b05..31e6c84555 100644 --- a/webrtc/video_engine/vie_receiver.cc +++ b/webrtc/video_engine/vie_receiver.cc @@ -278,7 +278,8 @@ void ViEReceiver::EstimatedReceiveBandwidth( // LatestEstimate returns an error if there is no valid bitrate estimate, but // ViEReceiver instead returns a zero estimate. remote_bitrate_estimator_->LatestEstimate(&ssrcs, available_bandwidth); - if (!ssrcs.empty()) { + if (std::find(ssrcs.begin(), ssrcs.end(), rtp_rtcp_->RemoteSSRC()) != + ssrcs.end()) { *available_bandwidth /= ssrcs.size(); } else { *available_bandwidth = 0;