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}
This commit is contained in:

committed by
Commit Bot

parent
8ad9e74d62
commit
bfe3ef8feb
@ -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<int> encode_duration_us) = 0;
|
||||
};
|
||||
|
||||
|
@ -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<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(
|
||||
|
@ -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<int> encode_duration_us) override;
|
||||
|
||||
// Use nullopt to disable quality scaling.
|
||||
|
@ -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);
|
||||
}
|
||||
|
Reference in New Issue
Block a user