#include "modules/remote_bitrate_estimator/remote_bitrate_estimator_single_stream.h"
#include <cstdint>
#include <utility>
#include "absl/base/nullability.h"
#include "absl/types/optional.h"
#include "api/environment/environment.h"
#include "modules/remote_bitrate_estimator/aimd_rate_control.h"
#include "modules/remote_bitrate_estimator/include/bwe_defines.h"
#include "modules/remote_bitrate_estimator/inter_arrival.h"
#include "modules/remote_bitrate_estimator/overuse_detector.h"
#include "modules/remote_bitrate_estimator/overuse_estimator.h"
#include "modules/rtp_rtcp/source/rtp_header_extensions.h"
#include "modules/rtp_rtcp/source/rtp_packet_received.h"
#include "rtc_base/checks.h"
#include "rtc_base/logging.h"
#include "system_wrappers/include/clock.h"
#include "system_wrappers/include/metrics.h"
namespace webrtc {
namespace {
constexpr int kTimestampGroupLengthMs = …;
constexpr double kTimestampToMs = …;
}
RemoteBitrateEstimatorSingleStream::Detector::Detector()
: … { … }
RemoteBitrateEstimatorSingleStream::RemoteBitrateEstimatorSingleStream(
const Environment& env,
absl::Nonnull<RemoteBitrateObserver*> observer)
: … { … }
RemoteBitrateEstimatorSingleStream::~RemoteBitrateEstimatorSingleStream() =
default;
void RemoteBitrateEstimatorSingleStream::IncomingPacket(
const RtpPacketReceived& rtp_packet) { … }
TimeDelta RemoteBitrateEstimatorSingleStream::Process() { … }
void RemoteBitrateEstimatorSingleStream::UpdateEstimate(Timestamp now) { … }
void RemoteBitrateEstimatorSingleStream::OnRttUpdate(int64_t avg_rtt_ms,
int64_t max_rtt_ms) { … }
void RemoteBitrateEstimatorSingleStream::RemoveStream(uint32_t ssrc) { … }
DataRate RemoteBitrateEstimatorSingleStream::LatestEstimate() const { … }
std::vector<uint32_t> RemoteBitrateEstimatorSingleStream::GetSsrcs() const { … }
}