blob: b5ac2ec59701589cc8fa20fb18f217a0d40c1059 [file] [log] [blame]
gnisha36165c2017-08-20 09:19:58 -07001/*
2 * Copyright (c) 2017 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_MODULES_PACING_PACER_H_
12#define WEBRTC_MODULES_PACING_PACER_H_
13
14#include "webrtc/modules/include/module.h"
15#include "webrtc/modules/rtp_rtcp/include/rtp_rtcp_defines.h"
16
17namespace webrtc {
18class Pacer : public Module, public RtpPacketSender {
19 public:
20 virtual void SetEstimatedBitrate(uint32_t bitrate_bps) {}
21 virtual void SetEstimatedBitrateAndCongestionWindow(
22 uint32_t bitrate_bps,
23 bool in_probe_rtt,
24 uint64_t congestion_window) {}
25 virtual void OnBytesAcked(size_t bytes) {}
26 void InsertPacket(RtpPacketSender::Priority priority,
27 uint32_t ssrc,
28 uint16_t sequence_number,
29 int64_t capture_time_ms,
30 size_t bytes,
31 bool retransmission) override = 0;
32 int64_t TimeUntilNextProcess() override = 0;
33 void Process() override = 0;
34 ~Pacer() override {}
35};
36} // namespace webrtc
37#endif // WEBRTC_MODULES_PACING_PACER_H_