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
33 public:
34 // virtual functions
35 // NOLINTBEGIN
36 // vIndex: 0
37 virtual ~PacketSender() = default;
38
39 // vIndex: 1
40 virtual void SendPacket(::std::unique_ptr<::webrtc::RtpPacketToSend>, ::webrtc::PacedPacketInfo const&) = 0;
41
42 // vIndex: 2
43 virtual ::std::vector<::std::unique_ptr<::webrtc::RtpPacketToSend>> FetchFec() = 0;
44
45 // vIndex: 3
46 virtual ::std::vector<::std::unique_ptr<::webrtc::RtpPacketToSend>> GeneratePadding(::webrtc::DataSize) = 0;
47
48 // vIndex: 4
49 virtual void OnBatchComplete();
50
51 // vIndex: 5
52 virtual void OnAbortedRetransmissions(uint, ::rtc::ArrayView<ushort const>);
53
54 // vIndex: 6
55 virtual ::std::optional<uint> GetRtxSsrcForMedia(uint) const;
56 // NOLINTEND
57
58 public:
59 // virtual function thunks
60 // NOLINTBEGIN
61
62 // NOLINTEND
63 };
64
66 public:
67 // member variables
68 // NOLINTBEGIN
75 // NOLINTEND
76
77 public:
78 // prevent constructor by default
79 Configuration& operator=(Configuration const&);
82 };
83
84public:
85 // member variables
86 // NOLINTBEGIN
118 // NOLINTEND
119
120public:
121 // prevent constructor by default
122 PacingController& operator=(PacingController const&);
125
126public:
127 // member functions
128 // NOLINTBEGIN
130
131 MCNAPI ::webrtc::Timestamp CurrentTime() const;
132
133 MCNAPI void EnqueuePacket(::std::unique_ptr<::webrtc::RtpPacketToSend> packet);
134
135 MCNAPI ::webrtc::TimeDelta ExpectedQueueTime() const;
136
137 MCNAPI ::std::optional<::webrtc::Timestamp> FirstSentPacketTime() const;
138
139 MCNAPI ::std::unique_ptr<::webrtc::RtpPacketToSend> GetPendingPacket(
140 ::webrtc::PacedPacketInfo const& pacing_info,
141 ::webrtc::Timestamp target_send_time,
143 );
144
145 MCNAPI bool IsProbing() const;
146
148
149 MCNAPI ::webrtc::Timestamp NextSendTime() const;
150
151 MCNAPI ::webrtc::Timestamp NextUnpacedSendTime() const;
152
153 MCNAPI ::webrtc::Timestamp OldestPacketEnqueueTime() const;
154
155 MCNAPI void OnPacketSent(
156 ::webrtc::RtpPacketMediaType packet_type,
157 ::webrtc::DataSize packet_size,
158 ::webrtc::Timestamp send_time
159 );
160
162 ::webrtc::Clock* clock,
164 ::webrtc::FieldTrialsView const& field_trials,
166 );
167
168 MCNAPI ::webrtc::DataSize
169 PaddingToAdd(::webrtc::DataSize recommended_probe_size, ::webrtc::DataSize data_sent) const;
170
171 MCNAPI void Pause();
172
173 MCNAPI void ProcessPackets();
174
175 MCNAPI ::webrtc::DataSize QueueSizeData() const;
176
177 MCNAPI void RemovePacketsForSsrc(uint ssrc);
178
179 MCNAPI void Resume();
180
181 MCNAPI void SetAccountForAudioPackets(bool account_for_audio);
182
183 MCNAPI void SetAllowProbeWithoutMediaPacket(bool allow);
184
185 MCNAPI void SetCongested(bool congested);
186
187 MCNAPI void SetIncludeOverhead();
188
189 MCNAPI void SetPacingRates(::webrtc::DataRate pacing_rate, ::webrtc::DataRate padding_rate);
190
192
193 MCNAPI void SetSendBurstInterval(::webrtc::TimeDelta burst_interval);
194
195 MCNAPI void SetTransportOverhead(::webrtc::DataSize overhead_per_packet);
196
198
200
202
204
205 MCNAPI ::webrtc::TimeDelta UpdateTimeAndGetElapsed(::webrtc::Timestamp now);
206
208 // NOLINTEND
209
210public:
211 // static variables
212 // NOLINTBEGIN
213 MCNAPI static ::webrtc::TimeDelta const& kMaxEarlyProbeProcessing();
214
215 MCNAPI static ::webrtc::TimeDelta const& kMaxPaddingReplayDuration();
216
217 MCNAPI static ::webrtc::TimeDelta const& kMinSleepTime();
218
219 MCNAPI static ::webrtc::TimeDelta const& kPausedProcessInterval();
220
221 MCNAPI static ::webrtc::TimeDelta const& kTargetPaddingDuration();
222 // NOLINTEND
223
224public:
225 // constructor thunks
226 // NOLINTBEGIN
227 MCNAPI void* $ctor(
228 ::webrtc::Clock* clock,
230 ::webrtc::FieldTrialsView const& field_trials,
232 );
233 // NOLINTEND
234
235public:
236 // destructor thunk
237 // NOLINTBEGIN
238 MCNAPI void $dtor();
239 // NOLINTEND
240};
241
242} // namespace webrtc
Definition _HeaderOutputPredefine.h:260
Definition Clock.h:13
Definition DataRate.h:10
Definition DataSize.h:10
Definition FieldTrialsView.h:7
Definition PacingController.h:32
Definition PacingController.h:23
MCAPI void UpdateBudgetWithElapsedTime(::webrtc::TimeDelta delta)
MCAPI void CreateProbeClusters(::rtc::ArrayView<::webrtc::ProbeClusterConfig const > probe_cluster_configs)
MCAPI void UpdatePaddingBudgetWithSentData(::webrtc::DataSize size)
MCAPI void SetSendBurstInterval(::webrtc::TimeDelta burst_interval)
static MCAPI ::webrtc::TimeDelta const & kMinSleepTime()
MCAPI bool ShouldSendKeepalive(::webrtc::Timestamp now) const
MCAPI void SetTransportOverhead(::webrtc::DataSize overhead_per_packet)
MCAPI void SetIncludeOverhead()
MCAPI::webrtc::Timestamp NextUnpacedSendTime() const
MCAPI::webrtc::Timestamp CurrentTime() const
static MCAPI ::webrtc::TimeDelta const & kPausedProcessInterval()
MCAPI void RemovePacketsForSsrc(uint ssrc)
MCAPI ::std::unique_ptr<::webrtc::RtpPacketToSend > GetPendingPacket(::webrtc::PacedPacketInfo const &pacing_info, ::webrtc::Timestamp target_send_time, ::webrtc::Timestamp now)
MCAPI::webrtc::Timestamp NextSendTime() const
MCAPI PacingController(::webrtc::Clock *clock, ::webrtc::PacingController::PacketSender *packet_sender, ::webrtc::FieldTrialsView const &field_trials, ::webrtc::PacingController::Configuration configuration)
MCAPI void MaybeUpdateMediaRateDueToLongQueue(::webrtc::Timestamp now)
MCAPI::webrtc::TimeDelta UpdateTimeAndGetElapsed(::webrtc::Timestamp now)
MCAPI void SetPacingRates(::webrtc::DataRate pacing_rate, ::webrtc::DataRate padding_rate)
static MCAPI ::webrtc::TimeDelta const & kMaxEarlyProbeProcessing()
MCAPI ::std::optional<::webrtc::Timestamp > FirstSentPacketTime() const
MCAPI void OnPacketSent(::webrtc::RtpPacketMediaType packet_type, ::webrtc::DataSize packet_size, ::webrtc::Timestamp send_time)
MCAPI void SetCongested(bool congested)
MCAPI bool IsProbing() const
MCAPI void SetQueueTimeLimit(::webrtc::TimeDelta limit)
MCAPI void SetAccountForAudioPackets(bool account_for_audio)
MCAPI::webrtc::Timestamp OldestPacketEnqueueTime() const
MCAPI::webrtc::DataSize PaddingToAdd(::webrtc::DataSize recommended_probe_size, ::webrtc::DataSize data_sent) const
static MCAPI ::webrtc::TimeDelta const & kMaxPaddingReplayDuration()
MCAPI::webrtc::TimeDelta ExpectedQueueTime() const
MCAPI void ProcessPackets()
static MCAPI ::webrtc::TimeDelta const & kTargetPaddingDuration()
MCAPI void * $ctor(::webrtc::Clock *clock, ::webrtc::PacingController::PacketSender *packet_sender, ::webrtc::FieldTrialsView const &field_trials, ::webrtc::PacingController::Configuration configuration)
MCAPI void EnqueuePacket(::std::unique_ptr<::webrtc::RtpPacketToSend > packet)
MCAPI void UpdateBudgetWithSentData(::webrtc::DataSize size)
MCAPI void SetAllowProbeWithoutMediaPacket(bool allow)
MCAPI::webrtc::DataSize QueueSizeData() const
Definition TimeDelta.h:10
Definition Timestamp.h:10
Definition Alias.h:14
Definition PacedPacketInfo.h:7
Definition PacingController.h:65