Reland "Make the min video bitrate in VideoSendStream configurable."
This reverts commit 1d2149c59c2c1b2834b8cb7983ad56b213129a42. Reason for revert: The failed test is flaky recently. Original change's description: > Revert "Make the min video bitrate in VideoSendStream configurable." > > This reverts commit b2fb0b937ce97b4ccf6363d4f91620a7ab02e87e. > > Reason for revert: breaking downstream projects > > Original change's description: > > Make the min video bitrate in VideoSendStream configurable. > > > > "WebRTC-VP8-Forced-Fallback-Encoder-v2" affect VP8 only, "WebRTC-Video-MinVideoBitrate" apply to all codec. When both field trial string are set, the bitrate set by "WebRTC-VP8-Forced-Fallback-Encoder-v2" will be used. > > > > Bug: webrtc:10915 > > Change-Id: I63da5909c04ecfad99e93a535fbf71293890fd11 > > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/151135 > > Commit-Queue: Ying Wang <yinwa@webrtc.org> > > Reviewed-by: Åsa Persson <asapersson@webrtc.org> > > Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org> > > Reviewed-by: Christoffer Rodbro <crodbro@webrtc.org> > > Cr-Commit-Position: refs/heads/master@{#29047} > > TBR=ilnik@webrtc.org,asapersson@webrtc.org,crodbro@webrtc.org,yinwa@webrtc.org > > Change-Id: If61c18a36ac2778226da4d2631da1c18e7d4ef81 > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Bug: webrtc:10915 > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/151240 > Reviewed-by: Alessio Bazzica <alessiob@webrtc.org> > Commit-Queue: Alessio Bazzica <alessiob@webrtc.org> > Cr-Commit-Position: refs/heads/master@{#29049} TBR=ilnik@webrtc.org,alessiob@webrtc.org,asapersson@webrtc.org,crodbro@webrtc.org,yinwa@webrtc.org Change-Id: I8df97f7b8ecbea1215eef44d485c179dc4e6246c No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: webrtc:10915 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/151241 Reviewed-by: Ying Wang <yinwa@webrtc.org> Commit-Queue: Ying Wang <yinwa@webrtc.org> Cr-Commit-Position: refs/heads/master@{#29050}
This commit is contained in:
parent
1d2149c59c
commit
8c5520cfca
@ -328,10 +328,13 @@ absl::optional<int> GetFallbackMinBpsFromFieldTrial(
|
||||
}
|
||||
|
||||
int GetMinVideoBitrateBps(webrtc::VideoCodecType type) {
|
||||
if (GetFallbackMinBpsFromFieldTrial(type).has_value()) {
|
||||
return GetFallbackMinBpsFromFieldTrial(type).value();
|
||||
}
|
||||
if (webrtc::field_trial::IsEnabled(kMinVideoBitrateExperiment)) {
|
||||
return MinVideoBitrateConfig().min_video_bitrate->bps();
|
||||
}
|
||||
return GetFallbackMinBpsFromFieldTrial(type).value_or(kMinVideoBitrateBps);
|
||||
return kMinVideoBitrateBps;
|
||||
}
|
||||
} // namespace
|
||||
|
||||
|
||||
@ -55,7 +55,7 @@ struct MinVideoBitrateConfig {
|
||||
webrtc::FieldTrialParameter<webrtc::DataRate> min_video_bitrate;
|
||||
|
||||
MinVideoBitrateConfig()
|
||||
: min_video_bitrate("br", webrtc::DataRate::KilobitsPerSec<30>()) {
|
||||
: min_video_bitrate("br", webrtc::DataRate::bps(kMinVideoBitrateBps)) {
|
||||
webrtc::ParseFieldTrial(
|
||||
{&min_video_bitrate},
|
||||
webrtc::field_trial::FindFullName(kMinVideoBitrateExperiment));
|
||||
|
||||
@ -27,6 +27,7 @@
|
||||
#include "rtc_base/atomic_ops.h"
|
||||
#include "rtc_base/checks.h"
|
||||
#include "rtc_base/experiments/alr_experiment.h"
|
||||
#include "rtc_base/experiments/field_trial_parser.h"
|
||||
#include "rtc_base/experiments/rate_control_settings.h"
|
||||
#include "rtc_base/logging.h"
|
||||
#include "rtc_base/numerics/safe_conversions.h"
|
||||
@ -57,6 +58,21 @@ bool TransportSeqNumExtensionConfigured(const VideoSendStream::Config& config) {
|
||||
const char kForcedFallbackFieldTrial[] =
|
||||
"WebRTC-VP8-Forced-Fallback-Encoder-v2";
|
||||
|
||||
const int kDefaultEncoderMinBitrateBps = 30000;
|
||||
const char kMinVideoBitrateExperiment[] = "WebRTC-Video-MinVideoBitrate";
|
||||
|
||||
struct MinVideoBitrateConfig {
|
||||
webrtc::FieldTrialParameter<webrtc::DataRate> min_video_bitrate;
|
||||
|
||||
MinVideoBitrateConfig()
|
||||
: min_video_bitrate("br",
|
||||
webrtc::DataRate::bps(kDefaultEncoderMinBitrateBps)) {
|
||||
webrtc::ParseFieldTrial(
|
||||
{&min_video_bitrate},
|
||||
webrtc::field_trial::FindFullName(kMinVideoBitrateExperiment));
|
||||
}
|
||||
};
|
||||
|
||||
absl::optional<int> GetFallbackMinBpsFromFieldTrial(VideoCodecType type) {
|
||||
if (type != kVideoCodecVP8)
|
||||
return absl::nullopt;
|
||||
@ -84,9 +100,13 @@ absl::optional<int> GetFallbackMinBpsFromFieldTrial(VideoCodecType type) {
|
||||
}
|
||||
|
||||
int GetEncoderMinBitrateBps(VideoCodecType type) {
|
||||
const int kDefaultEncoderMinBitrateBps = 30000;
|
||||
return GetFallbackMinBpsFromFieldTrial(type).value_or(
|
||||
kDefaultEncoderMinBitrateBps);
|
||||
if (GetFallbackMinBpsFromFieldTrial(type).has_value()) {
|
||||
return GetFallbackMinBpsFromFieldTrial(type).value();
|
||||
}
|
||||
if (webrtc::field_trial::IsEnabled(kMinVideoBitrateExperiment)) {
|
||||
return MinVideoBitrateConfig().min_video_bitrate->bps();
|
||||
}
|
||||
return kDefaultEncoderMinBitrateBps;
|
||||
}
|
||||
|
||||
// Calculate max padding bitrate for a multi layer codec.
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user