Enable superres on KF for video in SUPERRES_AUTO.
Change-Id: I92040b162603d91679cf18e9a0699bbc965d752b
diff --git a/av1/encoder/encoder.c b/av1/encoder/encoder.c
index c6b3c88..53077bb 100644
--- a/av1/encoder/encoder.c
+++ b/av1/encoder/encoder.c
@@ -3838,8 +3838,9 @@
if (cpi->common.allow_screen_content_tools) break;
// Don't use for inter frames.
if (!frame_is_intra_only(&cpi->common)) break;
- // Don't use for keyframes that can be used as references.
- if (cpi->rc.frames_to_key != 1) break;
+ // Don't use for keyframes that can be used as references, except when
+ // using AOM_Q mode.
+ if (cpi->rc.frames_to_key != 1 && cpi->oxcf.rc_mode != AOM_Q) break;
// Now decide the use of superres based on 'q'.
int bottom_index, top_index;
diff --git a/av1/encoder/ratectrl.c b/av1/encoder/ratectrl.c
index 9a8ca7d..3853f14 100644
--- a/av1/encoder/ratectrl.c
+++ b/av1/encoder/ratectrl.c
@@ -1116,7 +1116,9 @@
// Tweak active_best_quality for AOM_Q mode when superres is on, as this
// will be used directly as 'q' later.
- if (oxcf->rc_mode == AOM_Q && oxcf->superres_mode == SUPERRES_QTHRESH &&
+ if (oxcf->rc_mode == AOM_Q &&
+ (oxcf->superres_mode == SUPERRES_QTHRESH ||
+ oxcf->superres_mode == SUPERRES_AUTO) &&
cm->superres_scale_denominator != SCALE_NUMERATOR) {
active_best_quality =
AOMMAX(active_best_quality -