Commit 82d69d832a for aom
commit 82d69d832a42e7d877046d651a6e5e4b3f1ffadd
Author: Yunqing Wang <yunqingwang@google.com>
Date: Thu Mar 12 18:04:59 2026 -0700
Make "--enable-overlay" encoder flag work
In the current code base, --enable-overlay wasn't populated
and used in the encoder, and the encoder always assume
enable-overlay=1. This CL implemented the correct logic.
Bug: 492512589
STATS_CHANGED for --enable-overlay=0
Change-Id: I484db2f1a7dbd4650035f5c8eaa069fdc97b5718
diff --git a/av1/encoder/encode_strategy.c b/av1/encoder/encode_strategy.c
index e4b0a37c39..327ae9e478 100644
--- a/av1/encoder/encode_strategy.c
+++ b/av1/encoder/encode_strategy.c
@@ -787,7 +787,8 @@ static int denoise_and_encode(AV1_COMP *const cpi, uint8_t *const dest,
if (tf_buf != NULL) {
frame_input->source = tf_buf;
show_existing_alt_ref = av1_check_show_filtered_frame(
- tf_buf, &frame_diff, q_index, cm->seq_params->bit_depth);
+ tf_buf, &frame_diff, q_index, cm->seq_params->bit_depth,
+ cpi->oxcf.algo_cfg.enable_overlay);
if (show_existing_alt_ref) {
cpi->common.showable_frame |= 1;
} else {
@@ -822,8 +823,9 @@ static int denoise_and_encode(AV1_COMP *const cpi, uint8_t *const dest,
// TODO(angiebird): Reuse tf_info->tf_buf here.
av1_temporal_filter(cpi, arf_src_index, cpi->gf_frame_index, &frame_diff,
tf_buf_second_arf);
- show_existing_alt_ref = av1_check_show_filtered_frame(
- tf_buf_second_arf, &frame_diff, q_index, cm->seq_params->bit_depth);
+ show_existing_alt_ref =
+ av1_check_show_filtered_frame(tf_buf_second_arf, &frame_diff, q_index,
+ cm->seq_params->bit_depth, 1);
if (show_existing_alt_ref) {
aom_extend_frame_borders(tf_buf_second_arf, av1_num_planes(cm));
frame_input->source = tf_buf_second_arf;
diff --git a/av1/encoder/temporal_filter.c b/av1/encoder/temporal_filter.c
index bf827f187a..da81e041e3 100644
--- a/av1/encoder/temporal_filter.c
+++ b/av1/encoder/temporal_filter.c
@@ -1589,7 +1589,10 @@ static void init_tf_ctx(AV1_COMP *cpi, int filter_frame_lookahead_idx,
int av1_check_show_filtered_frame(const YV12_BUFFER_CONFIG *frame,
const FRAME_DIFF *frame_diff, int q_index,
- aom_bit_depth_t bit_depth) {
+ aom_bit_depth_t bit_depth,
+ int enable_overlay) {
+ if (!enable_overlay) return 1;
+
const int frame_height = frame->y_crop_height;
const int frame_width = frame->y_crop_width;
const int block_height = block_size_high[TF_BLOCK_SIZE];
diff --git a/av1/encoder/temporal_filter.h b/av1/encoder/temporal_filter.h
index d0108c41b7..5d380a2009 100644
--- a/av1/encoder/temporal_filter.h
+++ b/av1/encoder/temporal_filter.h
@@ -341,17 +341,19 @@ void av1_temporal_filter(struct AV1_COMP *cpi,
* to make decision.
*
* \ingroup src_frame_proc
- * \param[in] frame filtered frame's buffer
- * \param[in] frame_diff structure of sse and sum of the
- * filtered frame.
- * \param[in] q_index q_index used for this frame
- * \param[in] bit_depth bit depth
+ * \param[in] frame filtered frame's buffer
+ * \param[in] frame_diff structure of sse and sum of the
+ * filtered frame.
+ * \param[in] q_index q_index used for this frame
+ * \param[in] bit_depth bit depth
+ * \param[in] enable_overlay arf overlay is enabled or disabled
* \return return 1 if this frame can be shown directly, otherwise
* return 0
*/
int av1_check_show_filtered_frame(const YV12_BUFFER_CONFIG *frame,
const FRAME_DIFF *frame_diff, int q_index,
- aom_bit_depth_t bit_depth);
+ aom_bit_depth_t bit_depth,
+ int enable_overlay);
/*!\cond */
// Allocates memory for members of TemporalFilterData.