Chromium Code Reviews| Index: webrtc/modules/pacing/alr_detector.h |
| diff --git a/webrtc/modules/pacing/alr_detector.h b/webrtc/modules/pacing/alr_detector.h |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..acbd36b656c23338e029f85d97b0aee6fef2c254 |
| --- /dev/null |
| +++ b/webrtc/modules/pacing/alr_detector.h |
| @@ -0,0 +1,50 @@ |
| +/* |
| + * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved. |
| + * |
| + * Use of this source code is governed by a BSD-style license |
| + * that can be found in the LICENSE file in the root of the source |
| + * tree. An additional intellectual property rights grant can be found |
| + * in the file PATENTS. All contributing project authors may |
| + * be found in the AUTHORS file in the root of the source tree. |
| + */ |
| + |
| +#ifndef WEBRTC_MODULES_PACING_ALR_DETECTOR_H_ |
| +#define WEBRTC_MODULES_PACING_ALR_DETECTOR_H_ |
| + |
| +#include "webrtc/common_types.h" |
| +#include "webrtc/typedefs.h" |
| + |
| +namespace webrtc { |
| + |
| +// Application limited region detector is a class that utilizes signals of |
| +// elapsed time and bytes sent to estimate whether network traffic is |
| +// currently limited by the application's ability to generate traffic. |
| +// |
| +// AlrDetector provides a signal that can be utilized to adjust |
| +// estimate bandwidth. |
| +// Note: This class is not thread-safe. |
| +class AlrDetector { |
| + public: |
| + AlrDetector(); |
| + ~AlrDetector(); |
| + // Reports time delta elapsed since the last call |ReportElapsedTime|. |
| + void ReportElapsedTime(int64_t delta_time_ms); |
| + // Reports bytes sent out since the last call |ReportBytesSent|. |
| + void ReportBytesSent(size_t bytes); |
|
philipel
2016/09/15 15:00:20
Internally we try to keep everything in bits. I kn
Irfan
2016/09/19 06:51:13
I think we should keep that change outside this si
|
| + // Set current estimated bandwidth. |
| + void SetEstimatedBitrate(int bitrate_bps); |
| + // Returns true if currently in application-limited region. |
| + bool InApplicationLimitedRegion(); |
| + |
| + private: |
| + int total_bytes_sent_; |
| + int64_t total_elapsed_time_ms_; |
| + int estimated_bitrate_bps_; |
| + // Number of consecutive periods over which we observe traffic is application |
| + // limited. |
| + int application_limited_count_; |
| +}; |
| + |
| +} // namespace webrtc |
| + |
| +#endif // WEBRTC_MODULES_PACING_ALR_DETECTOR_H_ |