OLD | NEW |
1 /* | 1 /* |
2 * Copyright (c) 2017 The WebRTC project authors. All Rights Reserved. | 2 * Copyright (c) 2017 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 */ |
11 | 11 |
12 #ifndef WEBRTC_MODULES_REMOTE_BITRATE_ESTIMATOR_TEST_ESTIMATORS_MAX_BANDWIDTH_FI
LTER_H_ | 12 #ifndef WEBRTC_MODULES_REMOTE_BITRATE_ESTIMATOR_TEST_ESTIMATORS_MAX_BANDWIDTH_FI
LTER_H_ |
13 #define WEBRTC_MODULES_REMOTE_BITRATE_ESTIMATOR_TEST_ESTIMATORS_MAX_BANDWIDTH_FI
LTER_H_ | 13 #define WEBRTC_MODULES_REMOTE_BITRATE_ESTIMATOR_TEST_ESTIMATORS_MAX_BANDWIDTH_FI
LTER_H_ |
14 | 14 |
15 #include <climits> | 15 #include <cstdint> |
16 #include <list> | |
17 #include <map> | |
18 #include <memory> | |
19 #include <utility> | |
20 #include <vector> | |
21 | |
22 #include "webrtc/logging/rtc_event_log/mock/mock_rtc_event_log.h" | |
23 #include "webrtc/modules/remote_bitrate_estimator/include/send_time_history.h" | |
24 #include "webrtc/modules/remote_bitrate_estimator/test/bwe.h" | |
25 | 16 |
26 namespace webrtc { | 17 namespace webrtc { |
27 namespace testing { | 18 namespace testing { |
28 namespace bwe { | 19 namespace bwe { |
29 class MaxBandwidthFilter { | 20 class MaxBandwidthFilter { |
30 public: | 21 public: |
31 MaxBandwidthFilter(); | 22 MaxBandwidthFilter(); |
| 23 |
32 ~MaxBandwidthFilter(); | 24 ~MaxBandwidthFilter(); |
33 int64_t max_bandwidth_estimate(); | 25 int64_t max_bandwidth_estimate() { return max_bandwidth_estimate_; } |
34 | 26 |
35 // Save bandwidth sample for the current round. | 27 // Save bandwidth sample for the current round. |
36 // We save bandwidth samples for past 10 rounds to | 28 // We save bandwidth samples for past 10 rounds to |
37 // provide better bandwidth estimate. | 29 // provide better bandwidth estimate. |
38 | 30 |
39 void AddBandwidthSample(int64_t round); | 31 void AddBandwidthSample(int64_t sample, int64_t round); |
40 | 32 |
41 // Check if bandwidth has grown by certain multiplier for past x rounds, | 33 // Check if bandwidth has grown by certain multiplier for past x rounds, |
42 // to decide whether or not delivery rate plateaued. | 34 // to decide whether or not full bandwidth was reached. |
43 bool DeliveryRateGrows(); | 35 bool FullBandwidthReached(float growth_target, int max_rounds_without_growth); |
| 36 |
| 37 private: |
| 38 int64_t bandwidth_last_round_; |
| 39 int64_t max_bandwidth_estimate_; |
| 40 int64_t rounds_without_growth_; |
44 }; | 41 }; |
45 } // namespace bwe | 42 } // namespace bwe |
46 } // namespace testing | 43 } // namespace testing |
47 } // namespace webrtc | 44 } // namespace webrtc |
48 | 45 |
49 #endif // WEBRTC_MODULES_REMOTE_BITRATE_ESTIMATOR_TEST_ESTIMATORS_MAX_BANDWIDTH
_FILTER_H_ | 46 #endif // WEBRTC_MODULES_REMOTE_BITRATE_ESTIMATOR_TEST_ESTIMATORS_MAX_BANDWIDTH
_FILTER_H_ |
OLD | NEW |