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

Unified Diff: webrtc/call/rtp_transport_controller_send.h

Issue 2808043002: Move RtpTransportControllerSend to a new file. (Closed)
Patch Set: Rebase. Created 3 years, 8 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
« no previous file with comments | « webrtc/call/call.cc ('k') | webrtc/call/rtp_transport_controller_send.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webrtc/call/rtp_transport_controller_send.h
diff --git a/webrtc/call/rtp_transport_controller_send.h b/webrtc/call/rtp_transport_controller_send.h
index 117bca069c1a244f5de6862b0fd2fa226c327f42..2bbb547ffd117ddacc65ae3871154f7e7a15f457 100644
--- a/webrtc/call/rtp_transport_controller_send.h
+++ b/webrtc/call/rtp_transport_controller_send.h
@@ -11,46 +11,39 @@
#ifndef WEBRTC_CALL_RTP_TRANSPORT_CONTROLLER_SEND_H_
#define WEBRTC_CALL_RTP_TRANSPORT_CONTROLLER_SEND_H_
+#include "webrtc/base/constructormagic.h"
+#include "webrtc/call/rtp_transport_controller_send_interface.h"
+#include "webrtc/modules/congestion_controller/include/send_side_congestion_controller.h"
+
namespace webrtc {
+class Clock;
+class RtcEventLog;
-class Module;
-class PacketRouter;
-class RtpPacketSender;
-class SendSideCongestionController;
-class TransportFeedbackObserver;
-
-// An RtpTransportController should own everything related to the RTP
-// transport to/from a remote endpoint. We should have separate
-// interfaces for send and receive side, even if they are implemented
-// by the same class. This is an ongoing refactoring project. At some
-// point, this class should be promoted to a public api under
-// webrtc/api/rtp/.
-//
-// For a start, this object is just a collection of the objects needed
-// by the VideoSendStream constructor. The plan is to move ownership
-// of all RTP-related objects here, and add methods to create per-ssrc
-// objects which would then be passed to VideoSendStream. Eventually,
-// direct accessors like packet_router() should be removed.
-//
-// This should also have a reference to the underlying
-// webrtc::Transport(s). Currently, webrtc::Transport is implemented by
-// WebRtcVideoChannel2 and WebRtcVoiceMediaChannel, and owned by
-// WebrtcSession. Video and audio always uses different transport
-// objects, even in the common case where they are bundled over the
-// same underlying transport.
-//
-// Extracting the logic of the webrtc::Transport from BaseChannel and
-// subclasses into a separate class seems to be a prerequesite for
-// moving the transport here.
-class RtpTransportControllerSendInterface {
+// TODO(nisse): When we get the underlying transports here, we should
+// have one object implementing RtpTransportControllerSendInterface
+// per transport, sharing the same congestion controller.
+class RtpTransportControllerSend : public RtpTransportControllerSendInterface {
public:
- virtual ~RtpTransportControllerSendInterface() {}
- virtual PacketRouter* packet_router() = 0;
- // Currently returning the same pointer, but with different types.
- virtual SendSideCongestionController* send_side_cc() = 0;
- virtual TransportFeedbackObserver* transport_feedback_observer() = 0;
+ RtpTransportControllerSend(Clock* clock, webrtc::RtcEventLog* event_log);
+
+ void RegisterNetworkObserver(
+ SendSideCongestionController::Observer* observer);
+
+ // Implements RtpTransportControllerSendInterface
+ PacketRouter* packet_router() override { return &packet_router_; }
+ SendSideCongestionController* send_side_cc() override {
+ return &send_side_cc_;
+ }
+ TransportFeedbackObserver* transport_feedback_observer() override {
+ return &send_side_cc_;
+ }
+ RtpPacketSender* packet_sender() override { return send_side_cc_.pacer(); }
+
+ private:
+ PacketRouter packet_router_;
+ SendSideCongestionController send_side_cc_;
- virtual RtpPacketSender* packet_sender() = 0;
+ RTC_DISALLOW_COPY_AND_ASSIGN(RtpTransportControllerSend);
};
} // namespace webrtc
« no previous file with comments | « webrtc/call/call.cc ('k') | webrtc/call/rtp_transport_controller_send.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698