Fix race when checking for field trial from the encoder queue.

Bug: webrtc:13633
Change-Id: I9eed5b849ad8b9d739261a119b8bffb3033951be
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/249948
Commit-Queue: Tomas Gunnarsson <tommi@webrtc.org>
Auto-Submit: Tomas Gunnarsson <tommi@webrtc.org>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Commit-Queue: Henrik Boström <hbos@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#35849}
This commit is contained in:
Tommi 2022-01-31 11:35:14 +01:00 committed by WebRTC LUCI CQ
parent dda828f707
commit a8b63626ca
2 changed files with 5 additions and 1 deletions

View File

@ -288,6 +288,8 @@ VideoStreamEncoderResourceManager::VideoStreamEncoderResourceManager(
initial_frame_dropper_( initial_frame_dropper_(
std::make_unique<InitialFrameDropper>(quality_scaler_resource_)), std::make_unique<InitialFrameDropper>(quality_scaler_resource_)),
quality_scaling_experiment_enabled_(QualityScalingExperiment::Enabled()), quality_scaling_experiment_enabled_(QualityScalingExperiment::Enabled()),
pixel_limit_resource_experiment_enabled_(
field_trial::IsEnabled(kPixelLimitResourceFieldTrialName)),
encoder_target_bitrate_bps_(absl::nullopt), encoder_target_bitrate_bps_(absl::nullopt),
quality_rampup_experiment_( quality_rampup_experiment_(
QualityRampUpExperimentHelper::CreateIfEnabled(this, clock_)), QualityRampUpExperimentHelper::CreateIfEnabled(this, clock_)),
@ -350,7 +352,7 @@ void VideoStreamEncoderResourceManager::MaybeInitializePixelLimitResource() {
RTC_DCHECK_RUN_ON(encoder_queue_); RTC_DCHECK_RUN_ON(encoder_queue_);
RTC_DCHECK(adaptation_processor_); RTC_DCHECK(adaptation_processor_);
RTC_DCHECK(!pixel_limit_resource_); RTC_DCHECK(!pixel_limit_resource_);
if (!field_trial::IsEnabled(kPixelLimitResourceFieldTrialName)) { if (!pixel_limit_resource_experiment_enabled_) {
// The field trial is not running. // The field trial is not running.
return; return;
} }

View File

@ -213,6 +213,8 @@ class VideoStreamEncoderResourceManager
const std::unique_ptr<InitialFrameDropper> initial_frame_dropper_ const std::unique_ptr<InitialFrameDropper> initial_frame_dropper_
RTC_GUARDED_BY(encoder_queue_); RTC_GUARDED_BY(encoder_queue_);
const bool quality_scaling_experiment_enabled_ RTC_GUARDED_BY(encoder_queue_); const bool quality_scaling_experiment_enabled_ RTC_GUARDED_BY(encoder_queue_);
const bool pixel_limit_resource_experiment_enabled_
RTC_GUARDED_BY(encoder_queue_);
absl::optional<uint32_t> encoder_target_bitrate_bps_ absl::optional<uint32_t> encoder_target_bitrate_bps_
RTC_GUARDED_BY(encoder_queue_); RTC_GUARDED_BY(encoder_queue_);
absl::optional<VideoEncoder::RateControlParameters> encoder_rates_ absl::optional<VideoEncoder::RateControlParameters> encoder_rates_