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 ||