From 9bbbda038765c80bf04b99b33a3779010d560673 Mon Sep 17 00:00:00 2001 From: Ritu Baldwa Date: Fri, 1 Feb 2019 13:37:07 +0530 Subject: [PATCH] Fix segmentation fault when num tile cols change in row-mt. Change-Id: Ifc165d76a71fcdb7c19c158c940a8d273be0d95f --- vp9/decoder/vp9_decodeframe.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/vp9/decoder/vp9_decodeframe.c b/vp9/decoder/vp9_decodeframe.c index c3bca3479..41072d5e0 100644 --- a/vp9/decoder/vp9_decodeframe.c +++ b/vp9/decoder/vp9_decodeframe.c @@ -2768,6 +2768,7 @@ static size_t read_uncompressed_header(VP9Decoder *pbi, int num_sbs = 1; const int aligned_rows = mi_cols_aligned_to_sb(cm->mi_rows); const int sb_rows = aligned_rows >> MI_BLOCK_SIZE_LOG2; + const int num_jobs = sb_rows << cm->log2_tile_cols; if (pbi->row_mt_worker_data == NULL) { CHECK_MEM_ERROR(cm, pbi->row_mt_worker_data, @@ -2784,10 +2785,11 @@ static size_t read_uncompressed_header(VP9Decoder *pbi, num_sbs = sb_cols * sb_rows; } - if (num_sbs > pbi->row_mt_worker_data->num_sbs) { + if (num_sbs > pbi->row_mt_worker_data->num_sbs || + num_jobs > pbi->row_mt_worker_data->num_jobs) { vp9_dec_free_row_mt_mem(pbi->row_mt_worker_data); vp9_dec_alloc_row_mt_mem(pbi->row_mt_worker_data, cm, num_sbs, - pbi->max_threads, sb_rows << cm->log2_tile_cols); + pbi->max_threads, num_jobs); } vp9_jobq_alloc(pbi); } -- 2.50.1