video: Implement bandwidth based scaler
The |slice_qp_detla| reported by the hardware is not credible, which causing the quality scaler cannot work properly,the resolution cannot be adjusted correctly. To fix this issue, this CL implements a bandwidth scaler which is used for adjust resolution, this scaler will be used when QP based quality scaler is not working due to untrusted QP reported by HW AVC encoder. Bug: webrtc:12942 Change-Id: I2fc5f07a5400ec7e5ead2c2c502faee84d7f2a76 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/228860 Reviewed-by: Erik Språng <sprang@webrtc.org> Reviewed-by: Evan Shrubsole <eshr@google.com> Commit-Queue: Erik Språng <sprang@webrtc.org> Cr-Commit-Position: refs/heads/main@{#35120}
This commit is contained in:
committed by
WebRTC LUCI CQ
parent
23bfff3383
commit
f270770679
@ -364,6 +364,8 @@ rtc_source_set("codec_globals_headers") {
|
||||
rtc_library("video_coding_utility") {
|
||||
visibility = [ "*" ]
|
||||
sources = [
|
||||
"utility/bandwidth_quality_scaler.cc",
|
||||
"utility/bandwidth_quality_scaler.h",
|
||||
"utility/decoded_frames_history.cc",
|
||||
"utility/decoded_frames_history.h",
|
||||
"utility/frame_dropper.cc",
|
||||
@ -410,6 +412,8 @@ rtc_library("video_coding_utility") {
|
||||
"../../rtc_base:rtc_numerics",
|
||||
"../../rtc_base:rtc_task_queue",
|
||||
"../../rtc_base:weak_ptr",
|
||||
"../../rtc_base/experiments:bandwidth_quality_scaler_settings",
|
||||
"../../rtc_base/experiments:encoder_info_settings",
|
||||
"../../rtc_base/experiments:quality_scaler_settings",
|
||||
"../../rtc_base/experiments:quality_scaling_experiment",
|
||||
"../../rtc_base/experiments:rate_control_settings",
|
||||
@ -1031,6 +1035,7 @@ if (rtc_include_tests) {
|
||||
"timestamp_map_unittest.cc",
|
||||
"timing_unittest.cc",
|
||||
"unique_timestamp_counter_unittest.cc",
|
||||
"utility/bandwidth_quality_scaler_unittest.cc",
|
||||
"utility/decoded_frames_history_unittest.cc",
|
||||
"utility/frame_dropper_unittest.cc",
|
||||
"utility/framerate_controller_deprecated_unittest.cc",
|
||||
@ -1106,6 +1111,7 @@ if (rtc_include_tests) {
|
||||
"../../rtc_base:rtc_numerics",
|
||||
"../../rtc_base:rtc_task_queue",
|
||||
"../../rtc_base:task_queue_for_test",
|
||||
"../../rtc_base/experiments:encoder_info_settings",
|
||||
"../../rtc_base/experiments:jitter_upper_bound_experiment",
|
||||
"../../rtc_base/synchronization:mutex",
|
||||
"../../rtc_base/system:unused",
|
||||
|
||||
Reference in New Issue
Block a user