OLD | NEW |
1 /* | 1 /* |
2 * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved. | 2 * Copyright (c) 2016 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 101 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
112 IncomingFeedback(now_ms, send_time_ms, seq_num++, 1000, 1); | 112 IncomingFeedback(now_ms, send_time_ms, seq_num++, 1000, 1); |
113 } | 113 } |
114 | 114 |
115 EXPECT_TRUE(bitrate_observer_.updated()); | 115 EXPECT_TRUE(bitrate_observer_.updated()); |
116 EXPECT_NEAR(bitrate_observer_.latest_bitrate(), 4000000u, 10000u); | 116 EXPECT_NEAR(bitrate_observer_.latest_bitrate(), 4000000u, 10000u); |
117 } | 117 } |
118 | 118 |
119 TEST_F(DelayBasedBweTest, GetProbingInterval) { | 119 TEST_F(DelayBasedBweTest, GetProbingInterval) { |
120 int64_t default_interval_ms = bitrate_estimator_->GetProbingIntervalMs(); | 120 int64_t default_interval_ms = bitrate_estimator_->GetProbingIntervalMs(); |
121 EXPECT_GT(default_interval_ms, 0); | 121 EXPECT_GT(default_interval_ms, 0); |
122 CapacityDropTestHelper(1, true, 567, 0); | 122 CapacityDropTestHelper(1, true, 633, 0); |
123 int64_t interval_ms = bitrate_estimator_->GetProbingIntervalMs(); | 123 int64_t interval_ms = bitrate_estimator_->GetProbingIntervalMs(); |
124 EXPECT_GT(interval_ms, 0); | 124 EXPECT_GT(interval_ms, 0); |
125 EXPECT_NE(interval_ms, default_interval_ms); | 125 EXPECT_NE(interval_ms, default_interval_ms); |
126 } | 126 } |
127 | 127 |
128 TEST_F(DelayBasedBweTest, InitialBehavior) { | 128 TEST_F(DelayBasedBweTest, InitialBehavior) { |
129 InitialBehaviorTestHelper(674840); | 129 InitialBehaviorTestHelper(730000); |
130 } | 130 } |
131 | 131 |
132 TEST_F(DelayBasedBweTest, RateIncreaseReordering) { | 132 TEST_F(DelayBasedBweTest, RateIncreaseReordering) { |
133 RateIncreaseReorderingTestHelper(674840); | 133 RateIncreaseReorderingTestHelper(730000); |
134 } | 134 } |
135 | 135 |
136 TEST_F(DelayBasedBweTest, RateIncreaseRtpTimestamps) { | 136 TEST_F(DelayBasedBweTest, RateIncreaseRtpTimestamps) { |
137 RateIncreaseRtpTimestampsTestHelper(1240); | 137 RateIncreaseRtpTimestampsTestHelper(612); |
138 } | 138 } |
139 | 139 |
140 TEST_F(DelayBasedBweTest, CapacityDropOneStream) { | 140 TEST_F(DelayBasedBweTest, CapacityDropOneStream) { |
141 CapacityDropTestHelper(1, false, 567, 0); | 141 CapacityDropTestHelper(1, false, 633, 0); |
142 } | 142 } |
143 | 143 |
144 TEST_F(DelayBasedBweTest, CapacityDropPosOffsetChange) { | 144 TEST_F(DelayBasedBweTest, CapacityDropPosOffsetChange) { |
145 CapacityDropTestHelper(1, false, 200, 30000); | 145 CapacityDropTestHelper(1, false, 200, 30000); |
146 } | 146 } |
147 | 147 |
148 TEST_F(DelayBasedBweTest, CapacityDropNegOffsetChange) { | 148 TEST_F(DelayBasedBweTest, CapacityDropNegOffsetChange) { |
149 CapacityDropTestHelper(1, false, 733, -30000); | 149 CapacityDropTestHelper(1, false, 367, -30000); |
150 } | 150 } |
151 | 151 |
152 TEST_F(DelayBasedBweTest, CapacityDropOneStreamWrap) { | 152 TEST_F(DelayBasedBweTest, CapacityDropOneStreamWrap) { |
153 CapacityDropTestHelper(1, true, 567, 0); | 153 CapacityDropTestHelper(1, true, 633, 0); |
154 } | 154 } |
155 | 155 |
156 TEST_F(DelayBasedBweTest, TestTimestampGrouping) { | 156 TEST_F(DelayBasedBweTest, TestTimestampGrouping) { |
157 TestTimestampGroupingTestHelper(); | 157 TestTimestampGroupingTestHelper(); |
158 } | 158 } |
159 | 159 |
160 TEST_F(DelayBasedBweTest, TestShortTimeoutAndWrap) { | 160 TEST_F(DelayBasedBweTest, TestShortTimeoutAndWrap) { |
161 // Simulate a client leaving and rejoining the call after 35 seconds. This | 161 // Simulate a client leaving and rejoining the call after 35 seconds. This |
162 // will make abs send time wrap, so if streams aren't timed out properly | 162 // will make abs send time wrap, so if streams aren't timed out properly |
163 // the next 30 seconds of packets will be out of order. | 163 // the next 30 seconds of packets will be out of order. |
(...skipping 13 matching lines...) Expand all Loading... |
177 DelayBasedBweExperimentTest() | 177 DelayBasedBweExperimentTest() |
178 : override_field_trials_("WebRTC-ImprovedBitrateEstimate/Enabled/") { | 178 : override_field_trials_("WebRTC-ImprovedBitrateEstimate/Enabled/") { |
179 bitrate_estimator_.reset(new DelayBasedBwe(&clock_)); | 179 bitrate_estimator_.reset(new DelayBasedBwe(&clock_)); |
180 } | 180 } |
181 | 181 |
182 private: | 182 private: |
183 test::ScopedFieldTrials override_field_trials_; | 183 test::ScopedFieldTrials override_field_trials_; |
184 }; | 184 }; |
185 | 185 |
186 TEST_F(DelayBasedBweExperimentTest, RateIncreaseRtpTimestamps) { | 186 TEST_F(DelayBasedBweExperimentTest, RateIncreaseRtpTimestamps) { |
187 RateIncreaseRtpTimestampsTestHelper(1288); | 187 RateIncreaseRtpTimestampsTestHelper(631); |
188 } | 188 } |
189 | 189 |
190 TEST_F(DelayBasedBweExperimentTest, CapacityDropOneStream) { | 190 TEST_F(DelayBasedBweExperimentTest, CapacityDropOneStream) { |
191 CapacityDropTestHelper(1, false, 333, 0); | 191 CapacityDropTestHelper(1, false, 400, 0); |
192 } | 192 } |
193 | 193 |
194 TEST_F(DelayBasedBweExperimentTest, CapacityDropPosOffsetChange) { | 194 TEST_F(DelayBasedBweExperimentTest, CapacityDropPosOffsetChange) { |
195 CapacityDropTestHelper(1, false, 300, 30000); | 195 CapacityDropTestHelper(1, false, 300, 30000); |
196 } | 196 } |
197 | 197 |
198 TEST_F(DelayBasedBweExperimentTest, CapacityDropNegOffsetChange) { | 198 TEST_F(DelayBasedBweExperimentTest, CapacityDropNegOffsetChange) { |
199 CapacityDropTestHelper(1, false, 300, -30000); | 199 CapacityDropTestHelper(1, false, 300, -30000); |
200 } | 200 } |
201 | 201 |
202 TEST_F(DelayBasedBweExperimentTest, CapacityDropOneStreamWrap) { | 202 TEST_F(DelayBasedBweExperimentTest, CapacityDropOneStreamWrap) { |
203 CapacityDropTestHelper(1, true, 333, 0); | 203 CapacityDropTestHelper(1, true, 400, 0); |
204 } | 204 } |
205 | 205 |
206 class DelayBasedBweTrendlineExperimentTest : public DelayBasedBweTest { | 206 class DelayBasedBweTrendlineExperimentTest : public DelayBasedBweTest { |
207 public: | 207 public: |
208 DelayBasedBweTrendlineExperimentTest() | 208 DelayBasedBweTrendlineExperimentTest() |
209 : override_field_trials_("WebRTC-BweTrendlineFilter/Enabled-15,0.9,4/") { | 209 : override_field_trials_("WebRTC-BweTrendlineFilter/Enabled-15,0.9,4/") { |
210 bitrate_estimator_.reset(new DelayBasedBwe(&clock_)); | 210 bitrate_estimator_.reset(new DelayBasedBwe(&clock_)); |
211 } | 211 } |
212 | 212 |
213 private: | 213 private: |
214 test::ScopedFieldTrials override_field_trials_; | 214 test::ScopedFieldTrials override_field_trials_; |
215 }; | 215 }; |
216 | 216 |
217 TEST_F(DelayBasedBweTrendlineExperimentTest, RateIncreaseRtpTimestamps) { | 217 TEST_F(DelayBasedBweTrendlineExperimentTest, RateIncreaseRtpTimestamps) { |
218 RateIncreaseRtpTimestampsTestHelper(1240); | 218 RateIncreaseRtpTimestampsTestHelper(609); |
219 } | 219 } |
220 | 220 |
221 TEST_F(DelayBasedBweTrendlineExperimentTest, CapacityDropOneStream) { | 221 TEST_F(DelayBasedBweTrendlineExperimentTest, CapacityDropOneStream) { |
222 CapacityDropTestHelper(1, false, 600, 0); | 222 CapacityDropTestHelper(1, false, 700, 0); |
223 } | 223 } |
224 | 224 |
225 TEST_F(DelayBasedBweTrendlineExperimentTest, CapacityDropPosOffsetChange) { | 225 TEST_F(DelayBasedBweTrendlineExperimentTest, CapacityDropPosOffsetChange) { |
226 CapacityDropTestHelper(1, false, 600, 30000); | 226 CapacityDropTestHelper(1, false, 700, 30000); |
227 } | 227 } |
228 | 228 |
229 TEST_F(DelayBasedBweTrendlineExperimentTest, CapacityDropNegOffsetChange) { | 229 TEST_F(DelayBasedBweTrendlineExperimentTest, CapacityDropNegOffsetChange) { |
230 CapacityDropTestHelper(1, false, 1267, -30000); | 230 CapacityDropTestHelper(1, false, 767, -30000); |
231 } | 231 } |
232 | 232 |
233 TEST_F(DelayBasedBweTrendlineExperimentTest, CapacityDropOneStreamWrap) { | 233 TEST_F(DelayBasedBweTrendlineExperimentTest, CapacityDropOneStreamWrap) { |
234 CapacityDropTestHelper(1, true, 600, 0); | 234 CapacityDropTestHelper(1, true, 700, 0); |
235 } | 235 } |
236 | 236 |
237 class DelayBasedBweMedianSlopeExperimentTest : public DelayBasedBweTest { | 237 class DelayBasedBweMedianSlopeExperimentTest : public DelayBasedBweTest { |
238 public: | 238 public: |
239 DelayBasedBweMedianSlopeExperimentTest() | 239 DelayBasedBweMedianSlopeExperimentTest() |
240 : override_field_trials_("WebRTC-BweMedianSlopeFilter/Enabled-20,4/") { | 240 : override_field_trials_("WebRTC-BweMedianSlopeFilter/Enabled-20,4/") { |
241 bitrate_estimator_.reset(new DelayBasedBwe(&clock_)); | 241 bitrate_estimator_.reset(new DelayBasedBwe(&clock_)); |
242 } | 242 } |
243 | 243 |
244 private: | 244 private: |
245 test::ScopedFieldTrials override_field_trials_; | 245 test::ScopedFieldTrials override_field_trials_; |
246 }; | 246 }; |
247 | 247 |
248 TEST_F(DelayBasedBweMedianSlopeExperimentTest, RateIncreaseRtpTimestamps) { | 248 TEST_F(DelayBasedBweMedianSlopeExperimentTest, RateIncreaseRtpTimestamps) { |
249 RateIncreaseRtpTimestampsTestHelper(1240); | 249 RateIncreaseRtpTimestampsTestHelper(609); |
250 } | 250 } |
251 | 251 |
252 TEST_F(DelayBasedBweMedianSlopeExperimentTest, CapacityDropOneStream) { | 252 TEST_F(DelayBasedBweMedianSlopeExperimentTest, CapacityDropOneStream) { |
253 CapacityDropTestHelper(1, false, 600, 0); | 253 CapacityDropTestHelper(1, false, 600, 0); |
254 } | 254 } |
255 | 255 |
256 TEST_F(DelayBasedBweMedianSlopeExperimentTest, CapacityDropPosOffsetChange) { | 256 TEST_F(DelayBasedBweMedianSlopeExperimentTest, CapacityDropPosOffsetChange) { |
257 CapacityDropTestHelper(1, false, 600, 30000); | 257 CapacityDropTestHelper(1, false, 700, 30000); |
258 } | 258 } |
259 | 259 |
260 TEST_F(DelayBasedBweMedianSlopeExperimentTest, CapacityDropNegOffsetChange) { | 260 TEST_F(DelayBasedBweMedianSlopeExperimentTest, CapacityDropNegOffsetChange) { |
261 CapacityDropTestHelper(1, false, 1267, -30000); | 261 CapacityDropTestHelper(1, false, 767, -30000); |
262 } | 262 } |
263 | 263 |
264 TEST_F(DelayBasedBweMedianSlopeExperimentTest, CapacityDropOneStreamWrap) { | 264 TEST_F(DelayBasedBweMedianSlopeExperimentTest, CapacityDropOneStreamWrap) { |
265 CapacityDropTestHelper(1, true, 600, 0); | 265 CapacityDropTestHelper(1, true, 600, 0); |
266 } | 266 } |
267 | 267 |
268 } // namespace webrtc | 268 } // namespace webrtc |
OLD | NEW |