LeviLamina
Loading...
Searching...
No Matches
PacingController.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/external/webrtc/RtpPacketMediaType.h"
7
8// auto generated forward declare list
9// clang-format off
10namespace webrtc { class Clock; }
11namespace webrtc { class DataRate; }
12namespace webrtc { class DataSize; }
13namespace webrtc { class FieldTrialsView; }
14namespace webrtc { class RtpPacketToSend; }
15namespace webrtc { class TimeDelta; }
16namespace webrtc { class Timestamp; }
17namespace webrtc { struct PacedPacketInfo; }
18namespace webrtc { struct ProbeClusterConfig; }
19// clang-format on
20
21namespace webrtc {
22
24public:
25 // PacingController inner types declare
26 // clang-format off
27 struct Configuration;
28 class PacketSender;
29 // clang-format on
30
31 // PacingController inner types define
32 struct Configuration {};
33
34 class PacketSender {};
35
36public:
37 // member functions
38 // NOLINTBEGIN
39 MCAPI void CreateProbeClusters(::rtc::ArrayView<::webrtc::ProbeClusterConfig const>);
40
41 MCAPI ::webrtc::Timestamp CurrentTime() const;
42
43 MCAPI void EnqueuePacket(::std::unique_ptr<::webrtc::RtpPacketToSend>);
44
45 MCAPI ::webrtc::TimeDelta ExpectedQueueTime() const;
46
47 MCAPI ::std::optional<::webrtc::Timestamp> FirstSentPacketTime() const;
48
49 MCAPI ::std::unique_ptr<::webrtc::RtpPacketToSend>
51
52 MCAPI bool IsProbing() const;
53
54 MCAPI void MaybeUpdateMediaRateDueToLongQueue(::webrtc::Timestamp);
55
56 MCAPI ::webrtc::Timestamp NextSendTime() const;
57
58 MCAPI ::webrtc::Timestamp NextUnpacedSendTime() const;
59
60 MCAPI ::webrtc::Timestamp OldestPacketEnqueueTime() const;
61
62 MCAPI void OnPacketSent(::webrtc::RtpPacketMediaType, ::webrtc::DataSize, ::webrtc::Timestamp);
63
64 MCAPI PacingController(
69 );
70
71 MCAPI ::webrtc::DataSize PaddingToAdd(::webrtc::DataSize, ::webrtc::DataSize) const;
72
73 MCAPI void Pause();
74
75 MCAPI void ProcessPackets();
76
77 MCAPI ::webrtc::DataSize QueueSizeData() const;
78
79 MCAPI void RemovePacketsForSsrc(uint);
80
81 MCAPI void Resume();
82
83 MCAPI void SetAccountForAudioPackets(bool);
84
85 MCAPI void SetAllowProbeWithoutMediaPacket(bool);
86
87 MCAPI void SetCongested(bool);
88
89 MCAPI void SetIncludeOverhead();
90
91 MCAPI void SetPacingRates(::webrtc::DataRate, ::webrtc::DataRate);
92
93 MCAPI void SetQueueTimeLimit(::webrtc::TimeDelta);
94
95 MCAPI void SetSendBurstInterval(::webrtc::TimeDelta);
96
97 MCAPI void SetTransportOverhead(::webrtc::DataSize);
98
99 MCAPI bool ShouldSendKeepalive(::webrtc::Timestamp) const;
100
101 MCAPI void UpdateBudgetWithElapsedTime(::webrtc::TimeDelta);
102
103 MCAPI void UpdateBudgetWithSentData(::webrtc::DataSize);
104
105 MCAPI void UpdatePaddingBudgetWithSentData(::webrtc::DataSize);
106
107 MCAPI ::webrtc::TimeDelta UpdateTimeAndGetElapsed(::webrtc::Timestamp);
108
109 MCAPI ~PacingController();
110 // NOLINTEND
111
112public:
113 // static variables
114 // NOLINTBEGIN
115 MCAPI static ::webrtc::TimeDelta const& kMaxEarlyProbeProcessing();
116
117 MCAPI static ::webrtc::TimeDelta const& kMaxPaddingReplayDuration();
118
119 MCAPI static ::webrtc::TimeDelta const& kMinSleepTime();
120
121 MCAPI static ::webrtc::TimeDelta const& kPausedProcessInterval();
122
123 MCAPI static ::webrtc::TimeDelta const& kTargetPaddingDuration();
124 // NOLINTEND
125
126public:
127 // constructor thunks
128 // NOLINTBEGIN
129 MCAPI void* $ctor(
134 );
135 // NOLINTEND
136
137public:
138 // destructor thunk
139 // NOLINTBEGIN
140 MCAPI void $dtor();
141 // NOLINTEND
142};
143
144} // namespace webrtc
Definition _HeaderOutputPredefine.h:238
Definition Clock.h:13
Definition DataRate.h:10
Definition DataSize.h:10
Definition FieldTrialsView.h:7
Definition PacingController.h:34
Definition TimeDelta.h:10
Definition Timestamp.h:10
Definition PacedPacketInfo.h:7
Definition PacingController.h:32
Definition PacingController.h:23