Index: webrtc/modules/congestion_controller/transport_feedback_adapter.h |
diff --git a/webrtc/modules/congestion_controller/transport_feedback_adapter.h b/webrtc/modules/congestion_controller/transport_feedback_adapter.h |
index ac545b369aa6ca92b8564286ca5746e3b0a3b76e..ae02b49f8ccc4804f57d83706b5e7e2ee83a4044 100644 |
--- a/webrtc/modules/congestion_controller/transport_feedback_adapter.h |
+++ b/webrtc/modules/congestion_controller/transport_feedback_adapter.h |
@@ -11,82 +11,52 @@ |
#ifndef WEBRTC_MODULES_CONGESTION_CONTROLLER_TRANSPORT_FEEDBACK_ADAPTER_H_ |
#define WEBRTC_MODULES_CONGESTION_CONTROLLER_TRANSPORT_FEEDBACK_ADAPTER_H_ |
-#include <memory> |
#include <vector> |
#include "webrtc/base/criticalsection.h" |
#include "webrtc/base/thread_annotations.h" |
#include "webrtc/base/thread_checker.h" |
-#include "webrtc/modules/congestion_controller/delay_based_bwe.h" |
-#include "webrtc/modules/include/module_common_types.h" |
#include "webrtc/modules/remote_bitrate_estimator/include/send_time_history.h" |
namespace webrtc { |
-class BitrateController; |
-class RtcEventLog; |
-class ProcessThread; |
+namespace rtcp { |
+class TransportFeedback; |
+} // namespace rtcp |
-class TransportFeedbackAdapter : public TransportFeedbackObserver, |
- public CallStatsObserver { |
+class TransportFeedbackAdapter { |
public: |
- TransportFeedbackAdapter(RtcEventLog* event_log, |
- Clock* clock, |
- BitrateController* bitrate_controller); |
+ TransportFeedbackAdapter(Clock* clock); |
virtual ~TransportFeedbackAdapter(); |
- void InitBwe(); |
- // Implements TransportFeedbackObserver. |
void AddPacket(uint16_t sequence_number, |
size_t length, |
- const PacedPacketInfo& pacing_info) override; |
+ const PacedPacketInfo& pacing_info); |
void OnSentPacket(uint16_t sequence_number, int64_t send_time_ms); |
// TODO(holmer): This method should return DelayBasedBwe::Result so that we |
// can get rid of the dependency on BitrateController. Requires changes |
// to the CongestionController interface. |
- void OnTransportFeedback(const rtcp::TransportFeedback& feedback) override; |
- std::vector<PacketFeedback> GetTransportFeedbackVector() const override; |
+ void OnTransportFeedback(const rtcp::TransportFeedback& feedback); |
+ std::vector<PacketFeedback> GetTransportFeedbackVector() const; |
- // Implements CallStatsObserver. |
- void OnRttUpdate(int64_t avg_rtt_ms, int64_t max_rtt_ms) override; |
- |
- void SetStartBitrate(int start_bitrate_bps); |
- void SetMinBitrate(int min_bitrate_bps); |
void SetTransportOverhead(int transport_overhead_bytes_per_packet); |
- int64_t GetProbingIntervalMs() const; |
- |
private: |
std::vector<PacketFeedback> GetPacketFeedbackVector( |
const rtcp::TransportFeedback& feedback); |
const bool send_side_bwe_with_overhead_; |
rtc::CriticalSection lock_; |
- rtc::CriticalSection bwe_lock_; |
int transport_overhead_bytes_per_packet_ GUARDED_BY(&lock_); |
SendTimeHistory send_time_history_ GUARDED_BY(&lock_); |
- std::unique_ptr<DelayBasedBwe> delay_based_bwe_ GUARDED_BY(&bwe_lock_); |
- RtcEventLog* const event_log_; |
Clock* const clock_; |
minyue-webrtc
2017/03/02 19:53:58
const
elad.alon_webrtc.org
2017/03/08 18:25:10
Done.
|
int64_t current_offset_ms_; |
int64_t last_timestamp_us_; |
- BitrateController* const bitrate_controller_; |
std::vector<PacketFeedback> last_packet_feedback_vector_; |
minyue-webrtc
2017/03/02 19:53:58
where is the list<FeedbackObserver>
elad.alon_webrtc.org
2017/03/08 18:25:10
Upcoming CL. This CL only deals with moving the BW
|
- // Three main threads are in play: |
- // |
- // 1. Data packetized and scheduled for transmission (AddPacket). |
- // 2. After socket sends the data, a notification is produced (OnSentPacket). |
- // The same thread is also the one on which feedbacks are |
- // received (OnTransportFeedback). |
- // 3. RTT updates, etc., received from the module process thread (CallStats). |
- // |
- // Note: Not everything falls into this division. GetProbingIntervalMs, for |
- // example, is called from multiple threads. |
rtc::ThreadChecker packetizer_thread_checker_; |
rtc::ThreadChecker worker_thread_checker_; |
- rtc::ThreadChecker module_process_thread_checker_; |
}; |
} // namespace webrtc |