#include "modules/pacing/bitrate_prober.h"
#include <algorithm>
#include "api/field_trials_view.h"
#include "api/units/data_size.h"
#include "api/units/time_delta.h"
#include "rtc_base/checks.h"
#include "rtc_base/logging.h"
namespace webrtc {
namespace {
constexpr TimeDelta kProbeClusterTimeout = …;
constexpr size_t kMaxPendingProbeClusters = …;
}
BitrateProberConfig::BitrateProberConfig(
const FieldTrialsView* key_value_config)
: … { … }
BitrateProber::BitrateProber(const FieldTrialsView& field_trials)
: … { … }
void BitrateProber::SetEnabled(bool enable) { … }
void BitrateProber::SetAllowProbeWithoutMediaPacket(bool allow) { … }
void BitrateProber::MaybeSetActiveState(DataSize packet_size) { … }
bool BitrateProber::ReadyToSetActiveState(DataSize packet_size) const { … }
void BitrateProber::OnIncomingPacket(DataSize packet_size) { … }
void BitrateProber::CreateProbeCluster(
const ProbeClusterConfig& cluster_config) { … }
Timestamp BitrateProber::NextProbeTime(Timestamp now) const { … }
absl::optional<PacedPacketInfo> BitrateProber::CurrentCluster(Timestamp now) { … }
DataSize BitrateProber::RecommendedMinProbeSize() const { … }
void BitrateProber::ProbeSent(Timestamp now, DataSize size) { … }
Timestamp BitrateProber::CalculateNextProbeTime(
const ProbeCluster& cluster) const { … }
}