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

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

Issue 2638083002: Attach TransportFeedbackPacketLossTracker to ANA (PLR only) (Closed)
Patch Set: SSRC() Created 3 years, 9 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 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
92 virtual BitrateController* GetBitrateController() const; 92 virtual BitrateController* GetBitrateController() const;
93 virtual RemoteBitrateEstimator* GetRemoteBitrateEstimator( 93 virtual RemoteBitrateEstimator* GetRemoteBitrateEstimator(
94 bool send_side_bwe); 94 bool send_side_bwe);
95 virtual int64_t GetPacerQueuingDelayMs() const; 95 virtual int64_t GetPacerQueuingDelayMs() const;
96 // TODO(nisse): Delete this accessor function. The pacer should be 96 // TODO(nisse): Delete this accessor function. The pacer should be
97 // internal to the congestion controller. 97 // internal to the congestion controller.
98 virtual PacedSender* pacer() { return pacer_.get(); } 98 virtual PacedSender* pacer() { return pacer_.get(); }
99 virtual TransportFeedbackObserver* GetTransportFeedbackObserver() { 99 virtual TransportFeedbackObserver* GetTransportFeedbackObserver() {
100 return this; 100 return this;
101 } 101 }
102 void RegisterTransportFeedbackAdapterObserver(
103 TransportFeedbackAdapterObserver* observer);
104 void DeRegisterTransportFeedbackAdapterObserver(
105 TransportFeedbackAdapterObserver* observer);
102 RateLimiter* GetRetransmissionRateLimiter(); 106 RateLimiter* GetRetransmissionRateLimiter();
103 void EnablePeriodicAlrProbing(bool enable); 107 void EnablePeriodicAlrProbing(bool enable);
104 108
105 // SetAllocatedSendBitrateLimits sets bitrates limits imposed by send codec 109 // SetAllocatedSendBitrateLimits sets bitrates limits imposed by send codec
106 // settings. 110 // settings.
107 // |min_send_bitrate_bps| is the total minimum send bitrate required by all 111 // |min_send_bitrate_bps| is the total minimum send bitrate required by all
108 // sending streams. This is the minimum bitrate the PacedSender will use. 112 // sending streams. This is the minimum bitrate the PacedSender will use.
109 // Note that CongestionController::OnNetworkChanged can still be called with 113 // Note that CongestionController::OnNetworkChanged can still be called with
110 // a lower bitrate estimate. 114 // a lower bitrate estimate.
111 // |max_padding_bitrate_bps| is the max bitrate the send streams request for 115 // |max_padding_bitrate_bps| is the max bitrate the send streams request for
112 // padding. This can be higher than the current network estimate and tells 116 // padding. This can be higher than the current network estimate and tells
113 // the PacedSender how much it should max pad unless there is real packets to 117 // the PacedSender how much it should max pad unless there is real packets to
114 // send. 118 // send.
115 void SetAllocatedSendBitrateLimits(int min_send_bitrate_bps, 119 void SetAllocatedSendBitrateLimits(int min_send_bitrate_bps,
116 int max_padding_bitrate_bps); 120 int max_padding_bitrate_bps);
117 121
118 virtual void OnSentPacket(const rtc::SentPacket& sent_packet); 122 virtual void OnSentPacket(const rtc::SentPacket& sent_packet);
119 123
120 // Implements CallStatsObserver. 124 // Implements CallStatsObserver.
121 void OnRttUpdate(int64_t avg_rtt_ms, int64_t max_rtt_ms) override; 125 void OnRttUpdate(int64_t avg_rtt_ms, int64_t max_rtt_ms) override;
122 126
123 // Implements Module. 127 // Implements Module.
124 int64_t TimeUntilNextProcess() override; 128 int64_t TimeUntilNextProcess() override;
125 void Process() override; 129 void Process() override;
126 130
127 // Implements TransportFeedbackObserver. 131 // Implements TransportFeedbackObserver.
128 void AddPacket(uint16_t sequence_number, 132 void AddPacket(uint32_t ssrc,
133 uint16_t sequence_number,
129 size_t length, 134 size_t length,
130 const PacedPacketInfo& pacing_info) override; 135 const PacedPacketInfo& pacing_info) override;
131 void OnTransportFeedback(const rtcp::TransportFeedback& feedback) override; 136 void OnTransportFeedback(const rtcp::TransportFeedback& feedback) override;
132 std::vector<PacketFeedback> GetTransportFeedbackVector() const override; 137 std::vector<PacketFeedback> GetTransportFeedbackVector() const override;
133 138
134 private: 139 private:
135 class WrappingBitrateEstimator : public RemoteBitrateEstimator { 140 class WrappingBitrateEstimator : public RemoteBitrateEstimator {
136 public: 141 public:
137 WrappingBitrateEstimator(RemoteBitrateObserver* observer, 142 WrappingBitrateEstimator(RemoteBitrateObserver* observer,
138 const Clock* clock); 143 const Clock* clock);
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
200 std::unique_ptr<DelayBasedBwe> delay_based_bwe_ GUARDED_BY(bwe_lock_); 205 std::unique_ptr<DelayBasedBwe> delay_based_bwe_ GUARDED_BY(bwe_lock_);
201 206
202 rtc::ThreadChecker worker_thread_checker_; 207 rtc::ThreadChecker worker_thread_checker_;
203 208
204 RTC_DISALLOW_IMPLICIT_CONSTRUCTORS(CongestionController); 209 RTC_DISALLOW_IMPLICIT_CONSTRUCTORS(CongestionController);
205 }; 210 };
206 211
207 } // namespace webrtc 212 } // namespace webrtc
208 213
209 #endif // WEBRTC_MODULES_CONGESTION_CONTROLLER_INCLUDE_CONGESTION_CONTROLLER_H_ 214 #endif // WEBRTC_MODULES_CONGESTION_CONTROLLER_INCLUDE_CONGESTION_CONTROLLER_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698