diff --git a/call/adaptation/resource_adaptation_module_interface.h b/call/adaptation/resource_adaptation_module_interface.h index 3a3deb2499..52b07600ef 100644 --- a/call/adaptation/resource_adaptation_module_interface.h +++ b/call/adaptation/resource_adaptation_module_interface.h @@ -122,9 +122,8 @@ class ResourceAdaptationModuleInterface { // 3. The frame has successfully completed encoding. Next up: The encoded // frame is dropped or packetized and sent over the network. There is // currently no signal what happens beyond this point. - virtual void OnEncodeCompleted(uint32_t timestamp, + virtual void OnEncodeCompleted(const EncodedImage& encoded_image, int64_t time_sent_in_us, - int64_t capture_time_us, absl::optional encode_duration_us) = 0; }; diff --git a/video/overuse_frame_detector_resource_adaptation_module.cc b/video/overuse_frame_detector_resource_adaptation_module.cc index e73f7fa4d1..3fd220482b 100644 --- a/video/overuse_frame_detector_resource_adaptation_module.cc +++ b/video/overuse_frame_detector_resource_adaptation_module.cc @@ -470,14 +470,18 @@ void OveruseFrameDetectorResourceAdaptationModule::OnEncodeStarted( } void OveruseFrameDetectorResourceAdaptationModule::OnEncodeCompleted( - uint32_t timestamp, + const EncodedImage& encoded_image, int64_t time_sent_in_us, - int64_t capture_time_us, absl::optional encode_duration_us) { // TODO(hbos): Rename FrameSent() to something more appropriate (e.g. // "OnEncodeCompleted"?). + uint32_t timestamp = encoded_image.Timestamp(); + int64_t capture_time_us = + encoded_image.capture_time_ms_ * rtc::kNumMicrosecsPerMillisec; overuse_detector_->FrameSent(timestamp, time_sent_in_us, capture_time_us, encode_duration_us); + if (quality_scaler_ && encoded_image.qp_ >= 0) + quality_scaler_->ReportQp(encoded_image.qp_, time_sent_in_us); } void OveruseFrameDetectorResourceAdaptationModule::UpdateQualityScalerSettings( diff --git a/video/overuse_frame_detector_resource_adaptation_module.h b/video/overuse_frame_detector_resource_adaptation_module.h index 2bb05f9963..8cc8242014 100644 --- a/video/overuse_frame_detector_resource_adaptation_module.h +++ b/video/overuse_frame_detector_resource_adaptation_module.h @@ -81,9 +81,8 @@ class OveruseFrameDetectorResourceAdaptationModule void OnFrameDroppedDueToSize() override; void OnEncodeStarted(const VideoFrame& cropped_frame, int64_t time_when_first_seen_us) override; - void OnEncodeCompleted(uint32_t timestamp, + void OnEncodeCompleted(const EncodedImage& encoded_image, int64_t time_sent_in_us, - int64_t capture_time_us, absl::optional encode_duration_us) override; // Use nullopt to disable quality scaling. diff --git a/video/video_stream_encoder.cc b/video/video_stream_encoder.cc index 7ec659d837..335532cad1 100644 --- a/video/video_stream_encoder.cc +++ b/video/video_stream_encoder.cc @@ -1762,13 +1762,8 @@ void VideoStreamEncoder::RunPostEncode(const EncodedImage& encoded_image, } } - resource_adaptation_module_->OnEncodeCompleted( - encoded_image.Timestamp(), time_sent_us, - encoded_image.capture_time_ms_ * rtc::kNumMicrosecsPerMillisec, - encode_duration_us); - QualityScaler* quality_scaler = resource_adaptation_module_->quality_scaler(); - if (quality_scaler && encoded_image.qp_ >= 0) - quality_scaler->ReportQp(encoded_image.qp_, time_sent_us); + resource_adaptation_module_->OnEncodeCompleted(encoded_image, time_sent_us, + encode_duration_us); if (bitrate_adjuster_) { bitrate_adjuster_->OnEncodedFrame(encoded_image, temporal_index); }