blob: 6cff173203e4950270f1ab9b05dd3dd0fd632152 [file] [log] [blame]
zstein7cb69d52017-05-08 11:52:38 -07001/*
2 * Copyright (c) 2015 The WebRTC project authors. All Rights Reserved.
3 *
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
6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree.
9 */
10
11#ifndef WEBRTC_CALL_FAKE_RTP_TRANSPORT_CONTROLLER_SEND_H_
12#define WEBRTC_CALL_FAKE_RTP_TRANSPORT_CONTROLLER_SEND_H_
13
14#include "webrtc/call/rtp_transport_controller_send_interface.h"
sprangdb2a9fc2017-08-09 06:42:32 -070015#include "webrtc/common_types.h"
zstein7cb69d52017-05-08 11:52:38 -070016#include "webrtc/modules/congestion_controller/include/send_side_congestion_controller.h"
17#include "webrtc/modules/pacing/packet_router.h"
18
19namespace webrtc {
20
21class FakeRtpTransportControllerSend
22 : public RtpTransportControllerSendInterface {
23 public:
24 explicit FakeRtpTransportControllerSend(
zstein8c96a142017-05-17 11:49:12 -070025 PacketRouter* packet_router,
Stefan Holmer5c8942a2017-08-22 16:16:44 +020026 PacedSender* paced_sender,
zstein7cb69d52017-05-08 11:52:38 -070027 SendSideCongestionController* send_side_cc)
Stefan Holmer5c8942a2017-08-22 16:16:44 +020028 : packet_router_(packet_router),
29 paced_sender_(paced_sender),
30 send_side_cc_(send_side_cc) {
zstein7cb69d52017-05-08 11:52:38 -070031 RTC_DCHECK(send_side_cc);
32 }
33
zstein8c96a142017-05-17 11:49:12 -070034 PacketRouter* packet_router() override { return packet_router_; }
zstein7cb69d52017-05-08 11:52:38 -070035
36 SendSideCongestionController* send_side_cc() override {
37 return send_side_cc_;
38 }
39
40 TransportFeedbackObserver* transport_feedback_observer() override {
41 return send_side_cc_;
42 }
43
Stefan Holmer5c8942a2017-08-22 16:16:44 +020044 PacedSender* pacer() override { return paced_sender_; }
45
46 RtpPacketSender* packet_sender() override { return paced_sender_; }
zstein7cb69d52017-05-08 11:52:38 -070047
sprangdb2a9fc2017-08-09 06:42:32 -070048 const RtpKeepAliveConfig& keepalive_config() const override {
49 return keepalive_;
50 }
51
Stefan Holmer5c8942a2017-08-22 16:16:44 +020052 void SetAllocatedSendBitrateLimits(int min_send_bitrate_bps,
53 int max_padding_bitrate_bps) override {}
54
sprangdb2a9fc2017-08-09 06:42:32 -070055 void set_keepalive_config(const RtpKeepAliveConfig& keepalive_config) {
56 keepalive_ = keepalive_config;
57 }
58
zstein7cb69d52017-05-08 11:52:38 -070059 private:
zstein8c96a142017-05-17 11:49:12 -070060 PacketRouter* packet_router_;
Stefan Holmer5c8942a2017-08-22 16:16:44 +020061 PacedSender* paced_sender_;
zstein7cb69d52017-05-08 11:52:38 -070062 SendSideCongestionController* send_side_cc_;
sprangdb2a9fc2017-08-09 06:42:32 -070063 RtpKeepAliveConfig keepalive_;
zstein7cb69d52017-05-08 11:52:38 -070064};
65
66} // namespace webrtc
67
68#endif // WEBRTC_CALL_FAKE_RTP_TRANSPORT_CONTROLLER_SEND_H_