Commit 2178cf9a35 for aom

commit 2178cf9a35c5fae268e10daaea37a3b0e1e8d617
Author: Yunqing Wang <yunqingwang@google.com>
Date:   Tue Dec 16 14:56:33 2025 -0800

    Fix array-bounds crash in encoder_encode

    Bug: b/468491090
    Change-Id: Ie6a5abd07d87e5204fef00a6ced045a0ebd7b56d

diff --git a/av1/av1_cx_iface.c b/av1/av1_cx_iface.c
index c049a9912e..603fe1bef3 100644
--- a/av1/av1_cx_iface.c
+++ b/av1/av1_cx_iface.c
@@ -3577,6 +3577,8 @@ static aom_codec_err_t encoder_encode(aom_codec_alg_priv_t *ctx,

 #endif  // CONFIG_FPMT_TEST
       if (!simulate_parallel_frame) {
+        // May need a better way for checking the frame's frame_parallel_level,
+        // especially for the first frame of the following gop.
         if (ppi->gf_group.frame_parallel_level[cpi->gf_frame_index] == 0) {
           status = av1_get_compressed_data(cpi, &cpi_data);
         } else if (ppi->gf_group.frame_parallel_level[cpi->gf_frame_index] ==
diff --git a/av1/encoder/encoder.c b/av1/encoder/encoder.c
index 54e4214a04..08433d1bad 100644
--- a/av1/encoder/encoder.c
+++ b/av1/encoder/encoder.c
@@ -5048,6 +5048,10 @@ static inline void update_gf_group_index(AV1_COMP *cpi) {
       cpi->gf_frame_index = 0;
   } else {
     ++cpi->gf_frame_index;
+    // In rare cases, the gop size can be MAX_STATIC_GF_GROUP_LENGTH for VOD
+    // encoding. Need to reset this to 0 for the following gop.
+    if (cpi->gf_frame_index == MAX_STATIC_GF_GROUP_LENGTH)
+      cpi->gf_frame_index = 0;
   }
 }