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
|
// 3. The frame has successfully completed encoding. Next up: The encoded
|
||||||
// frame is dropped or packetized and sent over the network. There is
|
// frame is dropped or packetized and sent over the network. There is
|
||||||
// currently no signal what happens beyond this point.
|
// 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 time_sent_in_us,
|
||||||
int64_t capture_time_us,
|
|
||||||
absl::optional<int> encode_duration_us) = 0;
|
absl::optional<int> encode_duration_us) = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -470,14 +470,18 @@ void OveruseFrameDetectorResourceAdaptationModule::OnEncodeStarted(
|
|||||||
}
|
}
|
||||||
|
|
||||||
void OveruseFrameDetectorResourceAdaptationModule::OnEncodeCompleted(
|
void OveruseFrameDetectorResourceAdaptationModule::OnEncodeCompleted(
|
||||||
uint32_t timestamp,
|
const EncodedImage& encoded_image,
|
||||||
int64_t time_sent_in_us,
|
int64_t time_sent_in_us,
|
||||||
int64_t capture_time_us,
|
|
||||||
absl::optional<int> encode_duration_us) {
|
absl::optional<int> encode_duration_us) {
|
||||||
// TODO(hbos): Rename FrameSent() to something more appropriate (e.g.
|
// TODO(hbos): Rename FrameSent() to something more appropriate (e.g.
|
||||||
// "OnEncodeCompleted"?).
|
// "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,
|
overuse_detector_->FrameSent(timestamp, time_sent_in_us, capture_time_us,
|
||||||
encode_duration_us);
|
encode_duration_us);
|
||||||
|
if (quality_scaler_ && encoded_image.qp_ >= 0)
|
||||||
|
quality_scaler_->ReportQp(encoded_image.qp_, time_sent_in_us);
|
||||||
}
|
}
|
||||||
|
|
||||||
void OveruseFrameDetectorResourceAdaptationModule::UpdateQualityScalerSettings(
|
void OveruseFrameDetectorResourceAdaptationModule::UpdateQualityScalerSettings(
|
||||||
|
@ -81,9 +81,8 @@ class OveruseFrameDetectorResourceAdaptationModule
|
|||||||
void OnFrameDroppedDueToSize() override;
|
void OnFrameDroppedDueToSize() override;
|
||||||
void OnEncodeStarted(const VideoFrame& cropped_frame,
|
void OnEncodeStarted(const VideoFrame& cropped_frame,
|
||||||
int64_t time_when_first_seen_us) override;
|
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 time_sent_in_us,
|
||||||
int64_t capture_time_us,
|
|
||||||
absl::optional<int> encode_duration_us) override;
|
absl::optional<int> encode_duration_us) override;
|
||||||
|
|
||||||
// Use nullopt to disable quality scaling.
|
// Use nullopt to disable quality scaling.
|
||||||
|
@ -1762,13 +1762,8 @@ void VideoStreamEncoder::RunPostEncode(const EncodedImage& encoded_image,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
resource_adaptation_module_->OnEncodeCompleted(
|
resource_adaptation_module_->OnEncodeCompleted(encoded_image, time_sent_us,
|
||||||
encoded_image.Timestamp(), time_sent_us,
|
encode_duration_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);
|
|
||||||
if (bitrate_adjuster_) {
|
if (bitrate_adjuster_) {
|
||||||
bitrate_adjuster_->OnEncodedFrame(encoded_image, temporal_index);
|
bitrate_adjuster_->OnEncodedFrame(encoded_image, temporal_index);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user