Increase maximum layer depth allowed in a GOP
Allow maximum 5 ARF layers to support GOP of size 32.
STATS_CHANGED
Change-Id: I2b53c7eeda0442967eb93d32c5f5522ea84001fb
diff --git a/av1/encoder/encode_strategy.c b/av1/encoder/encode_strategy.c
index 31463fb..3b87b41 100644
--- a/av1/encoder/encode_strategy.c
+++ b/av1/encoder/encode_strategy.c
@@ -814,6 +814,10 @@
refresh_mask =
1 << ref_buffer_stack
->lst_stack[ref_buffer_stack->lst_stack_size - 1];
+ else if (ref_buffer_stack->gld_stack_size >= 2)
+ refresh_mask =
+ 1 << ref_buffer_stack
+ ->gld_stack[ref_buffer_stack->gld_stack_size - 1];
else
assert(0 && "No ref map index found");
}
diff --git a/av1/encoder/encoder.h b/av1/encoder/encoder.h
index 1233977..13e6348 100644
--- a/av1/encoder/encoder.h
+++ b/av1/encoder/encoder.h
@@ -163,7 +163,7 @@
} UENUM1BYTE(SS_CFG_OFFSET);
// TODO(jingning): This needs to be cleaned up next.
-#define MAX_LENGTH_TPL_FRAME_STATS (50 + 9)
+#define MAX_LENGTH_TPL_FRAME_STATS (70 + 9)
typedef struct TplDepStats {
int64_t intra_cost;
diff --git a/av1/encoder/firstpass.h b/av1/encoder/firstpass.h
index 1cada53..cf48007 100644
--- a/av1/encoder/firstpass.h
+++ b/av1/encoder/firstpass.h
@@ -30,7 +30,7 @@
#define VLOW_MOTION_THRESHOLD 950
-#define MAX_ARF_LAYERS 5
+#define MAX_ARF_LAYERS 6
typedef struct {
// Frame number in display order, if stats are for a single frame.
diff --git a/av1/encoder/pass2_strategy.c b/av1/encoder/pass2_strategy.c
index ef3564e..19d1602 100644
--- a/av1/encoder/pass2_strategy.c
+++ b/av1/encoder/pass2_strategy.c
@@ -1574,7 +1574,7 @@
rc->gfu_boost = av1_calc_arf_boost(twopass, rc, frame_info, alt_offset,
forward_frames, (i - 1));
rc->source_alt_ref_pending = 1;
- gf_group->max_layer_depth_allowed = cpi->oxcf.gf_max_pyr_height;
+ gf_group->max_layer_depth_allowed = MAX_ARF_LAYERS - 1;
} else {
reset_fpf_position(twopass, start_pos);
rc->gfu_boost = AOMMIN(