Chromium Code Reviews| 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 |