]> granicus.if.org Git - libvpx/commitdiff
vp9: Move allocation of vt2 after early exits.
authorJerome Jiang <jianj@google.com>
Tue, 31 Oct 2017 23:53:46 +0000 (16:53 -0700)
committerJerome Jiang <jianj@google.com>
Wed, 1 Nov 2017 00:04:04 +0000 (17:04 -0700)
Remove the memory deallocation on the early exits.

Change-Id: I00b4a814ae6705105ecab89644d055ca3311d9f4

vp9/encoder/vp9_encodeframe.c

index e8117afb964266d1906e4fe8dd355daa10984a5d..f60c0d326854aa9133bdc29fbda0d3592436bfae 100644 (file)
@@ -1113,8 +1113,6 @@ static int choose_partitioning(VP9_COMP *cpi, const TileInfo *const tile,
   // For non keyframes, disable 4x4 average for low resolution when speed = 8
   threshold_4x4avg = (cpi->oxcf.speed < 8) ? thresholds[1] << 1 : INT64_MAX;
 
-  if (low_res && threshold_4x4avg < INT64_MAX)
-    CHECK_MEM_ERROR(cm, vt2, vpx_calloc(16, sizeof(*vt2)));
   memset(x->variance_low, 0, sizeof(x->variance_low));
 
   if (xd->mb_to_right_edge < 0) pixels_wide += (xd->mb_to_right_edge >> 3);
@@ -1224,7 +1222,6 @@ static int choose_partitioning(VP9_COMP *cpi, const TileInfo *const tile,
         set_block_size(cpi, x, xd, mi_row, mi_col, BLOCK_64X64);
         x->variance_low[0] = 1;
         chroma_check(cpi, x, bsize, y_sad, is_key_frame);
-        if (vt2) vpx_free(vt2);
         return 0;
       }
     }
@@ -1236,7 +1233,6 @@ static int choose_partitioning(VP9_COMP *cpi, const TileInfo *const tile,
     if (cpi->sf.copy_partition_flag && y_sad_last < cpi->vbp_threshold_copy &&
         copy_partitioning(cpi, x, xd, mi_row, mi_col, segment_id, sb_offset)) {
       chroma_check(cpi, x, bsize, y_sad, is_key_frame);
-      if (vt2) vpx_free(vt2);
       return 0;
     }
   } else {
@@ -1254,6 +1250,8 @@ static int choose_partitioning(VP9_COMP *cpi, const TileInfo *const tile,
 #endif  // CONFIG_VP9_HIGHBITDEPTH
   }
 
+  if (low_res && threshold_4x4avg < INT64_MAX)
+    CHECK_MEM_ERROR(cm, vt2, vpx_calloc(16, sizeof(*vt2)));
   // Fill in the entire tree of 8x8 (or 4x4 under some conditions) variances
   // for splits.
   for (i = 0; i < 4; i++) {