Update size related local variables in rd_pick_partition()

BUG=aomedia:2687

Change-Id: Ib7551821799acaea044cbd6d103e6e80688f5b1a
diff --git a/av1/encoder/encodeframe.c b/av1/encoder/encodeframe.c
index 7c63b6f..fec280e 100644
--- a/av1/encoder/encodeframe.c
+++ b/av1/encoder/encodeframe.c
@@ -3369,12 +3369,12 @@
 
   // PARTITION_SPLIT
   int64_t part_split_rd = INT64_MAX;
-  BLOCK_SIZE subsize = get_partition_subsize(bsize, PARTITION_SPLIT);
+  blk_params.subsize = get_partition_subsize(bsize, PARTITION_SPLIT);
   if ((!part_search_state.terminate_partition_search &&
        part_search_state.do_square_split)) {
     for (int i = 0; i < 4; ++i) {
       if (pc_tree->split[i] == NULL)
-        pc_tree->split[i] = av1_alloc_pc_tree_node(subsize);
+        pc_tree->split[i] = av1_alloc_pc_tree_node(blk_params.subsize);
       pc_tree->split[i]->index = i;
     }
     av1_init_rd_stats(&part_search_state.sum_rdc);
@@ -3414,11 +3414,12 @@
         part_search_state.intra_part_info->quad_tree_idx =
             4 * curr_quad_tree_idx + idx + 1;
       }
-      if (!rd_pick_partition(
-              cpi, td, tile_data, tp, mi_row + y_idx, mi_col + x_idx, subsize,
-              &part_search_state.this_rdc, best_remain_rdcost,
-              pc_tree->split[idx], sms_tree->split[idx], p_split_rd,
-              multi_pass_mode, &part_search_state.split_part_rect_win[idx])) {
+      if (!rd_pick_partition(cpi, td, tile_data, tp, mi_row + y_idx,
+                             mi_col + x_idx, blk_params.subsize,
+                             &part_search_state.this_rdc, best_remain_rdcost,
+                             pc_tree->split[idx], sms_tree->split[idx],
+                             p_split_rd, multi_pass_mode,
+                             &part_search_state.split_part_rect_win[idx])) {
         av1_invalid_rd_stats(&part_search_state.sum_rdc);
         break;
       }
@@ -3515,11 +3516,11 @@
       (part_search_state.do_rectangular_split ||
        active_h_edge(cpi, mi_row, blk_params.mi_step))) {
     av1_init_rd_stats(&part_search_state.sum_rdc);
-    subsize = get_partition_subsize(bsize, PARTITION_HORZ);
+    blk_params.subsize = get_partition_subsize(bsize, PARTITION_HORZ);
     for (int i = 0; i < 2; ++i) {
       if (pc_tree->horizontal[i] == NULL) {
         pc_tree->horizontal[i] =
-            av1_alloc_pmc(cm, subsize, &td->shared_coeff_buf);
+            av1_alloc_pmc(cm, blk_params.subsize, &td->shared_coeff_buf);
       }
     }
     part_search_state.sum_rdc.rate =
@@ -3536,7 +3537,7 @@
     // First sub-partition evaluation in horizontal partition type.
     rd_pick_rect_partition(cpi, tile_data, x, pc_tree->horizontal[0],
                            &part_search_state, &best_rdc, 0, mi_row, mi_col,
-                           subsize, PARTITION_HORZ);
+                           blk_params.subsize, PARTITION_HORZ);
     if (part_search_state.sum_rdc.rdcost < best_rdc.rdcost &&
         blk_params.has_rows) {
       const PICK_MODE_CONTEXT *const ctx_h = pc_tree->horizontal[0];
@@ -3547,12 +3548,13 @@
         if (mbmi->uv_mode != UV_CFL_PRED)
           part_search_state.is_horz_ctx_is_ready = 1;
       }
-      update_state(cpi, td, ctx_h, mi_row, mi_col, subsize, 1);
-      encode_superblock(cpi, tile_data, td, tp, DRY_RUN_NORMAL, subsize, NULL);
+      update_state(cpi, td, ctx_h, mi_row, mi_col, blk_params.subsize, 1);
+      encode_superblock(cpi, tile_data, td, tp, DRY_RUN_NORMAL,
+                        blk_params.subsize, NULL);
       // Second sub-partition evaluation in horizontal partition type.
       rd_pick_rect_partition(cpi, tile_data, x, pc_tree->horizontal[1],
                              &part_search_state, &best_rdc, 1,
-                             blk_params.mi_row_edge, mi_col, subsize,
+                             blk_params.mi_row_edge, mi_col, blk_params.subsize,
                              PARTITION_HORZ);
     }
 #if CONFIG_COLLECT_PARTITION_STATS
