diff --git a/video/adaptation/video_stream_encoder_resource_manager.cc b/video/adaptation/video_stream_encoder_resource_manager.cc index 7461d4f123..16c8b3d5b3 100644 --- a/video/adaptation/video_stream_encoder_resource_manager.cc +++ b/video/adaptation/video_stream_encoder_resource_manager.cc @@ -336,10 +336,12 @@ VideoStreamEncoderResourceManager::degradation_preference() const { return degradation_preference_; } -void VideoStreamEncoderResourceManager::StartEncodeUsageResource() { +void VideoStreamEncoderResourceManager::EnsureEncodeUsageResourceStarted() { RTC_DCHECK_RUN_ON(encoder_queue_); - RTC_DCHECK(!encode_usage_resource_->is_started()); RTC_DCHECK(encoder_settings_.has_value()); + if (encode_usage_resource_->is_started()) { + encode_usage_resource_->StopCheckForOveruse(); + } encode_usage_resource_->StartCheckForOveruse(GetCpuOveruseOptions()); } diff --git a/video/adaptation/video_stream_encoder_resource_manager.h b/video/adaptation/video_stream_encoder_resource_manager.h index a0a53eafc9..10d0e66c1c 100644 --- a/video/adaptation/video_stream_encoder_resource_manager.h +++ b/video/adaptation/video_stream_encoder_resource_manager.h @@ -89,9 +89,7 @@ class VideoStreamEncoderResourceManager void SetDegradationPreferences(DegradationPreference degradation_preference); DegradationPreference degradation_preference() const; - // Starts the encode usage resource. The quality scaler resource is - // automatically started on being configured. - void StartEncodeUsageResource(); + void EnsureEncodeUsageResourceStarted(); // Stops the encode usage and quality scaler resources if not already stopped. void StopManagedResources(); diff --git a/video/video_stream_encoder.cc b/video/video_stream_encoder.cc index 2e9e453c78..e64e1e92ef 100644 --- a/video/video_stream_encoder.cc +++ b/video/video_stream_encoder.cc @@ -841,8 +841,7 @@ void VideoStreamEncoder::ReconfigureEncoder() { // We may be able to change this to "EnsureStarted()" if it took care of // reconfiguring the QualityScaler as well. (ConfigureQualityScaler() is // invoked later in this method.) - stream_resource_manager_.StopManagedResources(); - stream_resource_manager_.StartEncodeUsageResource(); + stream_resource_manager_.EnsureEncodeUsageResourceStarted(); pending_encoder_creation_ = false; }