Add configuration of new cpu load estimator via field trials.
Field trial overrides setting via RTCConfiguration. Bug: None Change-Id: Id7b2aa9c533fe20f2870edd589bb169946cc4936 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/133568 Reviewed-by: Sebastian Jansson <srte@webrtc.org> Reviewed-by: Erik Språng <sprang@webrtc.org> Commit-Queue: Niels Moller <nisse@webrtc.org> Cr-Commit-Position: refs/heads/master@{#27757}
This commit is contained in:
parent
c9a2c5e93a
commit
eea9288367
@ -205,6 +205,7 @@ rtc_source_set("video_stream_encoder_impl") {
|
||||
"../rtc_base:rtc_task_queue",
|
||||
"../rtc_base:timeutils",
|
||||
"../rtc_base/experiments:alr_experiment",
|
||||
"../rtc_base/experiments:field_trial_parser",
|
||||
"../rtc_base/experiments:quality_scaling_experiment",
|
||||
"../rtc_base/experiments:rate_control_settings",
|
||||
"../rtc_base/synchronization:sequence_checker",
|
||||
|
||||
@ -533,6 +533,8 @@ OveruseFrameDetector::OveruseFrameDetector(
|
||||
in_quick_rampup_(false),
|
||||
current_rampup_delay_ms_(kStandardRampUpDelayMs) {
|
||||
task_checker_.Detach();
|
||||
ParseFieldTrial({&filter_time_constant_},
|
||||
field_trial::FindFullName("WebRTC-CpuLoadEstimator"));
|
||||
}
|
||||
|
||||
OveruseFrameDetector::~OveruseFrameDetector() {}
|
||||
@ -683,6 +685,11 @@ void OveruseFrameDetector::CheckForOveruse(
|
||||
void OveruseFrameDetector::SetOptions(const CpuOveruseOptions& options) {
|
||||
RTC_DCHECK_RUN_ON(&task_checker_);
|
||||
options_ = options;
|
||||
|
||||
// Time constant config overridable by field trial.
|
||||
if (filter_time_constant_) {
|
||||
options_.filter_time_ms = filter_time_constant_->ms();
|
||||
}
|
||||
// Force reset with next frame.
|
||||
num_pixels_ = 0;
|
||||
usage_ = CreateProcessingUsage(options);
|
||||
|
||||
@ -18,6 +18,7 @@
|
||||
#include "api/video/video_stream_encoder_observer.h"
|
||||
#include "modules/video_coding/utility/quality_scaler.h"
|
||||
#include "rtc_base/constructor_magic.h"
|
||||
#include "rtc_base/experiments/field_trial_parser.h"
|
||||
#include "rtc_base/numerics/exp_filter.h"
|
||||
#include "rtc_base/synchronization/sequence_checker.h"
|
||||
#include "rtc_base/task_queue.h"
|
||||
@ -146,6 +147,9 @@ class OveruseFrameDetector {
|
||||
|
||||
std::unique_ptr<ProcessingUsage> usage_ RTC_PT_GUARDED_BY(task_checker_);
|
||||
|
||||
// If set by field trial, overrides CpuOveruseOptions::filter_time_ms.
|
||||
FieldTrialOptional<TimeDelta> filter_time_constant_{"tau"};
|
||||
|
||||
RTC_DISALLOW_COPY_AND_ASSIGN(OveruseFrameDetector);
|
||||
};
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user