@@ -3593,11 +3595,11 @@
       (part_search_state.do_rectangular_split ||
        active_v_edge(cpi, mi_col, blk_params.mi_step))) {
     av1_init_rd_stats(&part_search_state.sum_rdc);
-    subsize = get_partition_subsize(bsize, PARTITION_VERT);
+    blk_params.subsize = get_partition_subsize(bsize, PARTITION_VERT);
     for (int i = 0; i < 2; ++i) {
       if (pc_tree->vertical[i] == NULL) {
         pc_tree->vertical[i] =
-            av1_alloc_pmc(cm, subsize, &td->shared_coeff_buf);
+            av1_alloc_pmc(cm, blk_params.subsize, &td->shared_coeff_buf);
       }
     }
 
@@ -3615,7 +3617,7 @@
     // First sub-partition evaluation in vertical partition type.
     rd_pick_rect_partition(cpi, tile_data, x, pc_tree->vertical[0],
                            &part_search_state, &best_rdc, 0, mi_row, mi_col,
-                           subsize, PARTITION_VERT);
+                           blk_params.subsize, PARTITION_VERT);
     if (part_search_state.sum_rdc.rdcost < best_rdc.rdcost &&
         blk_params.has_cols) {
       const MB_MODE_INFO *const mbmi = &pc_tree->vertical[0]->mic;
@@ -3625,12 +3627,15 @@
         if (mbmi->uv_mode != UV_CFL_PRED)
           part_search_state.is_vert_ctx_is_ready = 1;
       }
