diff --git a/video/adaptation/BUILD.gn b/video/adaptation/BUILD.gn index 50c36101ce..b88fe92b74 100644 --- a/video/adaptation/BUILD.gn +++ b/video/adaptation/BUILD.gn @@ -29,6 +29,7 @@ rtc_library("video_adaptation") { "../../api:scoped_refptr", "../../api/adaptation:resource_adaptation_api", "../../api/task_queue:task_queue", + "../../api/units:data_rate", "../../api/video:video_adaptation", "../../api/video:video_frame", "../../api/video:video_stream_encoder", diff --git a/video/adaptation/quality_rampup_experiment_helper.cc b/video/adaptation/quality_rampup_experiment_helper.cc index 1e04e5578e..6d82503fc6 100644 --- a/video/adaptation/quality_rampup_experiment_helper.cc +++ b/video/adaptation/quality_rampup_experiment_helper.cc @@ -45,20 +45,20 @@ QualityRampUpExperimentHelper::CreateIfEnabled( void QualityRampUpExperimentHelper::PerformQualityRampupExperiment( rtc::scoped_refptr quality_scaler_resource, - uint32_t bw_kbps, - uint32_t encoder_target_bitrate, - uint32_t max_bitrate_bps, + DataRate bandwidth, + DataRate encoder_target_bitrate, + DataRate max_bitrate, int pixels) { if (!quality_scaler_resource->is_started()) return; int64_t now_ms = clock_->TimeInMilliseconds(); - quality_rampup_experiment_.SetMaxBitrate(pixels, max_bitrate_bps); + quality_rampup_experiment_.SetMaxBitrate(pixels, max_bitrate.kbps()); bool try_quality_rampup = false; - if (quality_rampup_experiment_.BwHigh(now_ms, bw_kbps)) { + if (quality_rampup_experiment_.BwHigh(now_ms, bandwidth.kbps())) { // Verify that encoder is at max bitrate and the QP is low. - if (encoder_target_bitrate == max_bitrate_bps * 1000 && + if (encoder_target_bitrate == max_bitrate && quality_scaler_resource->QpFastFilterLow()) { try_quality_rampup = true; } diff --git a/video/adaptation/quality_rampup_experiment_helper.h b/video/adaptation/quality_rampup_experiment_helper.h index 8b6a7e0ae3..81be982e7c 100644 --- a/video/adaptation/quality_rampup_experiment_helper.h +++ b/video/adaptation/quality_rampup_experiment_helper.h @@ -14,6 +14,7 @@ #include #include "api/scoped_refptr.h" +#include "api/units/data_rate.h" #include "rtc_base/experiments/quality_rampup_experiment.h" #include "system_wrappers/include/clock.h" #include "video/adaptation/quality_scaler_resource.h" @@ -45,9 +46,9 @@ class QualityRampUpExperimentHelper { void PerformQualityRampupExperiment( rtc::scoped_refptr quality_scaler_resource, - uint32_t bw_kbps, - uint32_t encoder_target_bitrate, - uint32_t max_bitrate_bps, + DataRate bandwidth, + DataRate encoder_target_bitrate, + DataRate max_bitrate, int pixels); private: diff --git a/video/adaptation/video_stream_encoder_resource_manager.cc b/video/adaptation/video_stream_encoder_resource_manager.cc index 2dfcc16440..450b10f8bc 100644 --- a/video/adaptation/video_stream_encoder_resource_manager.cc +++ b/video/adaptation/video_stream_encoder_resource_manager.cc @@ -487,13 +487,13 @@ void VideoStreamEncoderResourceManager::OnMaybeEncodeFrame() { RTC_DCHECK_RUN_ON(encoder_queue_); initial_frame_dropper_->OnMaybeEncodeFrame(); if (quality_rampup_experiment_) { - uint32_t bw_kbps = encoder_rates_.has_value() - ? encoder_rates_.value().bandwidth_allocation.kbps() - : 0; + DataRate bandwidth = encoder_rates_.has_value() + ? encoder_rates_->bandwidth_allocation + : DataRate::Zero(); quality_rampup_experiment_->PerformQualityRampupExperiment( - quality_scaler_resource_, bw_kbps, - encoder_target_bitrate_bps_.value_or(0), - encoder_settings_->video_codec().maxBitrate, + quality_scaler_resource_, bandwidth, + DataRate::BitsPerSec(encoder_target_bitrate_bps_.value_or(0)), + DataRate::KilobitsPerSec(encoder_settings_->video_codec().maxBitrate), LastInputFrameSizeOrDefault()); } }