summaryrefslogtreecommitdiff
path: root/vp9/encoder/vp9_encodeframe.c
diff options
context:
space:
mode:
Diffstat (limited to 'vp9/encoder/vp9_encodeframe.c')
-rw-r--r--vp9/encoder/vp9_encodeframe.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/vp9/encoder/vp9_encodeframe.c b/vp9/encoder/vp9_encodeframe.c
index e8117afb9..f60c0d326 100644
--- a/vp9/encoder/vp9_encodeframe.c
+++ b/vp9/encoder/vp9_encodeframe.c
@@ -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++) {