Commit ad3678870f for aom
commit ad3678870f103b78fb8ca5c2dbd94a90e483e5f9
Author: Jerome Jiang <jianj@google.com>
Date: Mon Mar 16 18:02:28 2026 -0400
RC: Use update_ref_idx when ext rc is used
Bug: 485578736
Change-Id: Ib5ede2a0247829778d78c1099df9333f5f7e9d8d
diff --git a/av1/encoder/encode_strategy.c b/av1/encoder/encode_strategy.c
index 327ae9e478..d8232f9f6b 100644
--- a/av1/encoder/encode_strategy.c
+++ b/av1/encoder/encode_strategy.c
@@ -611,6 +611,11 @@ int av1_calc_refresh_idx_for_intnl_arf(
}
}
+static int get_new_fb_map_idx_rc(int new_fb_map_idx) {
+ if (new_fb_map_idx == INVALID_IDX) return 0;
+ return 1 << new_fb_map_idx;
+}
+
int av1_get_refresh_frame_flags(
const AV1_COMP *const cpi, const EncodeFrameParams *const frame_params,
FRAME_UPDATE_TYPE frame_update_type, int gf_index, int cur_disp_order,
@@ -637,12 +642,16 @@ int av1_get_refresh_frame_flags(
#if !CONFIG_REALTIME_ONLY
if (cpi->use_ducky_encode &&
cpi->ducky_encode_info.frame_info.gop_mode == DUCKY_ENCODE_GOP_MODE_RCL) {
- int new_fb_map_idx = cpi->ppi->gf_group.update_ref_idx[gf_index];
- if (new_fb_map_idx == INVALID_IDX) return 0;
- return 1 << new_fb_map_idx;
+ return get_new_fb_map_idx_rc(gf_group->update_ref_idx[gf_index]);
}
#endif // !CONFIG_REALTIME_ONLY
+ if (cpi->ext_ratectrl.ready &&
+ (cpi->ext_ratectrl.funcs.rc_type & AOM_RC_GOP) != 0 &&
+ cpi->ext_ratectrl.funcs.get_gop_decision != NULL) {
+ return get_new_fb_map_idx_rc(gf_group->update_ref_idx[gf_index]);
+ }
+
int refresh_mask = 0;
if (ext_refresh_frame_flags->update_pending) {
if (rtc_ref->set_ref_frame_config ||