-      update_state(cpi, td, pc_tree->vertical[0], mi_row, mi_col, subsize, 1);
-      encode_superblock(cpi, tile_data, td, tp, DRY_RUN_NORMAL, subsize, NULL);
+      update_state(cpi, td, pc_tree->vertical[0], mi_row, mi_col,
+                   blk_params.subsize, 1);
+      encode_superblock(cpi, tile_data, td, tp, DRY_RUN_NORMAL,
+                        blk_params.subsize, NULL);
       // Second sub-partition evaluation in vertical partition type.
       rd_pick_rect_partition(cpi, tile_data, x, pc_tree->vertical[1],
                              &part_search_state, &best_rdc, 1, mi_row,
-                             blk_params.mi_col_edge, subsize, PARTITION_VERT);
+                             blk_params.mi_col_edge, blk_params.subsize,
+                             PARTITION_VERT);
     }
 #if CONFIG_COLLECT_PARTITION_STATS
     if (partition_timer_on) {
@@ -3704,13 +3709,14 @@
   // PARTITION_HORZ_A
   if (!part_search_state.terminate_partition_search &&
       part_search_state.partition_horz_allowed && horza_partition_allowed) {
-    subsize = get_partition_subsize(bsize, PARTITION_HORZ_A);
+    blk_params.subsize = get_partition_subsize(bsize, PARTITION_HORZ_A);
 
     pc_tree->horizontala[0] =
         av1_alloc_pmc(cm, blk_params.split_bsize2, &td->shared_coeff_buf);
     pc_tree->horizontala[1] =
         av1_alloc_pmc(cm, blk_params.split_bsize2, &td->shared_coeff_buf);
-    pc_tree->horizontala[2] = av1_alloc_pmc(cm, subsize, &td->shared_coeff_buf);
+    pc_tree->horizontala[2] =
+        av1_alloc_pmc(cm, blk_params.subsize, &td->shared_coeff_buf);
 
     pc_tree->horizontala[0]->rd_mode_is_ready = 0;
     pc_tree->horizontala[1]->rd_mode_is_ready = 0;
@@ -3746,7 +3752,8 @@
         cpi, td, tile_data, tp, pc_tree, &best_rdc, pc_tree->horizontala,
         mi_row, mi_col, bsize, PARTITION_HORZ_A, mi_row, mi_col,
         blk_params.split_bsize2, mi_row, blk_params.mi_col_edge,
-        blk_params.split_bsize2, blk_params.mi_row_edge, mi_col, subsize);
+        blk_params.split_bsize2, blk_params.mi_row_edge, mi_col,
+        blk_params.subsize);
 #if CONFIG_COLLECT_PARTITION_STATS
     if (partition_timer_on) {
       aom_usec_timer_mark(&partition_timer);
@@ -3761,9 +3768,10 @@
   // PARTITION_HORZ_B
   if (!part_search_state.terminate_partition_search &&
       part_search_state.partition_horz_allowed && horzb_partition_allowed) {
-    subsize = get_partition_subsize(bsize, PARTITION_HORZ_B);
+    blk_params.subsize = get_partition_subsize(bsize, PARTITION_HORZ_B);
 
-    pc_tree->horizontalb[0] = av1_alloc_pmc(cm, subsize, &td->shared_coeff_buf);
+    pc_tree->horizontalb[0] =
+        av1_alloc_pmc(cm, blk_params.subsize, &td->shared_coeff_buf);
     pc_tree->horizontalb[1] =
         av1_alloc_pmc(cm, blk_params.split_bsize2, &td->shared_coeff_buf);
     pc_tree->horizontalb[2] =
@@ -3795,9 +3803,9 @@
     // Test this partition and update the best partition.
     part_search_state.found_best_partition |= rd_test_partition3(
         cpi, td, tile_data, tp, pc_tree, &best_rdc, pc_tree->horizontalb,
-        mi_row, mi_col, bsize, PARTITION_HORZ_B, mi_row, mi_col, subsize,
-        blk_params.mi_row_edge, mi_col, blk_params.split_bsize2,
-        blk_params.mi_row_edge, blk_params.mi_col_edge,
+        mi_row, mi_col, bsize, PARTITION_HORZ_B, mi_row, mi_col,
+        blk_params.subsize, blk_params.mi_row_edge, mi_col,
+        blk_params.split_bsize2, blk_params.mi_row_edge, blk_params.mi_col_edge,
         blk_params.split_bsize2);
 
 #if CONFIG_COLLECT_PARTITION_STATS
@@ -3814,13 +3822,14 @@
   // PARTITION_VERT_A
   if (!part_search_state.terminate_partition_search &&
       part_search_state.partition_vert_allowed && verta_partition_allowed) {
-    subsize = get_partition_subsize(bsize, PARTITION_VERT_A);
+    blk_params.subsize = get_partition_subsize(bsize, PARTITION_VERT_A);
 
     pc_tree->verticala[0] =
         av1_alloc_pmc(cm, blk_params.split_bsize2, &td->shared_coeff_buf);
     pc_tree->verticala[1] =
         av1_alloc_pmc(cm, blk_params.split_bsize2, &td->shared_coeff_buf);
-    pc_tree->verticala[2] = av1_alloc_pmc(cm, subsize, &td->shared_coeff_buf);
+    pc_tree->verticala[2] =
+        av1_alloc_pmc(cm, blk_params.subsize, &td->shared_coeff_buf);
 
     pc_tree->verticala[0]->rd_mode_is_ready = 0;
     pc_tree->verticala[1]->rd_mode_is_ready = 0;
@@ -3851,7 +3860,8 @@
         cpi, td, tile_data, tp, pc_tree, &best_rdc, pc_tree->verticala, mi_row,
         mi_col, bsize, PARTITION_VERT_A, mi_row, mi_col,
         blk_params.split_bsize2, blk_params.mi_row_edge, mi_col,
-        blk_params.split_bsize2, mi_row, blk_params.mi_col_edge, subsize);
+        blk_params.split_bsize2, mi_row, blk_params.mi_col_edge,
+        blk_params.subsize);
 #if CONFIG_COLLECT_PARTITION_STATS
     if (partition_timer_on) {
       aom_usec_timer_mark(&partition_timer);
@@ -3866,9 +3876,10 @@
   // PARTITION_VERT_B
   if (!part_search_state.terminate_partition_search &&
       part_search_state.partition_vert_allowed && vertb_partition_allowed) {
-    subsize = get_partition_subsize(bsize, PARTITION_VERT_B);
+    blk_params.subsize = get_partition_subsize(bsize, PARTITION_VERT_B);
 
-    pc_tree->verticalb[0] = av1_alloc_pmc(cm, subsize, &td->shared_coeff_buf);
+    pc_tree->verticalb[0] =
+        av1_alloc_pmc(cm, blk_params.subsize, &td->shared_coeff_buf);
     pc_tree->verticalb[1] =
         av1_alloc_pmc(cm, blk_params.split_bsize2, &td->shared_coeff_buf);
     pc_tree->verticalb[2] =
@@ -3901,9 +3912,10 @@
     // Test this partition and update the best partition.
     part_search_state.found_best_partition |= rd_test_partition3(
         cpi, td, tile_data, tp, pc_tree, &best_rdc, pc_tree->verticalb, mi_row,
-        mi_col, bsize, PARTITION_VERT_B, mi_row, mi_col, subsize, mi_row,
-        blk_params.mi_col_edge, blk_params.split_bsize2, blk_params.mi_row_edge,
-        blk_params.mi_col_edge, blk_params.split_bsize2);
+        mi_col, bsize, PARTITION_VERT_B, mi_row, mi_col, blk_params.subsize,
+        mi_row, blk_params.mi_col_edge, blk_params.split_bsize2,
+        blk_params.mi_row_edge, blk_params.mi_col_edge,
+        blk_params.split_bsize2);
 #if CONFIG_COLLECT_PARTITION_STATS
     if (partition_timer_on) {
       aom_usec_timer_mark(&partition_timer);
@@ -3999,7 +4011,7 @@
     av1_init_rd_stats(&part_search_state.sum_rdc);
     const int quarter_step = mi_size_high[bsize] / 4;
 
-    subsize = get_partition_subsize(bsize, PARTITION_HORZ_4);
+    blk_params.subsize = get_partition_subsize(bsize, PARTITION_HORZ_4);
     part_search_state.sum_rdc.rate =
         part_search_state.partition_cost[PARTITION_HORZ_4];
     part_search_state.sum_rdc.rdcost =
@@ -4007,7 +4019,7 @@
 
     for (int i = 0; i < 4; ++i) {
       pc_tree->horizontal4[i] =
-          av1_alloc_pmc(cm, subsize, &td->shared_coeff_buf);
+          av1_alloc_pmc(cm, blk_params.subsize, &td->shared_coeff_buf);
     }
 
 #if CONFIG_COLLECT_PARTITION_STATS
@@ -4026,7 +4038,7 @@
 
       ctx_this->rd_mode_is_ready = 0;
       if (!rd_try_subblock(cpi, td, tile_data, tp, (i == 3), this_mi_row,
-                           mi_col, subsize, best_rdc,
+                           mi_col, blk_params.subsize, best_rdc,
                            &part_search_state.sum_rdc, PARTITION_HORZ_4,
                            ctx_this)) {
         av1_invalid_rd_stats(&part_search_state.sum_rdc);
@@ -4062,14 +4074,15 @@
     av1_init_rd_stats(&part_search_state.sum_rdc);
     const int quarter_step = mi_size_wide[bsize] / 4;
 
-    subsize = get_partition_subsize(bsize, PARTITION_VERT_4);
+    blk_params.subsize = get_partition_subsize(bsize, PARTITION_VERT_4);
     part_search_state.sum_rdc.rate =
         part_search_state.partition_cost[PARTITION_VERT_4];
     part_search_state.sum_rdc.rdcost =
         RDCOST(x->rdmult, part_search_state.sum_rdc.rate, 0);
 
     for (int i = 0; i < 4; ++i)
-      pc_tree->vertical4[i] = av1_alloc_pmc(cm, subsize, &td->shared_coeff_buf);
+      pc_tree->vertical4[i] =
+          av1_alloc_pmc(cm, blk_params.subsize, &td->shared_coeff_buf);
 
 #if CONFIG_COLLECT_PARTITION_STATS
     if (best_rdc.rdcost - part_search_state.sum_rdc.rdcost >= 0) {
@@ -4087,7 +4100,7 @@
 
       ctx_this->rd_mode_is_ready = 0;
       if (!rd_try_subblock(cpi, td, tile_data, tp, (i == 3), mi_row,
-                           this_mi_col, subsize, best_rdc,
+                           this_mi_col, blk_params.subsize, best_rdc,
                            &part_search_state.sum_rdc, PARTITION_VERT_4,
                            ctx_this)) {
         av1_invalid_rd_stats(&part_search_state.sum_rdc);