OLD | NEW |
1 /* | 1 /* |
2 * Copyright (c) 2017 The WebRTC project authors. All Rights Reserved. | 2 * Copyright (c) 2017 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 |
11 #ifndef WEBRTC_CALL_RTP_TRANSPORT_CONTROLLER_SEND_H_ | 11 #ifndef WEBRTC_CALL_RTP_TRANSPORT_CONTROLLER_SEND_H_ |
12 #define WEBRTC_CALL_RTP_TRANSPORT_CONTROLLER_SEND_H_ | 12 #define WEBRTC_CALL_RTP_TRANSPORT_CONTROLLER_SEND_H_ |
13 | 13 |
14 #include "webrtc/call/rtp_transport_controller_send_interface.h" | 14 #include "webrtc/call/rtp_transport_controller_send_interface.h" |
15 #include "webrtc/common_types.h" | 15 #include "webrtc/common_types.h" |
16 #include "webrtc/modules/congestion_controller/include/send_side_congestion_cont
roller.h" | 16 #include "webrtc/modules/congestion_controller/include/send_side_congestion_cont
roller.h" |
| 17 #include "webrtc/modules/pacing/paced_sender.h" |
| 18 #include "webrtc/modules/pacing/packet_router.h" |
17 #include "webrtc/rtc_base/constructormagic.h" | 19 #include "webrtc/rtc_base/constructormagic.h" |
18 | 20 |
19 namespace webrtc { | 21 namespace webrtc { |
20 class Clock; | 22 class Clock; |
21 class RtcEventLog; | 23 class RtcEventLog; |
22 | 24 |
23 // TODO(nisse): When we get the underlying transports here, we should | 25 // TODO(nisse): When we get the underlying transports here, we should |
24 // have one object implementing RtpTransportControllerSendInterface | 26 // have one object implementing RtpTransportControllerSendInterface |
25 // per transport, sharing the same congestion controller. | 27 // per transport, sharing the same congestion controller. |
26 class RtpTransportControllerSend : public RtpTransportControllerSendInterface { | 28 class RtpTransportControllerSend : public RtpTransportControllerSendInterface { |
27 public: | 29 public: |
28 RtpTransportControllerSend(Clock* clock, webrtc::RtcEventLog* event_log); | 30 RtpTransportControllerSend(Clock* clock, webrtc::RtcEventLog* event_log); |
29 | 31 |
30 // Implements RtpTransportControllerSendInterface | 32 // Implements RtpTransportControllerSendInterface |
31 PacketRouter* packet_router() override; | 33 PacketRouter* packet_router() override; |
| 34 PacedSender* pacer() override; |
32 SendSideCongestionController* send_side_cc() override; | 35 SendSideCongestionController* send_side_cc() override; |
33 TransportFeedbackObserver* transport_feedback_observer() override; | 36 TransportFeedbackObserver* transport_feedback_observer() override; |
34 RtpPacketSender* packet_sender() override; | 37 RtpPacketSender* packet_sender() override; |
35 const RtpKeepAliveConfig& keepalive_config() const override; | 38 const RtpKeepAliveConfig& keepalive_config() const override; |
36 | 39 |
37 void SetKeepAliveConfig(const RtpKeepAliveConfig& config); | 40 void SetKeepAliveConfig(const RtpKeepAliveConfig& config); |
38 | 41 |
39 private: | 42 private: |
40 PacketRouter packet_router_; | 43 PacketRouter packet_router_; |
| 44 PacedSender pacer_; |
41 SendSideCongestionController send_side_cc_; | 45 SendSideCongestionController send_side_cc_; |
42 RtpKeepAliveConfig keepalive_; | 46 RtpKeepAliveConfig keepalive_; |
43 | 47 |
44 RTC_DISALLOW_COPY_AND_ASSIGN(RtpTransportControllerSend); | 48 RTC_DISALLOW_COPY_AND_ASSIGN(RtpTransportControllerSend); |
45 }; | 49 }; |
46 | 50 |
47 } // namespace webrtc | 51 } // namespace webrtc |
48 | 52 |
49 #endif // WEBRTC_CALL_RTP_TRANSPORT_CONTROLLER_SEND_H_ | 53 #endif // WEBRTC_CALL_RTP_TRANSPORT_CONTROLLER_SEND_H_ |
OLD | NEW |