| Index: webrtc/modules/video_coding/utility/quality_scaler_unittest.cc
|
| diff --git a/webrtc/modules/video_coding/utility/quality_scaler_unittest.cc b/webrtc/modules/video_coding/utility/quality_scaler_unittest.cc
|
| index 32d0aa9aea85f3a1cea0f30d3f1b8db079fb01d4..93b5fcd43137b678df0c2f723e4753b0681bab15 100644
|
| --- a/webrtc/modules/video_coding/utility/quality_scaler_unittest.cc
|
| +++ b/webrtc/modules/video_coding/utility/quality_scaler_unittest.cc
|
| @@ -131,9 +131,11 @@ TEST_F(QualityScalerTest, DownscalesAboveHighQp) {
|
|
|
| TEST_F(QualityScalerTest, DownscalesAfterTwoThirdsFramedrop) {
|
| DO_SYNC(q_, {
|
| - qs_->ReportDroppedFrame();
|
| - qs_->ReportDroppedFrame();
|
| - qs_->ReportQP(kHighQp);
|
| + for (int i = 0; i < kFramerate * 5; ++i) {
|
| + qs_->ReportDroppedFrame();
|
| + qs_->ReportDroppedFrame();
|
| + qs_->ReportQP(kHighQp);
|
| + }
|
| });
|
| EXPECT_TRUE(observer_->event.Wait(kDefaultTimeoutMs));
|
| EXPECT_EQ(1, observer_->adapt_down_events_);
|
| @@ -149,8 +151,10 @@ TEST_F(QualityScalerTest, DoesNotDownscaleOnNormalQp) {
|
|
|
| TEST_F(QualityScalerTest, DoesNotDownscaleAfterHalfFramedrop) {
|
| DO_SYNC(q_, {
|
| - qs_->ReportDroppedFrame();
|
| - qs_->ReportQP(kHighQp);
|
| + for (int i = 0; i < kFramerate * 5; ++i) {
|
| + qs_->ReportDroppedFrame();
|
| + qs_->ReportQP(kHighQp);
|
| + }
|
| });
|
| EXPECT_FALSE(observer_->event.Wait(kDefaultTimeoutMs));
|
| EXPECT_EQ(0, observer_->adapt_down_events_);
|
| @@ -174,5 +178,25 @@ TEST_F(QualityScalerTest, ScalesDownAndBackUp) {
|
| EXPECT_EQ(1, observer_->adapt_down_events_);
|
| EXPECT_EQ(1, observer_->adapt_up_events_);
|
| }
|
| +
|
| +TEST_F(QualityScalerTest, DoesNotScaleUntilEnoughFramesObserved) {
|
| + DO_SYNC(q_, {
|
| + // Send 30 frames. This should not be enough to make a decision.
|
| + for (int i = 0; i < kFramerate; ++i) {
|
| + qs_->ReportQP(kLowQp);
|
| + }
|
| + });
|
| + EXPECT_FALSE(observer_->event.Wait(kDefaultTimeoutMs));
|
| + DO_SYNC(q_, {
|
| + // Send 30 more. This should result in an adapt request as
|
| + // enough frames have now been observed.
|
| + for (int i = 0; i < kFramerate; ++i) {
|
| + qs_->ReportQP(kLowQp);
|
| + }
|
| + });
|
| + EXPECT_TRUE(observer_->event.Wait(kDefaultTimeoutMs));
|
| + EXPECT_EQ(0, observer_->adapt_down_events_);
|
| + EXPECT_EQ(1, observer_->adapt_up_events_);
|
| +}
|
| } // namespace webrtc
|
| #undef DO_SYNC
|
|
|