| Index: webrtc/modules/video_coding/utility/simulcast_rate_allocator_unittest.cc
|
| diff --git a/webrtc/modules/video_coding/utility/simulcast_rate_allocator_unittest.cc b/webrtc/modules/video_coding/utility/simulcast_rate_allocator_unittest.cc
|
| index ef95cb113f4d2415e48dfa08a776274cd77a0830..57fd5d22bdfb235b0524228cb6e1a9e03c42a815 100644
|
| --- a/webrtc/modules/video_coding/utility/simulcast_rate_allocator_unittest.cc
|
| +++ b/webrtc/modules/video_coding/utility/simulcast_rate_allocator_unittest.cc
|
| @@ -12,7 +12,6 @@
|
|
|
| #include <limits>
|
| #include <memory>
|
| -#include <vector>
|
|
|
| #include "webrtc/test/gtest.h"
|
|
|
| @@ -42,59 +41,43 @@
|
| EXPECT_EQ(expected[i], actual[i]) << "Mismatch at index " << i;
|
| }
|
|
|
| - template <size_t S>
|
| - void ExpectEqual(uint32_t (&expected)[S], const BitrateAllocation& actual) {
|
| - // EXPECT_EQ(S, actual.size());
|
| - uint32_t sum = 0;
|
| - for (size_t i = 0; i < S; ++i) {
|
| - uint32_t layer_bitrate = actual.GetSpatialLayerSum(i);
|
| - EXPECT_EQ(expected[i] * 1000, layer_bitrate) << "Mismatch at index " << i;
|
| - sum += layer_bitrate;
|
| - }
|
| - EXPECT_EQ(sum, actual.get_sum_bps());
|
| - }
|
| -
|
| void CreateAllocator() {
|
| - allocator_.reset(new SimulcastRateAllocator(codec_, nullptr));
|
| - }
|
| -
|
| - BitrateAllocation GetAllocation(uint32_t target_bitrate) {
|
| - return allocator_->GetAllocation(target_bitrate * 1000, kDefaultFrameRate);
|
| + allocator_.reset(new SimulcastRateAllocator(codec_));
|
| }
|
|
|
| protected:
|
| - static const int kDefaultFrameRate = 30;
|
| VideoCodec codec_;
|
| std::unique_ptr<SimulcastRateAllocator> allocator_;
|
| };
|
|
|
| TEST_F(SimulcastRateAllocatorTest, NoSimulcastBelowMin) {
|
| uint32_t expected[] = {codec_.minBitrate};
|
| - ExpectEqual(expected, GetAllocation(codec_.minBitrate - 1));
|
| - ExpectEqual(expected, GetAllocation(1));
|
| - ExpectEqual(expected, GetAllocation(0));
|
| + ExpectEqual(expected, allocator_->GetAllocation(codec_.minBitrate - 1));
|
| + ExpectEqual(expected, allocator_->GetAllocation(1));
|
| + ExpectEqual(expected, allocator_->GetAllocation(0));
|
| }
|
|
|
| TEST_F(SimulcastRateAllocatorTest, NoSimulcastAboveMax) {
|
| uint32_t expected[] = {codec_.maxBitrate};
|
| - ExpectEqual(expected, GetAllocation(codec_.maxBitrate + 1));
|
| - ExpectEqual(expected, GetAllocation(std::numeric_limits<uint32_t>::max()));
|
| + ExpectEqual(expected, allocator_->GetAllocation(codec_.maxBitrate + 1));
|
| + ExpectEqual(expected,
|
| + allocator_->GetAllocation(std::numeric_limits<uint32_t>::max()));
|
| }
|
|
|
| TEST_F(SimulcastRateAllocatorTest, NoSimulcastNoMax) {
|
| - const uint32_t kMax = BitrateAllocation::kMaxBitrateBps / 1000;
|
| + constexpr uint32_t kMax = std::numeric_limits<uint32_t>::max();
|
| codec_.maxBitrate = 0;
|
| CreateAllocator();
|
|
|
| uint32_t expected[] = {kMax};
|
| - ExpectEqual(expected, GetAllocation(kMax));
|
| + ExpectEqual(expected, allocator_->GetAllocation(kMax));
|
| }
|
|
|
| TEST_F(SimulcastRateAllocatorTest, NoSimulcastWithinLimits) {
|
| for (uint32_t bitrate = codec_.minBitrate; bitrate <= codec_.maxBitrate;
|
| ++bitrate) {
|
| uint32_t expected[] = {bitrate};
|
| - ExpectEqual(expected, GetAllocation(bitrate));
|
| + ExpectEqual(expected, allocator_->GetAllocation(bitrate));
|
| }
|
| }
|
|
|
| @@ -107,9 +90,9 @@
|
| CreateAllocator();
|
|
|
| uint32_t expected[] = {kMin};
|
| - ExpectEqual(expected, GetAllocation(kMin - 1));
|
| - ExpectEqual(expected, GetAllocation(1));
|
| - ExpectEqual(expected, GetAllocation(0));
|
| + ExpectEqual(expected, allocator_->GetAllocation(kMin - 1));
|
| + ExpectEqual(expected, allocator_->GetAllocation(1));
|
| + ExpectEqual(expected, allocator_->GetAllocation(0));
|
| }
|
|
|
| TEST_F(SimulcastRateAllocatorTest, SingleSimulcastAboveMax) {
|
| @@ -120,9 +103,9 @@
|
| CreateAllocator();
|
|
|
| uint32_t expected[] = {kMax};
|
| - ExpectEqual(expected, GetAllocation(kMax));
|
| - ExpectEqual(expected, GetAllocation(kMax + 1));
|
| - ExpectEqual(expected, GetAllocation(std::numeric_limits<uint32_t>::max()));
|
| + ExpectEqual(expected, allocator_->GetAllocation(kMax + 1));
|
| + ExpectEqual(expected,
|
| + allocator_->GetAllocation(std::numeric_limits<uint32_t>::max()));
|
| }
|
|
|
| TEST_F(SimulcastRateAllocatorTest, SingleSimulcastWithinLimits) {
|
| @@ -134,7 +117,7 @@
|
|
|
| for (uint32_t bitrate = kMinBitrate; bitrate <= kMaxBitrate; ++bitrate) {
|
| uint32_t expected[] = {bitrate};
|
| - ExpectEqual(expected, GetAllocation(bitrate));
|
| + ExpectEqual(expected, allocator_->GetAllocation(bitrate));
|
| }
|
| }
|
|
|
| @@ -156,14 +139,14 @@
|
| // Single stream, min bitrate.
|
| const uint32_t bitrate = codec_.simulcastStream[0].minBitrate;
|
| uint32_t expected[] = {bitrate, 0, 0};
|
| - ExpectEqual(expected, GetAllocation(bitrate));
|
| + ExpectEqual(expected, allocator_->GetAllocation(bitrate));
|
| }
|
|
|
| {
|
| // Single stream at target bitrate.
|
| const uint32_t bitrate = codec_.simulcastStream[0].targetBitrate;
|
| uint32_t expected[] = {bitrate, 0, 0};
|
| - ExpectEqual(expected, GetAllocation(bitrate));
|
| + ExpectEqual(expected, allocator_->GetAllocation(bitrate));
|
| }
|
|
|
| {
|
| @@ -171,7 +154,7 @@
|
| const uint32_t bitrate = codec_.simulcastStream[0].targetBitrate +
|
| codec_.simulcastStream[1].minBitrate - 1;
|
| uint32_t expected[] = {bitrate, 0, 0};
|
| - ExpectEqual(expected, GetAllocation(bitrate));
|
| + ExpectEqual(expected, allocator_->GetAllocation(bitrate));
|
| }
|
|
|
| {
|
| @@ -180,7 +163,7 @@
|
| codec_.simulcastStream[1].minBitrate;
|
| uint32_t expected[] = {codec_.simulcastStream[0].targetBitrate,
|
| codec_.simulcastStream[1].minBitrate, 0};
|
| - ExpectEqual(expected, GetAllocation(bitrate));
|
| + ExpectEqual(expected, allocator_->GetAllocation(bitrate));
|
| }
|
|
|
| {
|
| @@ -189,7 +172,7 @@
|
| codec_.simulcastStream[1].maxBitrate;
|
| uint32_t expected[] = {codec_.simulcastStream[0].targetBitrate,
|
| codec_.simulcastStream[1].maxBitrate, 0};
|
| - ExpectEqual(expected, GetAllocation(bitrate));
|
| + ExpectEqual(expected, allocator_->GetAllocation(bitrate));
|
| }
|
|
|
| {
|
| @@ -199,7 +182,7 @@
|
| codec_.simulcastStream[1].maxBitrate + 499;
|
| uint32_t expected[] = {codec_.simulcastStream[0].targetBitrate,
|
| codec_.simulcastStream[1].maxBitrate, 0};
|
| - ExpectEqual(expected, GetAllocation(bitrate));
|
| + ExpectEqual(expected, allocator_->GetAllocation(bitrate));
|
| }
|
|
|
| {
|
| @@ -210,7 +193,7 @@
|
| uint32_t expected[] = {codec_.simulcastStream[0].targetBitrate,
|
| codec_.simulcastStream[1].targetBitrate,
|
| codec_.simulcastStream[2].minBitrate};
|
| - ExpectEqual(expected, GetAllocation(bitrate));
|
| + ExpectEqual(expected, allocator_->GetAllocation(bitrate));
|
| }
|
|
|
| {
|
| @@ -221,13 +204,12 @@
|
| uint32_t expected[] = {codec_.simulcastStream[0].targetBitrate,
|
| codec_.simulcastStream[1].targetBitrate,
|
| codec_.simulcastStream[2].maxBitrate};
|
| - ExpectEqual(expected, GetAllocation(bitrate));
|
| - }
|
| -}
|
| -
|
| -TEST_F(SimulcastRateAllocatorTest, GetPreferredBitrateBps) {
|
| - EXPECT_EQ(codec_.maxBitrate * 1000,
|
| - allocator_->GetPreferredBitrateBps(codec_.maxFramerate));
|
| + ExpectEqual(expected, allocator_->GetAllocation(bitrate));
|
| + }
|
| +}
|
| +
|
| +TEST_F(SimulcastRateAllocatorTest, GetPreferredBitrate) {
|
| + EXPECT_EQ(codec_.maxBitrate, allocator_->GetPreferedBitrate());
|
| }
|
|
|
| TEST_F(SimulcastRateAllocatorTest, GetPreferredBitrateSimulcast) {
|
| @@ -246,13 +228,12 @@
|
| codec_.simulcastStream[2].maxBitrate = 4000;
|
| CreateAllocator();
|
|
|
| - uint32_t preferred_bitrate_kbps;
|
| - preferred_bitrate_kbps = codec_.simulcastStream[0].targetBitrate;
|
| - preferred_bitrate_kbps += codec_.simulcastStream[1].targetBitrate;
|
| - preferred_bitrate_kbps += codec_.simulcastStream[2].maxBitrate;
|
| -
|
| - EXPECT_EQ(preferred_bitrate_kbps * 1000,
|
| - allocator_->GetPreferredBitrateBps(codec_.maxFramerate));
|
| + uint32_t preferred_bitrate;
|
| + preferred_bitrate = codec_.simulcastStream[0].targetBitrate;
|
| + preferred_bitrate += codec_.simulcastStream[1].targetBitrate;
|
| + preferred_bitrate += codec_.simulcastStream[2].maxBitrate;
|
| +
|
| + EXPECT_EQ(preferred_bitrate, allocator_->GetPreferedBitrate());
|
| }
|
|
|
| } // namespace webrtc
|
|
|