Ensure consistent border extension before LR
Before LR the border extension needs to be consistent.
Otherwise there will be inconsistency at the frame boundaries
causing mismatches.
BUG=aomedia:742
BUG=aomedia:744
BUG=aomedia:745
Change-Id: I5b0c51aa1493c58f7acc706bf686ce711eadd75d
diff --git a/av1/decoder/decodeframe.c b/av1/decoder/decodeframe.c
index ae25d7a..8db78b9 100644
--- a/av1/decoder/decodeframe.c
+++ b/av1/decoder/decodeframe.c
@@ -5363,7 +5363,6 @@
*p_data_end = decode_tiles(pbi, data + first_partition_size, data_end);
}
- aom_extend_frame_borders(new_fb);
#if CONFIG_CDEF
if (!cm->skip_loop_filter && !cm->all_lossless) {
av1_cdef_frame(&pbi->cur_buf->buf, cm, &pbi->mb);
@@ -5378,6 +5377,7 @@
if (cm->rst_info[0].frame_restoration_type != RESTORE_NONE ||
cm->rst_info[1].frame_restoration_type != RESTORE_NONE ||
cm->rst_info[2].frame_restoration_type != RESTORE_NONE) {
+ aom_extend_frame_borders(new_fb);
av1_loop_restoration_frame(new_fb, cm, cm->rst_info, 7, 0, NULL);
}
#endif // CONFIG_LOOP_RESTORATION
diff --git a/av1/encoder/encoder.c b/av1/encoder/encoder.c
index 7487e11..512a461 100644
--- a/av1/encoder/encoder.c
+++ b/av1/encoder/encoder.c
@@ -4183,7 +4183,6 @@
av1_loop_filter_frame(cm->frame_to_show, cm, xd, lf->filter_level, 0, 0);
#endif
}
- aom_extend_frame_borders(cm->frame_to_show);
#if CONFIG_CDEF
if (is_lossless_requested(&cpi->oxcf)) {
@@ -4205,6 +4204,7 @@
#endif // CONFIG_FRAME_SUPERRES
#if CONFIG_LOOP_RESTORATION
+ aom_extend_frame_borders(cm->frame_to_show);
av1_pick_filter_restoration(cpi->source, cpi, cpi->sf.lpf_pick);
if (cm->rst_info[0].frame_restoration_type != RESTORE_NONE ||
cm->rst_info[1].frame_restoration_type != RESTORE_NONE ||