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

Unified Diff: webrtc/modules/congestion_controller/transport_feedback_adapter.h

Issue 2725823002: Move delay_based_bwe_ into CongestionController (Closed)
Patch Set: More refactoring + UTs moved. Created 3 years, 10 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 side-by-side diff with in-line comments
Download patch
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

Powered by Google App Engine
This is Rietveld 408576698