Report frame qp to quality scaler via overuse module


Bug: webrtc:11222
Change-Id: I63938adf5f623429eab1bcd668cde8fa5a1a083a
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/167924
Commit-Queue: Henrik Boström <hbos@webrtc.org>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30435}
diff --git a/call/adaptation/resource_adaptation_module_interface.h b/call/adaptation/resource_adaptation_module_interface.h
index 3a3deb2..52b0760 100644
--- a/call/adaptation/resource_adaptation_module_interface.h
+++ b/call/adaptation/resource_adaptation_module_interface.h
@@ -122,9 +122,8 @@
   // 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<int> 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 e73f7fa..3fd2204 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::OnEncodeCompleted(
-    uint32_t timestamp,
+    const EncodedImage& encoded_image,
     int64_t time_sent_in_us,
-    int64_t capture_time_us,
     absl::optional<int> 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 2bb05f9..8cc8242 100644
--- a/video/overuse_frame_detector_resource_adaptation_module.h
+++ b/video/overuse_frame_detector_resource_adaptation_module.h
@@ -81,9 +81,8 @@
   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<int> 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 7ec659d..335532c 100644
--- a/video/video_stream_encoder.cc
+++ b/video/video_stream_encoder.cc
@@ -1762,13 +1762,8 @@
     }
   }
 
-  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);
   }