Make ducky encode fully comply with the max ref frame

Make the ducky encode fully comply with the max reference frame
constraint and follow the decisions from rc library.

BUG=b/240412144

Change-Id: I7d7f4545e74729a9fe886221ee4f6c5b15b012f5
diff --git a/av1/encoder/encode_strategy.c b/av1/encoder/encode_strategy.c
index f3bbc71..82f55c7 100644
--- a/av1/encoder/encode_strategy.c
+++ b/av1/encoder/encode_strategy.c
@@ -996,14 +996,20 @@
 #if !CONFIG_REALTIME_ONLY
   if (cpi->use_ducky_encode &&
       cpi->ducky_encode_info.frame_info.gop_mode == DUCKY_ENCODE_GOP_MODE_RCL) {
-    for (int i = 0; i < REF_FRAMES; ++i) remapped_ref_idx[i] = 0;
+    int valid_rf_idx = 0;
     for (int rf = LAST_FRAME; rf < REF_FRAMES; ++rf) {
       if (cpi->ppi->gf_group.ref_frame_list[gf_index][rf] != INVALID_IDX) {
         remapped_ref_idx[rf - LAST_FRAME] =
             cpi->ppi->gf_group.ref_frame_list[gf_index][rf];
+        valid_rf_idx = remapped_ref_idx[rf - LAST_FRAME];
       }
     }
 
+    for (int i = 0; i < REF_FRAMES; ++i) {
+      if (remapped_ref_idx[i] == INVALID_IDX)
+        remapped_ref_idx[i] = valid_rf_idx;
+    }
+
     return;
   }
 #endif  // !CONFIG_REALTIME_ONLY