Simplify BitrateAllocator::AddBitrateObserver.

Remove start_bitrate_bps which is no longer used and return the current
allocated bitrate instead of having it as an out parameter, removing the
previous return value which is no longer used.

Permits removing bitrate controller usage from ViEEncoder.

BUG=webrtc:1695
R=stefan@webrtc.org

Review URL: https://codereview.webrtc.org/1343783006 .

Cr-Commit-Position: refs/heads/master@{#9942}
This commit is contained in:
Peter Boström
2015-09-15 15:08:03 +02:00
parent dcb8998821
commit 8e4e8b0455
7 changed files with 72 additions and 125 deletions

View File

@ -46,22 +46,24 @@ class BitrateAllocatorTest : public ::testing::Test {
TEST_F(BitrateAllocatorTest, UpdatingBitrateObserver) {
TestBitrateObserver bitrate_observer;
int start_bitrate;
allocator_->AddBitrateObserver(&bitrate_observer, 200000, 100000, 1500000,
&start_bitrate);
int start_bitrate =
allocator_->AddBitrateObserver(&bitrate_observer, 100000, 1500000);
EXPECT_EQ(300000, start_bitrate);
allocator_->OnNetworkChanged(200000, 0, 0);
EXPECT_EQ(200000u, bitrate_observer.last_bitrate_);
allocator_->AddBitrateObserver(&bitrate_observer, 1500000, 100000, 1500000,
&start_bitrate);
EXPECT_EQ(1500000, start_bitrate);
allocator_->OnNetworkChanged(1500000, 0, 0);
EXPECT_EQ(1500000u, bitrate_observer.last_bitrate_);
// TODO(pbos): Expect capping to 1.5M instead of 3M when not boosting the max
// bitrate for FEC/retransmissions (see TODO in BitrateAllocator).
allocator_->OnNetworkChanged(4000000, 0, 0);
EXPECT_EQ(3000000u, bitrate_observer.last_bitrate_);
start_bitrate =
allocator_->AddBitrateObserver(&bitrate_observer, 100000, 4000000);
EXPECT_EQ(4000000, start_bitrate);
allocator_->AddBitrateObserver(&bitrate_observer, 500000, 100000, 1500000,
&start_bitrate);
EXPECT_EQ(1500000, start_bitrate);
start_bitrate =
allocator_->AddBitrateObserver(&bitrate_observer, 100000, 1500000);
EXPECT_EQ(3000000, start_bitrate);
EXPECT_EQ(3000000u, bitrate_observer.last_bitrate_);
allocator_->OnNetworkChanged(1500000, 0, 0);
EXPECT_EQ(1500000u, bitrate_observer.last_bitrate_);
}
@ -69,12 +71,11 @@ TEST_F(BitrateAllocatorTest, UpdatingBitrateObserver) {
TEST_F(BitrateAllocatorTest, TwoBitrateObserversOneRtcpObserver) {
TestBitrateObserver bitrate_observer_1;
TestBitrateObserver bitrate_observer_2;
int start_bitrate;
allocator_->AddBitrateObserver(&bitrate_observer_1, 200000, 100000, 300000,
&start_bitrate);
int start_bitrate =
allocator_->AddBitrateObserver(&bitrate_observer_1, 100000, 300000);
EXPECT_EQ(300000, start_bitrate);
allocator_->AddBitrateObserver(&bitrate_observer_2, 200000, 200000, 300000,
&start_bitrate);
start_bitrate =
allocator_->AddBitrateObserver(&bitrate_observer_2, 200000, 300000);
EXPECT_EQ(200000, start_bitrate);
// Test too low start bitrate, hence lower than sum of min. Min bitrates will
@ -114,9 +115,8 @@ class BitrateAllocatorTestNoEnforceMin : public ::testing::Test {
// as intended.
TEST_F(BitrateAllocatorTestNoEnforceMin, OneBitrateObserver) {
TestBitrateObserver bitrate_observer_1;
int start_bitrate;
allocator_->AddBitrateObserver(&bitrate_observer_1, 200000, 100000, 400000,
&start_bitrate);
int start_bitrate =
allocator_->AddBitrateObserver(&bitrate_observer_1, 100000, 400000);
EXPECT_EQ(300000, start_bitrate);
// High REMB.
@ -135,18 +135,17 @@ TEST_F(BitrateAllocatorTestNoEnforceMin, ThreeBitrateObservers) {
TestBitrateObserver bitrate_observer_2;
TestBitrateObserver bitrate_observer_3;
// Set up the observers with min bitrates at 100000, 200000, and 300000.
int start_bitrate;
allocator_->AddBitrateObserver(&bitrate_observer_1, 200000, 100000, 400000,
&start_bitrate);
int start_bitrate =
allocator_->AddBitrateObserver(&bitrate_observer_1, 100000, 400000);
EXPECT_EQ(300000, start_bitrate);
allocator_->AddBitrateObserver(&bitrate_observer_2, 200000, 200000, 400000,
&start_bitrate);
start_bitrate =
allocator_->AddBitrateObserver(&bitrate_observer_2, 200000, 400000);
EXPECT_EQ(200000, start_bitrate);
EXPECT_EQ(100000u, bitrate_observer_1.last_bitrate_);
allocator_->AddBitrateObserver(&bitrate_observer_3, 200000, 300000, 400000,
&start_bitrate);
start_bitrate =
allocator_->AddBitrateObserver(&bitrate_observer_3, 300000, 400000);
EXPECT_EQ(0, start_bitrate);
EXPECT_EQ(100000u, bitrate_observer_1.last_bitrate_);
EXPECT_EQ(200000u, bitrate_observer_2.last_bitrate_);
@ -185,18 +184,17 @@ TEST_F(BitrateAllocatorTest, ThreeBitrateObserversLowRembEnforceMin) {
TestBitrateObserver bitrate_observer_1;
TestBitrateObserver bitrate_observer_2;
TestBitrateObserver bitrate_observer_3;
int start_bitrate;
allocator_->AddBitrateObserver(&bitrate_observer_1, 200000, 100000, 400000,
&start_bitrate);
int start_bitrate =
allocator_->AddBitrateObserver(&bitrate_observer_1, 100000, 400000);
EXPECT_EQ(300000, start_bitrate);
allocator_->AddBitrateObserver(&bitrate_observer_2, 200000, 200000, 400000,
&start_bitrate);
start_bitrate =
allocator_->AddBitrateObserver(&bitrate_observer_2, 200000, 400000);
EXPECT_EQ(200000, start_bitrate);
EXPECT_EQ(100000u, bitrate_observer_1.last_bitrate_);
allocator_->AddBitrateObserver(&bitrate_observer_3, 200000, 300000, 400000,
&start_bitrate);
start_bitrate =
allocator_->AddBitrateObserver(&bitrate_observer_3, 300000, 400000);
EXPECT_EQ(300000, start_bitrate);
EXPECT_EQ(100000, static_cast<int>(bitrate_observer_1.last_bitrate_));
EXPECT_EQ(200000, static_cast<int>(bitrate_observer_2.last_bitrate_));