BalancedDegradationSettings: add option to configure no fps limit.
If configuring max valid framerate (100), no framerate restriction is used (std::numeric_limits<int>::max()). E.g. pixels:1000|2000,fps:5|10 is same as pixels:1000|2000|3000,fps:5|10|100 Bug: none Change-Id: Ie981841ee8e23cb73c0ef55738ca69055916d902 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/148980 Commit-Queue: Åsa Persson <asapersson@webrtc.org> Reviewed-by: Magnus Flodman <mflodman@webrtc.org> Cr-Commit-Position: refs/heads/master@{#28854}
This commit is contained in:
@ -21,7 +21,7 @@ namespace webrtc {
|
||||
namespace {
|
||||
constexpr char kFieldTrial[] = "WebRTC-Video-BalancedDegradationSettings";
|
||||
constexpr int kMinFps = 1;
|
||||
constexpr int kMaxFps = 100;
|
||||
constexpr int kMaxFps = 100; // 100 means unlimited fps.
|
||||
|
||||
std::vector<BalancedDegradationSettings::Config> DefaultConfigs() {
|
||||
return {{320 * 240, 7, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}},
|
||||
@ -164,7 +164,9 @@ int GetFps(VideoCodecType type,
|
||||
break;
|
||||
}
|
||||
|
||||
return fps.value_or(config->fps);
|
||||
const int framerate = fps.value_or(config->fps);
|
||||
|
||||
return (framerate == kMaxFps) ? std::numeric_limits<int>::max() : framerate;
|
||||
}
|
||||
} // namespace
|
||||
|
||||
|
||||
@ -208,6 +208,18 @@ TEST(BalancedDegradationSettings, GetsGenericFps) {
|
||||
settings.MaxFps(kVideoCodecGeneric, 3000));
|
||||
}
|
||||
|
||||
TEST(BalancedDegradationSettings, GetsUnlimitedForMaxValidFps) {
|
||||
webrtc::test::ScopedFieldTrials field_trials(
|
||||
"WebRTC-Video-BalancedDegradationSettings/"
|
||||
"pixels:1000|2000|3000,fps:5|15|100,vp8_fps:30|100|100/");
|
||||
const int kUnlimitedFps = std::numeric_limits<int>::max();
|
||||
BalancedDegradationSettings settings;
|
||||
EXPECT_EQ(15, settings.MinFps(kVideoCodecH264, 2000));
|
||||
EXPECT_EQ(kUnlimitedFps, settings.MinFps(kVideoCodecH264, 2001));
|
||||
EXPECT_EQ(30, settings.MinFps(kVideoCodecVP8, 1000));
|
||||
EXPECT_EQ(kUnlimitedFps, settings.MinFps(kVideoCodecVP8, 1001));
|
||||
}
|
||||
|
||||
TEST(BalancedDegradationSettings, QpThresholdsNotSetByDefault) {
|
||||
webrtc::test::ScopedFieldTrials field_trials(
|
||||
"WebRTC-Video-BalancedDegradationSettings/"
|
||||
|
||||
Reference in New Issue
Block a user