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:
@ -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_));
|
||||
|
||||
Reference in New Issue
Block a user