Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(11)

Side by Side Diff: webrtc/modules/congestion_controller/include/send_side_congestion_controller.h

Issue 2917873002: Refactored incoming bitrate estimator. (Closed)
Patch Set: Respond to comments Created 3 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. 2 * Copyright (c) 2012 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 16 matching lines...) Expand all
27 #include "webrtc/modules/pacing/packet_router.h" 27 #include "webrtc/modules/pacing/packet_router.h"
28 28
29 namespace rtc { 29 namespace rtc {
30 struct SentPacket; 30 struct SentPacket;
31 } 31 }
32 32
33 namespace webrtc { 33 namespace webrtc {
34 34
35 class BitrateController; 35 class BitrateController;
36 class Clock; 36 class Clock;
37 class AcknowledgedBitrateEstimator;
37 class ProbeController; 38 class ProbeController;
38 class RateLimiter; 39 class RateLimiter;
39 class RtcEventLog; 40 class RtcEventLog;
40 41
41 class SendSideCongestionController : public CallStatsObserver, 42 class SendSideCongestionController : public CallStatsObserver,
42 public Module, 43 public Module,
43 public TransportFeedbackObserver { 44 public TransportFeedbackObserver {
44 public: 45 public:
45 // Observer class for bitrate changes announced due to change in bandwidth 46 // Observer class for bitrate changes announced due to change in bandwidth
46 // estimate or due to that the send pacer is full. Fraction loss and rtt is 47 // estimate or due to that the send pacer is full. Fraction loss and rtt is
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after
134 bool IsNetworkDown() const; 135 bool IsNetworkDown() const;
135 bool HasNetworkParametersToReportChanged(uint32_t bitrate_bps, 136 bool HasNetworkParametersToReportChanged(uint32_t bitrate_bps,
136 uint8_t fraction_loss, 137 uint8_t fraction_loss,
137 int64_t rtt); 138 int64_t rtt);
138 const Clock* const clock_; 139 const Clock* const clock_;
139 rtc::CriticalSection observer_lock_; 140 rtc::CriticalSection observer_lock_;
140 Observer* observer_ GUARDED_BY(observer_lock_); 141 Observer* observer_ GUARDED_BY(observer_lock_);
141 RtcEventLog* const event_log_; 142 RtcEventLog* const event_log_;
142 const std::unique_ptr<PacedSender> pacer_; 143 const std::unique_ptr<PacedSender> pacer_;
143 const std::unique_ptr<BitrateController> bitrate_controller_; 144 const std::unique_ptr<BitrateController> bitrate_controller_;
145 std::unique_ptr<AcknowledgedBitrateEstimator> acknowledged_bitrate_estimator_;
144 const std::unique_ptr<ProbeController> probe_controller_; 146 const std::unique_ptr<ProbeController> probe_controller_;
145 const std::unique_ptr<RateLimiter> retransmission_rate_limiter_; 147 const std::unique_ptr<RateLimiter> retransmission_rate_limiter_;
146 TransportFeedbackAdapter transport_feedback_adapter_; 148 TransportFeedbackAdapter transport_feedback_adapter_;
147 rtc::CriticalSection network_state_lock_; 149 rtc::CriticalSection network_state_lock_;
148 uint32_t last_reported_bitrate_bps_ GUARDED_BY(network_state_lock_); 150 uint32_t last_reported_bitrate_bps_ GUARDED_BY(network_state_lock_);
149 uint8_t last_reported_fraction_loss_ GUARDED_BY(network_state_lock_); 151 uint8_t last_reported_fraction_loss_ GUARDED_BY(network_state_lock_);
150 int64_t last_reported_rtt_ GUARDED_BY(network_state_lock_); 152 int64_t last_reported_rtt_ GUARDED_BY(network_state_lock_);
151 NetworkState network_state_ GUARDED_BY(network_state_lock_); 153 NetworkState network_state_ GUARDED_BY(network_state_lock_);
152 rtc::CriticalSection bwe_lock_; 154 rtc::CriticalSection bwe_lock_;
153 int min_bitrate_bps_ GUARDED_BY(bwe_lock_); 155 int min_bitrate_bps_ GUARDED_BY(bwe_lock_);
154 std::unique_ptr<DelayBasedBwe> delay_based_bwe_ GUARDED_BY(bwe_lock_); 156 std::unique_ptr<DelayBasedBwe> delay_based_bwe_ GUARDED_BY(bwe_lock_);
155 157
156 rtc::ThreadChecker worker_thread_checker_; 158 rtc::ThreadChecker worker_thread_checker_;
157 159
158 RTC_DISALLOW_IMPLICIT_CONSTRUCTORS(SendSideCongestionController); 160 RTC_DISALLOW_IMPLICIT_CONSTRUCTORS(SendSideCongestionController);
159 }; 161 };
160 162
161 } // namespace webrtc 163 } // namespace webrtc
162 164
163 #endif // WEBRTC_MODULES_CONGESTION_CONTROLLER_INCLUDE_SEND_SIDE_CONGESTION_CON TROLLER_H_ 165 #endif // WEBRTC_MODULES_CONGESTION_CONTROLLER_INCLUDE_SEND_SIDE_CONGESTION_CON TROLLER_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698