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 c049a99..603fe1b 100644 --- a/av1/av1_cx_iface.c +++ b/av1/av1_cx_iface.c
@@ -3577,6 +3577,8 @@ #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 54e4214..08433d1 100644 --- a/av1/encoder/encoder.c +++ b/av1/encoder/encoder.c
@@ -5048,6 +5048,10 @@ 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; } }