Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2671)

Unified Diff: webrtc/modules/video_coding/codecs/vp8/screenshare_layers_unittest.cc

Issue 2510583002: Reland #2 of Issue 2434073003: Extract bitrate allocation ... (Closed)
Patch Set: Addressed comments Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: webrtc/modules/video_coding/codecs/vp8/screenshare_layers_unittest.cc
diff --git a/webrtc/modules/video_coding/codecs/vp8/screenshare_layers_unittest.cc b/webrtc/modules/video_coding/codecs/vp8/screenshare_layers_unittest.cc
index e6316d6af91084f9cf92fb26dde7289fd37e1eb5..9e8c1c36ffe1952860146e86601df789ded8cbed 100644
--- a/webrtc/modules/video_coding/codecs/vp8/screenshare_layers_unittest.cc
+++ b/webrtc/modules/video_coding/codecs/vp8/screenshare_layers_unittest.cc
@@ -22,6 +22,7 @@
#include "webrtc/test/gtest.h"
using ::testing::_;
+using ::testing::ElementsAre;
using ::testing::NiceMock;
using ::testing::Return;
@@ -61,8 +62,11 @@ class ScreenshareLayerTest : public ::testing::Test {
memset(&vpx_cfg, 0, sizeof(vpx_codec_enc_cfg_t));
vpx_cfg.rc_min_quantizer = min_qp_;
vpx_cfg.rc_max_quantizer = max_qp_;
- EXPECT_TRUE(layers_->ConfigureBitrates(
- kDefaultTl0BitrateKbps, kDefaultTl1BitrateKbps, kFrameRate, &vpx_cfg));
+ EXPECT_THAT(layers_->OnRatesUpdated(kDefaultTl0BitrateKbps,
+ kDefaultTl1BitrateKbps, kFrameRate),
+ ElementsAre(kDefaultTl0BitrateKbps,
+ kDefaultTl1BitrateKbps - kDefaultTl0BitrateKbps));
+ EXPECT_TRUE(layers_->UpdateConfiguration(&vpx_cfg));
frame_size_ = ((vpx_cfg.rc_target_bitrate * 1000) / 8) / kFrameRate;
}
@@ -373,27 +377,41 @@ TEST_F(ScreenshareLayerTest, TooHighBitrate) {
TEST_F(ScreenshareLayerTest, TargetBitrateCappedByTL0) {
vpx_codec_enc_cfg_t cfg = GetConfig();
- layers_->ConfigureBitrates(100, 1000, 5, &cfg);
+ const int kTl0_kbps = 100;
+ const int kTl1_kbps = 1000;
+ layers_->OnRatesUpdated(kTl0_kbps, kTl1_kbps, 5);
+
+ EXPECT_THAT(layers_->OnRatesUpdated(kTl0_kbps, kTl1_kbps, 5),
+ ElementsAre(kTl0_kbps, kTl1_kbps - kTl0_kbps));
+ EXPECT_TRUE(layers_->UpdateConfiguration(&cfg));
EXPECT_EQ(static_cast<unsigned int>(
- ScreenshareLayers::kMaxTL0FpsReduction * 100 + 0.5),
+ ScreenshareLayers::kMaxTL0FpsReduction * kTl0_kbps + 0.5),
cfg.rc_target_bitrate);
}
TEST_F(ScreenshareLayerTest, TargetBitrateCappedByTL1) {
vpx_codec_enc_cfg_t cfg = GetConfig();
- layers_->ConfigureBitrates(100, 450, 5, &cfg);
+ const int kTl0_kbps = 100;
+ const int kTl1_kbps = 450;
+ EXPECT_THAT(layers_->OnRatesUpdated(kTl0_kbps, kTl1_kbps, 5),
+ ElementsAre(kTl0_kbps, kTl1_kbps - kTl0_kbps));
+ EXPECT_TRUE(layers_->UpdateConfiguration(&cfg));
EXPECT_EQ(static_cast<unsigned int>(
- 450 / ScreenshareLayers::kAcceptableTargetOvershoot),
+ kTl1_kbps / ScreenshareLayers::kAcceptableTargetOvershoot),
cfg.rc_target_bitrate);
}
TEST_F(ScreenshareLayerTest, TargetBitrateBelowTL0) {
vpx_codec_enc_cfg_t cfg = GetConfig();
- layers_->ConfigureBitrates(100, 100, 5, &cfg);
+ const int kTl0_kbps = 100;
+ const int kTl1_kbps = 100;
+ EXPECT_THAT(layers_->OnRatesUpdated(kTl0_kbps, kTl1_kbps, 5),
+ ElementsAre(kTl0_kbps));
+ EXPECT_TRUE(layers_->UpdateConfiguration(&cfg));
- EXPECT_EQ(100U, cfg.rc_target_bitrate);
+ EXPECT_EQ(static_cast<uint32_t>(kTl1_kbps), cfg.rc_target_bitrate);
}
TEST_F(ScreenshareLayerTest, EncoderDrop) {
@@ -453,7 +471,8 @@ TEST_F(ScreenshareLayerTest, RespectsMaxIntervalBetweenFrames) {
const uint32_t kStartTimestamp = 1234;
vpx_codec_enc_cfg_t cfg = GetConfig();
- layers_->ConfigureBitrates(kLowBitrateKbps, kLowBitrateKbps, 5, &cfg);
+ layers_->OnRatesUpdated(kLowBitrateKbps, kLowBitrateKbps, 5);
+ layers_->UpdateConfiguration(&cfg);
EXPECT_EQ(ScreenshareLayers::kTl0Flags,
layers_->EncodeFlags(kStartTimestamp));
@@ -551,4 +570,9 @@ TEST_F(ScreenshareLayerTest, UpdatesHistograms) {
kDefaultTl1BitrateKbps));
}
+TEST_F(ScreenshareLayerTest, AllowsUpdateConfigBeforeSetRates) {
+ vpx_codec_enc_cfg_t cfg = GetConfig();
+ EXPECT_FALSE(layers_->UpdateConfiguration(&cfg));
+}
+
} // namespace webrtc

Powered by Google App Engine
This is Rietveld 408576698