Added check for invalid log2_max_transform_block_size in SPS am: b5cae8181e am: 4b6511b432 am: c6bda6e3d2 am: 1a50b8aefc am: ddb188785b

am: 0512afdf72

Change-Id: Ib828914a2274f8189f6234c627ee6478299e433d
This commit is contained in:
Harish Mahendrakar 2017-01-18 18:27:56 +00:00 • committed by android-build-merger
commit 05e014ebf1

View file

@ -1193,6 +1193,7 @@ IHEVCD_ERROR_T ihevcd_parse_sps(codec_t *ps_codec)
sps_t *ps_sps;
profile_tier_lvl_info_t s_ptl;
bitstrm_t *ps_bitstrm = &ps_codec->s_parse.s_bitstrm;
WORD32 ctb_log2_size_y = 0;
BITS_PARSE("video_parameter_set_id", value, ps_bitstrm, 4);
@ -1325,6 +1326,8 @@ IHEVCD_ERROR_T ihevcd_parse_sps(codec_t *ps_codec)
UEV_PARSE("log2_diff_max_min_coding_block_size", value, ps_bitstrm);
ps_sps->i1_log2_diff_max_min_coding_block_size = value;
ctb_log2_size_y = ps_sps->i1_log2_min_coding_block_size + ps_sps->i1_log2_diff_max_min_coding_block_size;
UEV_PARSE("log2_min_transform_block_size_minus2", value, ps_bitstrm);
ps_sps->i1_log2_min_transform_block_size = value + 2;
@ -1334,6 +1337,12 @@ IHEVCD_ERROR_T ihevcd_parse_sps(codec_t *ps_codec)
ps_sps->i1_log2_max_transform_block_size = ps_sps->i1_log2_min_transform_block_size +
ps_sps->i1_log2_diff_max_min_transform_block_size;
if ((ps_sps->i1_log2_max_transform_block_size < 0) ||
(ps_sps->i1_log2_max_transform_block_size > MIN(ctb_log2_size_y, 5)))
{
return IHEVCD_INVALID_PARAMETER;
}
ps_sps->i1_log2_ctb_size = ps_sps->i1_log2_min_coding_block_size +
ps_sps->i1_log2_diff_max_min_coding_block_size;