Account for simulcast hysteresis in padding rate calculation.
Bug: webrtc:10271
Change-Id: If0b0eb7d94fb1c892880ff4745f34c43fcdeee54
Reviewed-on: https://webrtc-review.googlesource.com/c/120661
Commit-Queue: Rasmus Brandt <brandtr@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26527}
diff --git a/rtc_base/experiments/rate_control_settings.h b/rtc_base/experiments/rate_control_settings.h
index cbc2e69..e7dc868 100644
--- a/rtc_base/experiments/rate_control_settings.h
+++ b/rtc_base/experiments/rate_control_settings.h
@@ -13,6 +13,8 @@
#include "absl/types/optional.h"
#include "api/transport/webrtc_key_value_config.h"
+#include "api/video_codecs/video_codec.h"
+#include "api/video_codecs/video_encoder_config.h"
#include "rtc_base/experiments/field_trial_parser.h"
#include "rtc_base/experiments/field_trial_units.h"
@@ -41,8 +43,11 @@
bool LibvpxVp8TrustedRateController() const;
bool LibvpxVp9TrustedRateController() const;
- double GetSimulcastVideoHysteresisFactor() const;
- double GetSimulcastScreenshareHysteresisFactor() const;
+ // TODO(bugs.webrtc.org/10272): Remove one of these when we have merged
+ // VideoCodecMode and VideoEncoderConfig::ContentType.
+ double GetSimulcastHysteresisFactor(VideoCodecMode mode) const;
+ double GetSimulcastHysteresisFactor(
+ VideoEncoderConfig::ContentType content_type) const;
bool TriggerProbeOnMaxAllocatedBitrateChange() const;
@@ -50,6 +55,9 @@
explicit RateControlSettings(
const WebRtcKeyValueConfig* const key_value_config);
+ double GetSimulcastVideoHysteresisFactor() const;
+ double GetSimulcastScreenshareHysteresisFactor() const;
+
FieldTrialOptional<int> congestion_window_;
FieldTrialOptional<int> congestion_window_pushback_;
FieldTrialOptional<double> pacing_factor_;