blob: dda2e5f645c93f1a6a9ff15318c7eed816248430 [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
Mirko Bonadei92ea95e2017-09-15 06:47:31 +020011#ifndef CALL_FAKE_RTP_TRANSPORT_CONTROLLER_SEND_H_
12#define CALL_FAKE_RTP_TRANSPORT_CONTROLLER_SEND_H_
zstein7cb69d52017-05-08 11:52:38 -070013
Mirko Bonadei92ea95e2017-09-15 06:47:31 +020014#include "call/rtp_transport_controller_send_interface.h"
Mirko Bonadei71207422017-09-15 13:58:09 +020015#include "common_types.h" // NOLINT(build/include)
Mirko Bonadei92ea95e2017-09-15 06:47:31 +020016#include "modules/congestion_controller/include/send_side_congestion_controller.h"
17#include "modules/pacing/packet_router.h"
zstein7cb69d52017-05-08 11:52:38 -070018
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
Mirko Bonadei92ea95e2017-09-15 06:47:31 +020068#endif // CALL_FAKE_RTP_TRANSPORT_CONTROLLER_SEND_H_