OLD | NEW |
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 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
60 // TODO(nisse): Consider deleting the |observer| argument to constructors | 60 // TODO(nisse): Consider deleting the |observer| argument to constructors |
61 // once CongestionController is deleted. | 61 // once CongestionController is deleted. |
62 SendSideCongestionController(const Clock* clock, | 62 SendSideCongestionController(const Clock* clock, |
63 Observer* observer, | 63 Observer* observer, |
64 RtcEventLog* event_log, | 64 RtcEventLog* event_log, |
65 PacketRouter* packet_router); | 65 PacketRouter* packet_router); |
66 SendSideCongestionController(const Clock* clock, | 66 SendSideCongestionController(const Clock* clock, |
67 Observer* observer, | 67 Observer* observer, |
68 RtcEventLog* event_log, | 68 RtcEventLog* event_log, |
69 std::unique_ptr<PacedSender> pacer); | 69 std::unique_ptr<PacedSender> pacer); |
70 virtual ~SendSideCongestionController(); | 70 ~SendSideCongestionController() override; |
71 | 71 |
72 void RegisterPacketFeedbackObserver(PacketFeedbackObserver* observer); | 72 void RegisterPacketFeedbackObserver(PacketFeedbackObserver* observer); |
73 void DeRegisterPacketFeedbackObserver(PacketFeedbackObserver* observer); | 73 void DeRegisterPacketFeedbackObserver(PacketFeedbackObserver* observer); |
74 | 74 |
75 // Currently, there can be at most one observer. | 75 // Currently, there can be at most one observer. |
76 void RegisterNetworkObserver(Observer* observer); | 76 void RegisterNetworkObserver(Observer* observer); |
77 void DeRegisterNetworkObserver(Observer* observer); | 77 void DeRegisterNetworkObserver(Observer* observer); |
78 | 78 |
79 virtual void SetBweBitrates(int min_bitrate_bps, | 79 virtual void SetBweBitrates(int min_bitrate_bps, |
80 int start_bitrate_bps, | 80 int start_bitrate_bps, |
81 int max_bitrate_bps); | 81 int max_bitrate_bps); |
82 // Resets the BWE state. Note the first argument is the bitrate_bps. | 82 // Resets the BWE state. Note the first argument is the bitrate_bps. |
83 virtual void OnNetworkRouteChanged(const rtc::NetworkRoute& network_route, | 83 virtual void OnNetworkRouteChanged(const rtc::NetworkRoute& network_route, |
84 int bitrate_bps, | 84 int bitrate_bps, |
85 int min_bitrate_bps, | 85 int min_bitrate_bps, |
86 int max_bitrate_bps); | 86 int max_bitrate_bps); |
87 virtual void SignalNetworkState(NetworkState state); | 87 virtual void SignalNetworkState(NetworkState state); |
88 virtual void SetTransportOverhead(size_t transport_overhead_bytes_per_packet); | 88 virtual void SetTransportOverhead(size_t transport_overhead_bytes_per_packet); |
89 | 89 |
90 virtual BitrateController* GetBitrateController() const; | 90 virtual BitrateController* GetBitrateController() const; |
91 virtual int64_t GetPacerQueuingDelayMs() const; | 91 virtual int64_t GetPacerQueuingDelayMs() const; |
92 virtual int64_t GetFirstPacketTimeMs() const; | 92 virtual int64_t GetFirstPacketTimeMs() const; |
93 // TODO(nisse): Delete this accessor function. The pacer should be | 93 // TODO(nisse): Delete this accessor function. The pacer should be |
94 // internal to the congestion controller. | 94 // internal to the congestion controller. |
95 virtual PacedSender* pacer() { return pacer_.get(); } | 95 virtual PacedSender* pacer(); |
96 virtual TransportFeedbackObserver* GetTransportFeedbackObserver() { | 96 virtual TransportFeedbackObserver* GetTransportFeedbackObserver(); |
97 return this; | 97 |
98 } | |
99 RateLimiter* GetRetransmissionRateLimiter(); | 98 RateLimiter* GetRetransmissionRateLimiter(); |
100 void EnablePeriodicAlrProbing(bool enable); | 99 void EnablePeriodicAlrProbing(bool enable); |
101 | 100 |
102 // SetAllocatedSendBitrateLimits sets bitrates limits imposed by send codec | 101 // SetAllocatedSendBitrateLimits sets bitrates limits imposed by send codec |
103 // settings. | 102 // settings. |
104 // |min_send_bitrate_bps| is the total minimum send bitrate required by all | 103 // |min_send_bitrate_bps| is the total minimum send bitrate required by all |
105 // sending streams. This is the minimum bitrate the PacedSender will use. | 104 // sending streams. This is the minimum bitrate the PacedSender will use. |
106 // Note that SendSideCongestionController::OnNetworkChanged can still be | 105 // Note that SendSideCongestionController::OnNetworkChanged can still be |
107 // called with a lower bitrate estimate. |max_padding_bitrate_bps| is the max | 106 // called with a lower bitrate estimate. |max_padding_bitrate_bps| is the max |
108 // bitrate the send streams request for padding. This can be higher than the | 107 // bitrate the send streams request for padding. This can be higher than the |
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
155 std::unique_ptr<DelayBasedBwe> delay_based_bwe_ GUARDED_BY(bwe_lock_); | 154 std::unique_ptr<DelayBasedBwe> delay_based_bwe_ GUARDED_BY(bwe_lock_); |
156 | 155 |
157 rtc::ThreadChecker worker_thread_checker_; | 156 rtc::ThreadChecker worker_thread_checker_; |
158 | 157 |
159 RTC_DISALLOW_IMPLICIT_CONSTRUCTORS(SendSideCongestionController); | 158 RTC_DISALLOW_IMPLICIT_CONSTRUCTORS(SendSideCongestionController); |
160 }; | 159 }; |
161 | 160 |
162 } // namespace webrtc | 161 } // namespace webrtc |
163 | 162 |
164 #endif // WEBRTC_MODULES_CONGESTION_CONTROLLER_INCLUDE_SEND_SIDE_CONGESTION_CON
TROLLER_H_ | 163 #endif // WEBRTC_MODULES_CONGESTION_CONTROLLER_INCLUDE_SEND_SIDE_CONGESTION_CON
TROLLER_H_ |
OLD | NEW |