summaryrefslogtreecommitdiff
path: root/chromium/third_party/libaom/source/libaom/av1/encoder
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2023-01-11 13:41:06 +0100
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2023-01-11 14:02:23 +0000
commit01e89433adf2d5575b2089716217299519a9ce15 (patch)
tree5615c6e52f2016c227e6d936cb5005ee6f15418a /chromium/third_party/libaom/source/libaom/av1/encoder
parent2b11b39a6627d8c71636227374dd8f8ea78c3e6a (diff)
downloadqtwebengine-chromium-01e89433adf2d5575b2089716217299519a9ce15.tar.gz
BASELINE: Update Chromium to 108.0.5359.181
Change-Id: Iae2b9d190e7789ad5556dbf4c59498e05ce6e5d2 Reviewed-on: https://codereview.qt-project.org/c/qt/qtwebengine-chromium/+/453305 Reviewed-by: Michal Klocek <michal.klocek@qt.io>
Diffstat (limited to 'chromium/third_party/libaom/source/libaom/av1/encoder')
-rw-r--r--chromium/third_party/libaom/source/libaom/av1/encoder/ratectrl.c16
-rw-r--r--chromium/third_party/libaom/source/libaom/av1/encoder/ratectrl.h3
2 files changed, 17 insertions, 2 deletions
diff --git a/chromium/third_party/libaom/source/libaom/av1/encoder/ratectrl.c b/chromium/third_party/libaom/source/libaom/av1/encoder/ratectrl.c
index e6bb18486f6..d3ce8959c8b 100644
--- a/chromium/third_party/libaom/source/libaom/av1/encoder/ratectrl.c
+++ b/chromium/third_party/libaom/source/libaom/av1/encoder/ratectrl.c
@@ -2160,6 +2160,9 @@ void av1_rc_postencode_update(AV1_COMP *cpi, uint64_t bytes_used) {
}
#endif
if (current_frame->frame_type == KEY_FRAME) rc->frames_since_key = 0;
+
+ rc->prev_coded_width = cm->width;
+ rc->prev_coded_height = cm->height;
// if (current_frame->frame_number == 1 && cm->show_frame)
/*
rc->this_frame_target =
@@ -2176,6 +2179,8 @@ void av1_rc_postencode_update_drop_frame(AV1_COMP *cpi) {
cpi->rc.rc_2_frame = 0;
cpi->rc.rc_1_frame = 0;
cpi->rc.prev_avg_frame_bandwidth = cpi->rc.avg_frame_bandwidth;
+ cpi->rc.prev_coded_width = cpi->common.width;
+ cpi->rc.prev_coded_height = cpi->common.height;
}
int av1_find_qindex(double desired_q, aom_bit_depth_t bit_depth,
@@ -3120,8 +3125,15 @@ void av1_get_one_pass_rt_params(AV1_COMP *cpi, FRAME_TYPE *const frame_type,
}
}
// Check for scene change: for SVC check on base spatial layer only.
- if (cpi->sf.rt_sf.check_scene_detection && svc->spatial_layer_id == 0)
- rc_scene_detection_onepass_rt(cpi, frame_input);
+ if (cpi->sf.rt_sf.check_scene_detection && svc->spatial_layer_id == 0) {
+ if (rc->prev_coded_width == cm->width &&
+ rc->prev_coded_height == cm->height) {
+ rc_scene_detection_onepass_rt(cpi, frame_input);
+ } else if (cpi->src_sad_blk_64x64) {
+ aom_free(cpi->src_sad_blk_64x64);
+ cpi->src_sad_blk_64x64 = NULL;
+ }
+ }
// Check for dynamic resize, for single spatial layer for now.
// For temporal layers only check on base temporal layer.
if (cpi->oxcf.resize_cfg.resize_mode == RESIZE_DYNAMIC) {
diff --git a/chromium/third_party/libaom/source/libaom/av1/encoder/ratectrl.h b/chromium/third_party/libaom/source/libaom/av1/encoder/ratectrl.h
index df177b9c306..9bb6ca1be97 100644
--- a/chromium/third_party/libaom/source/libaom/av1/encoder/ratectrl.h
+++ b/chromium/third_party/libaom/source/libaom/av1/encoder/ratectrl.h
@@ -256,6 +256,9 @@ typedef struct {
int frame_level_fast_extra_bits;
double frame_level_rate_correction_factors[RATE_FACTOR_LEVELS];
+
+ int prev_coded_width;
+ int prev_coded_height;
/*!\endcond */
} RATE_CONTROL;