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
48 // NOLINTEND
49
50public:
51 // prevent constructor by default
52 AimdRateControl& operator=(AimdRateControl const&);
53 AimdRateControl(AimdRateControl const&);
54 AimdRateControl();
55
56public:
57 // member functions
58 // NOLINTBEGIN
59 MCNAPI AimdRateControl(::webrtc::FieldTrialsView const& key_value_config, bool send_side);
60
62
63 MCNAPI ::webrtc::DataRate ClampBitrate(::webrtc::DataRate new_bitrate) const;
64
65 MCNAPI ::webrtc::TimeDelta GetExpectedBandwidthPeriod() const;
66
68
70
71 MCNAPI ::webrtc::DataRate LatestEstimate() const;
72
73 MCNAPI void SetEstimate(::webrtc::DataRate bitrate, ::webrtc::Timestamp at_time);
74
75 MCNAPI void SetInApplicationLimitedRegion(bool in_alr);
76
77 MCNAPI void SetMinBitrate(::webrtc::DataRate min_bitrate);
78
79 MCNAPI void SetNetworkStateEstimate(::std::optional<::webrtc::NetworkStateEstimate> const& estimate);
80
81 MCNAPI void SetRtt(::webrtc::TimeDelta rtt);
82
83 MCNAPI void SetStartBitrate(::webrtc::DataRate start_bitrate);
84
85 MCNAPI bool TimeToReduceFurther(::webrtc::Timestamp at_time, ::webrtc::DataRate estimated_throughput) const;
86
87 MCNAPI ::webrtc::DataRate Update(::webrtc::RateControlInput const& input, ::webrtc::Timestamp at_time);
88
89 MCNAPI bool ValidEstimate() const;
90
92 // NOLINTEND
93
94public:
95 // constructor thunks
96 // NOLINTBEGIN
97 MCNAPI void* $ctor(::webrtc::FieldTrialsView const& key_value_config, bool send_side);
98 // NOLINTEND
99
100public:
101 // destructor thunk
102 // NOLINTBEGIN
103 MCNAPI void $dtor();
104 // NOLINTEND
105};
106
107} // 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