Removes unused parameters of WebRTC-KeyframeInterval.

Bug: webrtc:12420
Change-Id: I2735cc11f2a558fea397566fc99fdb18f9295e05
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/212960
Commit-Queue: Erik Språng <sprang@webrtc.org>
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33552}
This commit is contained in:
Erik Språng 2021-03-24 15:18:57 +01:00 committed by Commit Bot
parent 90c3981773
commit ac732f6a13
5 changed files with 17 additions and 91 deletions

View file

@ -22,11 +22,8 @@ constexpr char kFieldTrialName[] = "WebRTC-KeyframeInterval";
KeyframeIntervalSettings::KeyframeIntervalSettings(
const WebRtcKeyValueConfig* const key_value_config)
: min_keyframe_send_interval_ms_("min_keyframe_send_interval_ms"),
max_wait_for_keyframe_ms_("max_wait_for_keyframe_ms"),
max_wait_for_frame_ms_("max_wait_for_frame_ms") {
ParseFieldTrial({&min_keyframe_send_interval_ms_, &max_wait_for_keyframe_ms_,
&max_wait_for_frame_ms_},
: min_keyframe_send_interval_ms_("min_keyframe_send_interval_ms") {
ParseFieldTrial({&min_keyframe_send_interval_ms_},
key_value_config->Lookup(kFieldTrialName));
}
@ -39,13 +36,4 @@ absl::optional<int> KeyframeIntervalSettings::MinKeyframeSendIntervalMs()
const {
return min_keyframe_send_interval_ms_.GetOptional();
}
absl::optional<int> KeyframeIntervalSettings::MaxWaitForKeyframeMs() const {
return max_wait_for_keyframe_ms_.GetOptional();
}
absl::optional<int> KeyframeIntervalSettings::MaxWaitForFrameMs() const {
return max_wait_for_frame_ms_.GetOptional();
}
} // namespace webrtc

View file

@ -17,6 +17,9 @@
namespace webrtc {
// TODO(bugs.webrtc.org/10427): Remove and replace with proper configuration
// parameter, or move to using FIR if intent is to avoid triggering multiple
// times to PLIs corresponding to the same request when RTT is large.
class KeyframeIntervalSettings final {
public:
static KeyframeIntervalSettings ParseFromFieldTrials();
@ -25,22 +28,11 @@ class KeyframeIntervalSettings final {
// The encoded keyframe send rate is <= 1/MinKeyframeSendIntervalMs().
absl::optional<int> MinKeyframeSendIntervalMs() const;
// Receiver side.
// The keyframe request send rate is
// - when we have not received a key frame at all:
// <= 1/MaxWaitForKeyframeMs()
// - when we have not received a frame recently:
// <= 1/MaxWaitForFrameMs()
absl::optional<int> MaxWaitForKeyframeMs() const;
absl::optional<int> MaxWaitForFrameMs() const;
private:
explicit KeyframeIntervalSettings(
const WebRtcKeyValueConfig* key_value_config);
FieldTrialOptional<int> min_keyframe_send_interval_ms_;
FieldTrialOptional<int> max_wait_for_keyframe_ms_;
FieldTrialOptional<int> max_wait_for_frame_ms_;
};
} // namespace webrtc

View file

@ -27,60 +27,16 @@ TEST(KeyframeIntervalSettingsTest, ParsesMinKeyframeSendIntervalMs) {
100);
}
TEST(KeyframeIntervalSettingsTest, ParsesMaxWaitForKeyframeMs) {
EXPECT_FALSE(
KeyframeIntervalSettings::ParseFromFieldTrials().MaxWaitForKeyframeMs());
test::ScopedFieldTrials field_trials(
"WebRTC-KeyframeInterval/max_wait_for_keyframe_ms:100/");
EXPECT_EQ(
KeyframeIntervalSettings::ParseFromFieldTrials().MaxWaitForKeyframeMs(),
100);
}
TEST(KeyframeIntervalSettingsTest, ParsesMaxWaitForFrameMs) {
EXPECT_FALSE(
KeyframeIntervalSettings::ParseFromFieldTrials().MaxWaitForFrameMs());
test::ScopedFieldTrials field_trials(
"WebRTC-KeyframeInterval/max_wait_for_frame_ms:100/");
EXPECT_EQ(
KeyframeIntervalSettings::ParseFromFieldTrials().MaxWaitForFrameMs(),
100);
}
TEST(KeyframeIntervalSettingsTest, ParsesAllValues) {
test::ScopedFieldTrials field_trials(
"WebRTC-KeyframeInterval/"
"min_keyframe_send_interval_ms:100,"
"max_wait_for_keyframe_ms:101,"
"max_wait_for_frame_ms:102/");
EXPECT_EQ(KeyframeIntervalSettings::ParseFromFieldTrials()
.MinKeyframeSendIntervalMs(),
100);
EXPECT_EQ(
KeyframeIntervalSettings::ParseFromFieldTrials().MaxWaitForKeyframeMs(),
101);
EXPECT_EQ(
KeyframeIntervalSettings::ParseFromFieldTrials().MaxWaitForFrameMs(),
102);
}
TEST(KeyframeIntervalSettingsTest, DoesNotParseAllValuesWhenIncorrectlySet) {
EXPECT_FALSE(
KeyframeIntervalSettings::ParseFromFieldTrials().MaxWaitForFrameMs());
test::ScopedFieldTrials field_trials(
"WebRTC-KeyframeInterval/"
"min_keyframe_send_interval_ms:a,"
"max_wait_for_keyframe_ms:b,"
"max_wait_for_frame_ms:c/");
TEST(KeyframeIntervalSettingsTest, DoesNotParseIncorrectValues) {
EXPECT_FALSE(KeyframeIntervalSettings::ParseFromFieldTrials()
.MinKeyframeSendIntervalMs());
test::ScopedFieldTrials field_trials(
"WebRTC-KeyframeInterval/min_keyframe_send_interval_ms:a/");
EXPECT_FALSE(KeyframeIntervalSettings::ParseFromFieldTrials()
.MinKeyframeSendIntervalMs());
EXPECT_FALSE(KeyframeIntervalSettings::ParseFromFieldTrials()
.MinKeyframeSendIntervalMs());
EXPECT_FALSE(
KeyframeIntervalSettings::ParseFromFieldTrials().MaxWaitForKeyframeMs());
EXPECT_FALSE(
KeyframeIntervalSettings::ParseFromFieldTrials().MaxWaitForFrameMs());
}
} // namespace

View file

@ -39,7 +39,6 @@
#include "modules/video_coding/timing.h"
#include "modules/video_coding/utility/vp8_header_parser.h"
#include "rtc_base/checks.h"
#include "rtc_base/experiments/keyframe_interval_settings.h"
#include "rtc_base/location.h"
#include "rtc_base/logging.h"
#include "rtc_base/strings/string_builder.h"
@ -220,12 +219,8 @@ VideoReceiveStream::VideoReceiveStream(
config_.frame_decryptor,
config_.frame_transformer),
rtp_stream_sync_(this),
max_wait_for_keyframe_ms_(KeyframeIntervalSettings::ParseFromFieldTrials()
.MaxWaitForKeyframeMs()
.value_or(kMaxWaitForKeyFrameMs)),
max_wait_for_frame_ms_(KeyframeIntervalSettings::ParseFromFieldTrials()
.MaxWaitForFrameMs()
.value_or(kMaxWaitForFrameMs)),
max_wait_for_keyframe_ms_(kMaxWaitForKeyFrameMs),
max_wait_for_frame_ms_(kMaxWaitForFrameMs),
decode_queue_(task_queue_factory_->CreateTaskQueue(
"DecodingQueue",
TaskQueueFactory::Priority::HIGH)) {

View file

@ -38,7 +38,6 @@
#include "modules/video_coding/timing.h"
#include "modules/video_coding/utility/vp8_header_parser.h"
#include "rtc_base/checks.h"
#include "rtc_base/experiments/keyframe_interval_settings.h"
#include "rtc_base/location.h"
#include "rtc_base/logging.h"
#include "rtc_base/strings/string_builder.h"
@ -226,12 +225,8 @@ VideoReceiveStream2::VideoReceiveStream2(
config_.frame_decryptor,
config_.frame_transformer),
rtp_stream_sync_(current_queue, this),
max_wait_for_keyframe_ms_(KeyframeIntervalSettings::ParseFromFieldTrials()
.MaxWaitForKeyframeMs()
.value_or(kMaxWaitForKeyFrameMs)),
max_wait_for_frame_ms_(KeyframeIntervalSettings::ParseFromFieldTrials()
.MaxWaitForFrameMs()
.value_or(kMaxWaitForFrameMs)),
max_wait_for_keyframe_ms_(kMaxWaitForKeyFrameMs),
max_wait_for_frame_ms_(kMaxWaitForFrameMs),
low_latency_renderer_enabled_("enabled", true),
low_latency_renderer_include_predecode_buffer_("include_predecode_buffer",
true),