Fix a crash in av1_use_partition_mi() When ERP is on, the recursion needs to handle sub-8x8 coding blocks separately as well. Otherwise, it will crash because pc_tree node is not allocated for the second blocks.
diff --git a/av1/encoder/partition_search.c b/av1/encoder/partition_search.c index 1fb1661..d02e9cc 100644 --- a/av1/encoder/partition_search.c +++ b/av1/encoder/partition_search.c
@@ -3343,7 +3343,10 @@ invalid_rdc); av1_init_rd_stats(&last_part_rdc); #endif // CONFIG_EXT_RECUR_PARTITIONS - if (last_part_rdc.rate != INT_MAX && bsize >= BLOCK_8X8 && + if (last_part_rdc.rate != INT_MAX && +#if !CONFIG_EXT_RECUR_PARTITIONS + bsize >= BLOCK_8X8 && +#endif // !CONFIG_EXT_RECUR_PARTITIONS mi_row + hbs_h < mi_params->mi_rows) { RD_STATS tmp_rdc; av1_init_rd_stats(&tmp_rdc); @@ -3394,7 +3397,10 @@ PARTITION_VERT, subsize, pc_tree->vertical[0], invalid_rdc); av1_init_rd_stats(&last_part_rdc); #endif // CONFIG_EXT_RECUR_PARTITIONS - if (last_part_rdc.rate != INT_MAX && bsize >= BLOCK_8X8 && + if (last_part_rdc.rate != INT_MAX && +#if !CONFIG_EXT_RECUR_PARTITIONS + bsize >= BLOCK_8X8 && +#endif // !CONFIG_EXT_RECUR_PARTITIONS mi_col + hbs_w < mi_params->mi_cols) { RD_STATS tmp_rdc; av1_init_rd_stats(&tmp_rdc);