mirror of
https://github.com/mollyim/webrtc.git
synced 2025-05-20 00:57:49 +01:00
Add field trial config to disable pacer emergency stops.
Bug: none Change-Id: Ie92c4ef82e5ce3e222ec85df21acfb233b16b85d Reviewed-on: https://webrtc-review.googlesource.com/c/111883 Reviewed-by: Sebastian Jansson <srte@webrtc.org> Commit-Queue: Christoffer Rodbro <crodbro@webrtc.org> Cr-Commit-Position: refs/heads/master@{#25767}
This commit is contained in:
parent
6d254bcd5e
commit
b357e54dd5
2 changed files with 15 additions and 8 deletions
|
@ -20,18 +20,23 @@ namespace {
|
|||
|
||||
// When PacerPushbackExperiment is enabled, build-up in the pacer due to
|
||||
// the congestion window and/or data spikes reduces encoder allocations.
|
||||
const char kPacerPushbackExperiment[] = "WebRTC-PacerPushbackExperiment";
|
||||
|
||||
bool IsPacerPushbackExperimentEnabled() {
|
||||
return field_trial::IsEnabled(kPacerPushbackExperiment);
|
||||
return field_trial::IsEnabled("WebRTC-PacerPushbackExperiment");
|
||||
}
|
||||
|
||||
// By default, pacer emergency stops encoder when buffer reaches a high level.
|
||||
bool IsPacerEmergencyStopDisabled() {
|
||||
return field_trial::IsEnabled("WebRTC-DisablePacerEmergencyStop");
|
||||
}
|
||||
|
||||
} // namespace
|
||||
CongestionControlHandler::CongestionControlHandler(
|
||||
NetworkChangedObserver* observer,
|
||||
PacedSender* pacer)
|
||||
: observer_(observer),
|
||||
pacer_(pacer),
|
||||
pacer_pushback_experiment_(IsPacerPushbackExperimentEnabled()) {
|
||||
pacer_pushback_experiment_(IsPacerPushbackExperimentEnabled()),
|
||||
disable_pacer_emergency_stop_(IsPacerEmergencyStopDisabled()) {
|
||||
sequenced_checker_.Detach();
|
||||
}
|
||||
|
||||
|
@ -109,9 +114,7 @@ void CongestionControlHandler::OnNetworkInvalidation() {
|
|||
|
||||
if (!network_available_) {
|
||||
target_bitrate_bps = 0;
|
||||
} else if (!pacer_pushback_experiment_) {
|
||||
target_bitrate_bps = IsSendQueueFull() ? 0 : target_bitrate_bps;
|
||||
} else {
|
||||
} else if (pacer_pushback_experiment_) {
|
||||
int64_t queue_length_ms = pacer_expected_queue_ms_;
|
||||
|
||||
if (queue_length_ms == 0) {
|
||||
|
@ -124,7 +127,10 @@ void CongestionControlHandler::OnNetworkInvalidation() {
|
|||
|
||||
target_bitrate_bps *= encoding_rate_ratio_;
|
||||
target_bitrate_bps = target_bitrate_bps < 50000 ? 0 : target_bitrate_bps;
|
||||
} else if (!disable_pacer_emergency_stop_) {
|
||||
target_bitrate_bps = IsSendQueueFull() ? 0 : target_bitrate_bps;
|
||||
}
|
||||
|
||||
if (HasNetworkParametersToReportChanged(target_bitrate_bps, fraction_loss,
|
||||
rtt_ms)) {
|
||||
observer_->OnNetworkChanged(target_bitrate_bps, fraction_loss, rtt_ms,
|
||||
|
|
|
@ -59,7 +59,8 @@ class CongestionControlHandler {
|
|||
int64_t last_reported_target_bitrate_bps_ = 0;
|
||||
uint8_t last_reported_fraction_loss_ = 0;
|
||||
int64_t last_reported_rtt_ms_ = 0;
|
||||
const bool pacer_pushback_experiment_ = false;
|
||||
const bool pacer_pushback_experiment_;
|
||||
const bool disable_pacer_emergency_stop_;
|
||||
uint32_t min_pushback_target_bitrate_bps_;
|
||||
int64_t pacer_expected_queue_ms_ = 0;
|
||||
double encoding_rate_ratio_ = 1.0;
|
||||
|
|
Loading…
Reference in a new issue