3#include "mc/_HeaderOutputPredefine.h"
6#include "mc/external/webrtc/RtpPacketMediaType.h"
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; }
43 virtual ::std::vector<::std::unique_ptr<::webrtc::RtpPacketToSend>> FetchFec() = 0;
46 virtual ::std::vector<::std::unique_ptr<::webrtc::RtpPacketToSend>> GeneratePadding(
::webrtc::DataSize) = 0;
49 virtual void OnBatchComplete();
55 virtual ::std::optional<uint> GetRtxSsrcForMedia(uint)
const;
133 MCNAPI
void EnqueuePacket(::std::unique_ptr<::webrtc::RtpPacketToSend> packet);
156 ::webrtc::RtpPacketMediaType packet_type,
168 MCNAPI ::webrtc::DataSize
Definition _HeaderOutputPredefine.h:260
Definition FieldTrialsView.h:7
Definition PacingController.h:32
Definition PacingController.h:23
MCAPI void UpdateBudgetWithElapsedTime(::webrtc::TimeDelta delta)
MCAPI ~PacingController()
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 PacedPacketInfo.h:7
Definition PacingController.h:65