LeviLamina
Loading...
Searching...
No Matches
AimdRateControl.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated forward declare list
6// clang-format off
7namespace webrtc { class DataRate; }
8namespace webrtc { class FieldTrialsView; }
9namespace webrtc { class TimeDelta; }
10namespace webrtc { class Timestamp; }
11namespace webrtc { struct NetworkStateEstimate; }
12namespace webrtc { struct RateControlInput; }
13// clang-format on
14
15namespace webrtc {
16
17class AimdRateControl {
18public:
19 // AimdRateControl inner types define
20 enum class RateControlState : int {
21 KRcHold = 0,
22 KRcIncrease = 1,
23 KRcDecrease = 2,
24 };
25
26public:
27 // member variables
28 // NOLINTBEGIN
49 // NOLINTEND
50
51public:
52 // prevent constructor by default
53 AimdRateControl& operator=(AimdRateControl const&);
54 AimdRateControl(AimdRateControl const&);
55 AimdRateControl();
56
57public:
58 // member functions
59 // NOLINTBEGIN
60 MCNAPI AimdRateControl(::webrtc::FieldTrialsView const& key_value_config, bool send_side);
61
63
64 MCNAPI ::webrtc::DataRate ClampBitrate(::webrtc::DataRate new_bitrate) const;
65
66 MCNAPI ::webrtc::TimeDelta GetExpectedBandwidthPeriod() const;
67
69
71
72 MCNAPI ::webrtc::DataRate LatestEstimate() const;
73
74 MCNAPI void SetEstimate(::webrtc::DataRate bitrate, ::webrtc::Timestamp at_time);
75
76 MCNAPI void SetInApplicationLimitedRegion(bool in_alr);
77
78 MCNAPI void SetMinBitrate(::webrtc::DataRate min_bitrate);
79
80 MCNAPI void SetNetworkStateEstimate(::std::optional<::webrtc::NetworkStateEstimate> const& estimate);
81
82 MCNAPI void SetRtt(::webrtc::TimeDelta rtt);
83
84 MCNAPI void SetStartBitrate(::webrtc::DataRate start_bitrate);
85
86 MCNAPI bool TimeToReduceFurther(::webrtc::Timestamp at_time, ::webrtc::DataRate estimated_throughput) const;
87
88 MCNAPI ::webrtc::DataRate Update(::webrtc::RateControlInput const& input, ::webrtc::Timestamp at_time);
89
90 MCNAPI bool ValidEstimate() const;
91
93 // NOLINTEND
94
95public:
96 // constructor thunks
97 // NOLINTBEGIN
98 MCNAPI void* $ctor(::webrtc::FieldTrialsView const& key_value_config, bool send_side);
99 // NOLINTEND
100
101public:
102 // destructor thunk
103 // NOLINTBEGIN
104 MCNAPI void $dtor();
105 // NOLINTEND
106};
107
108} // namespace webrtc
MCAPI bool TimeToReduceFurther(::webrtc::Timestamp at_time, ::webrtc::DataRate estimated_throughput) const
MCAPI bool ValidEstimate() const
MCAPI void SetMinBitrate(::webrtc::DataRate min_bitrate)
MCAPI void SetInApplicationLimitedRegion(bool in_alr)
MCAPI void ChangeBitrate(::webrtc::RateControlInput const &input, ::webrtc::Timestamp at_time)
MCAPI::webrtc::TimeDelta GetExpectedBandwidthPeriod() const
MCAPI void SetEstimate(::webrtc::DataRate bitrate, ::webrtc::Timestamp at_time)
MCAPI void SetRtt(::webrtc::TimeDelta rtt)
MCAPI::webrtc::DataRate LatestEstimate() const
MCAPI double GetNearMaxIncreaseRateBpsPerSecond() const
MCAPI void SetStartBitrate(::webrtc::DataRate start_bitrate)
MCAPI bool InitialTimeToReduceFurther(::webrtc::Timestamp at_time) const
MCAPI::webrtc::DataRate ClampBitrate(::webrtc::DataRate new_bitrate) const
MCAPI void SetNetworkStateEstimate(::std::optional<::webrtc::NetworkStateEstimate > const &estimate)
MCAPI::webrtc::DataRate Update(::webrtc::RateControlInput const &input, ::webrtc::Timestamp at_time)
MCAPI void * $ctor(::webrtc::FieldTrialsView const &key_value_config, bool send_side)
MCAPI AimdRateControl(::webrtc::FieldTrialsView const &key_value_config, bool send_side)
Definition DataRate.h:10
Definition FieldTrialsView.h:7
Definition TimeDelta.h:10
Definition Timestamp.h:15
Definition Alias.h:14
Definition NetworkStateEstimate.h:7
Definition RateControlInput.h:15