#include "modules/congestion_controller/include/receive_side_congestion_controller.h"
#include <memory>
#include "absl/base/nullability.h"
#include "api/environment/environment.h"
#include "api/media_types.h"
#include "api/sequence_checker.h"
#include "api/units/data_rate.h"
#include "modules/remote_bitrate_estimator/congestion_control_feedback_generator.h"
#include "modules/remote_bitrate_estimator/remote_bitrate_estimator_abs_send_time.h"
#include "modules/remote_bitrate_estimator/remote_bitrate_estimator_single_stream.h"
#include "modules/remote_bitrate_estimator/transport_sequence_number_feedback_generator.h"
#include "modules/rtp_rtcp/source/rtp_header_extensions.h"
#include "rtc_base/logging.h"
namespace webrtc {
namespace {
static const uint32_t kTimeOffsetSwitchThreshold = …;
}
void ReceiveSideCongestionController::OnRttUpdate(int64_t avg_rtt_ms,
int64_t max_rtt_ms) { … }
void ReceiveSideCongestionController::RemoveStream(uint32_t ssrc) { … }
DataRate ReceiveSideCongestionController::LatestReceiveSideEstimate() const { … }
void ReceiveSideCongestionController::PickEstimator(
bool has_absolute_send_time) { … }
ReceiveSideCongestionController::ReceiveSideCongestionController(
const Environment& env,
TransportSequenceNumberFeedbackGenenerator::RtcpSender feedback_sender,
RembThrottler::RembSender remb_sender,
absl::Nullable<NetworkStateEstimator*> network_state_estimator)
: … { … }
void ReceiveSideCongestionController::
EnablSendCongestionControlFeedbackAccordingToRfc8888() { … }
void ReceiveSideCongestionController::OnReceivedPacket(
const RtpPacketReceived& packet,
MediaType media_type) { … }
void ReceiveSideCongestionController::OnBitrateChanged(int bitrate_bps) { … }
TimeDelta ReceiveSideCongestionController::MaybeProcess() { … }
void ReceiveSideCongestionController::SetMaxDesiredReceiveBitrate(
DataRate bitrate) { … }
void ReceiveSideCongestionController::SetTransportOverhead(
DataSize overhead_per_packet) { … }
}