OLD | NEW |
---|---|
1 /* | 1 /* |
2 * Copyright (c) 2014 The WebRTC project authors. All Rights Reserved. | 2 * Copyright (c) 2014 The WebRTC project authors. All Rights Reserved. |
3 * | 3 * |
4 * Use of this source code is governed by a BSD-style license | 4 * Use of this source code is governed by a BSD-style license |
5 * that can be found in the LICENSE file in the root of the source | 5 * that can be found in the LICENSE file in the root of the source |
6 * tree. An additional intellectual property rights grant can be found | 6 * tree. An additional intellectual property rights grant can be found |
7 * in the file PATENTS. All contributing project authors may | 7 * in the file PATENTS. All contributing project authors may |
8 * be found in the AUTHORS file in the root of the source tree. | 8 * be found in the AUTHORS file in the root of the source tree. |
9 */ | 9 */ |
10 | 10 |
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
124 | 124 |
125 TEST_F(QualityScalerTest, DownscalesAboveHighQp) { | 125 TEST_F(QualityScalerTest, DownscalesAboveHighQp) { |
126 DO_SYNC(q_, { TriggerScale(kScaleDownAboveHighQp); }); | 126 DO_SYNC(q_, { TriggerScale(kScaleDownAboveHighQp); }); |
127 EXPECT_TRUE(observer_->event.Wait(kDefaultTimeoutMs)); | 127 EXPECT_TRUE(observer_->event.Wait(kDefaultTimeoutMs)); |
128 EXPECT_EQ(1, observer_->adapt_down_events_); | 128 EXPECT_EQ(1, observer_->adapt_down_events_); |
129 EXPECT_EQ(0, observer_->adapt_up_events_); | 129 EXPECT_EQ(0, observer_->adapt_up_events_); |
130 } | 130 } |
131 | 131 |
132 TEST_F(QualityScalerTest, DownscalesAfterTwoThirdsFramedrop) { | 132 TEST_F(QualityScalerTest, DownscalesAfterTwoThirdsFramedrop) { |
133 DO_SYNC(q_, { | 133 DO_SYNC(q_, { |
134 qs_->ReportDroppedFrame(); | 134 for (int i = 0; i < kFramerate * 5; ++i) { |
135 qs_->ReportDroppedFrame(); | 135 qs_->ReportDroppedFrame(); |
136 qs_->ReportQP(kHighQp); | 136 qs_->ReportDroppedFrame(); |
137 qs_->ReportQP(kHighQp); | |
138 } | |
137 }); | 139 }); |
138 EXPECT_TRUE(observer_->event.Wait(kDefaultTimeoutMs)); | 140 EXPECT_TRUE(observer_->event.Wait(kDefaultTimeoutMs)); |
139 EXPECT_EQ(1, observer_->adapt_down_events_); | 141 EXPECT_EQ(1, observer_->adapt_down_events_); |
140 EXPECT_EQ(0, observer_->adapt_up_events_); | 142 EXPECT_EQ(0, observer_->adapt_up_events_); |
141 } | 143 } |
142 | 144 |
143 TEST_F(QualityScalerTest, DoesNotDownscaleOnNormalQp) { | 145 TEST_F(QualityScalerTest, DoesNotDownscaleOnNormalQp) { |
144 DO_SYNC(q_, { TriggerScale(kScaleDownAboveHighQp); }); | 146 DO_SYNC(q_, { TriggerScale(kScaleDownAboveHighQp); }); |
145 EXPECT_TRUE(observer_->event.Wait(kDefaultTimeoutMs)); | 147 EXPECT_TRUE(observer_->event.Wait(kDefaultTimeoutMs)); |
146 EXPECT_EQ(1, observer_->adapt_down_events_); | 148 EXPECT_EQ(1, observer_->adapt_down_events_); |
147 EXPECT_EQ(0, observer_->adapt_up_events_); | 149 EXPECT_EQ(0, observer_->adapt_up_events_); |
148 } | 150 } |
149 | 151 |
magjed_webrtc
2017/03/30 11:15:02
Can you add a test targeting the specific issue, i
kthelgason
2017/03/31 08:12:58
Good point, done.
| |
150 TEST_F(QualityScalerTest, DoesNotDownscaleAfterHalfFramedrop) { | 152 TEST_F(QualityScalerTest, DoesNotDownscaleAfterHalfFramedrop) { |
151 DO_SYNC(q_, { | 153 DO_SYNC(q_, { |
152 qs_->ReportDroppedFrame(); | 154 for (int i = 0; i < kFramerate * 5; ++i) { |
153 qs_->ReportQP(kHighQp); | 155 qs_->ReportDroppedFrame(); |
156 qs_->ReportQP(kHighQp); | |
157 } | |
154 }); | 158 }); |
155 EXPECT_FALSE(observer_->event.Wait(kDefaultTimeoutMs)); | 159 EXPECT_FALSE(observer_->event.Wait(kDefaultTimeoutMs)); |
156 EXPECT_EQ(0, observer_->adapt_down_events_); | 160 EXPECT_EQ(0, observer_->adapt_down_events_); |
157 EXPECT_EQ(0, observer_->adapt_up_events_); | 161 EXPECT_EQ(0, observer_->adapt_up_events_); |
158 } | 162 } |
159 | 163 |
160 TEST_F(QualityScalerTest, UpscalesAfterLowQp) { | 164 TEST_F(QualityScalerTest, UpscalesAfterLowQp) { |
161 DO_SYNC(q_, { TriggerScale(kScaleUp); }); | 165 DO_SYNC(q_, { TriggerScale(kScaleUp); }); |
162 EXPECT_TRUE(observer_->event.Wait(kDefaultTimeoutMs)); | 166 EXPECT_TRUE(observer_->event.Wait(kDefaultTimeoutMs)); |
163 EXPECT_EQ(0, observer_->adapt_down_events_); | 167 EXPECT_EQ(0, observer_->adapt_down_events_); |
164 EXPECT_EQ(1, observer_->adapt_up_events_); | 168 EXPECT_EQ(1, observer_->adapt_up_events_); |
165 } | 169 } |
166 | 170 |
167 TEST_F(QualityScalerTest, ScalesDownAndBackUp) { | 171 TEST_F(QualityScalerTest, ScalesDownAndBackUp) { |
168 DO_SYNC(q_, { TriggerScale(kScaleDown); }); | 172 DO_SYNC(q_, { TriggerScale(kScaleDown); }); |
169 EXPECT_TRUE(observer_->event.Wait(kDefaultTimeoutMs)); | 173 EXPECT_TRUE(observer_->event.Wait(kDefaultTimeoutMs)); |
170 EXPECT_EQ(1, observer_->adapt_down_events_); | 174 EXPECT_EQ(1, observer_->adapt_down_events_); |
171 EXPECT_EQ(0, observer_->adapt_up_events_); | 175 EXPECT_EQ(0, observer_->adapt_up_events_); |
172 DO_SYNC(q_, { TriggerScale(kScaleUp); }); | 176 DO_SYNC(q_, { TriggerScale(kScaleUp); }); |
173 EXPECT_TRUE(observer_->event.Wait(kDefaultTimeoutMs)); | 177 EXPECT_TRUE(observer_->event.Wait(kDefaultTimeoutMs)); |
174 EXPECT_EQ(1, observer_->adapt_down_events_); | 178 EXPECT_EQ(1, observer_->adapt_down_events_); |
175 EXPECT_EQ(1, observer_->adapt_up_events_); | 179 EXPECT_EQ(1, observer_->adapt_up_events_); |
176 } | 180 } |
177 } // namespace webrtc | 181 } // namespace webrtc |
178 #undef DO_SYNC | 182 #undef DO_SYNC |
OLD | NEW |