[automerger] Add few more checks for invalid parameters in sps am: 2f30da4ca2

Change-Id: I78d8b0b2a9e804f3af8fd090876fbd2750d1edf9
This commit is contained in:
Android Build Merger (Role) 2019-05-07 20:47:43 +00:00
commit 59c1e4d23e
2 changed files with 28 additions and 1 deletions

View file

@ -294,10 +294,14 @@ typedef enum {
/* CTB Size Range */
#define MAX_CTB_SIZE 64
#define MIN_CTB_SIZE 16
#define LOG2_MAX_CTB_SIZE 6
#define LOG2_MIN_CTB_SIZE 4
/* TU Size Range */
#define MAX_TU_SIZE 32
#define MIN_TU_SIZE 4
#define LOG2_MAX_TU_SIZE 5
#define LOG2_MIN_TU_SIZE 2
/* Max Transform Size */
#define MAX_TRANS_SIZE (MAX_TU_SIZE*MAX_TU_SIZE)
@ -305,11 +309,14 @@ typedef enum {
/* PU Size Range */
#define MAX_PU_SIZE 64
#define MIN_PU_SIZE 4
#define LOG2_MAX_PU_SIZE 6
#define LOG2_MIN_PU_SIZE 2
/* CU Size Range */
#define MAX_CU_SIZE 64
#define MIN_CU_SIZE 8
#define LOG2_MAX_CU_SIZE 6
#define LOG2_MIN_CU_SIZE 3
/* Number of max TU in a CTB row */
#define MAX_TU_IN_CTB_ROW ((MAX_CTB_SIZE / MIN_TU_SIZE))

View file

@ -1381,17 +1381,37 @@ IHEVCD_ERROR_T ihevcd_parse_sps(codec_t *ps_codec)
}
UEV_PARSE("log2_min_coding_block_size_minus3", value, ps_bitstrm);
if(value > (LOG2_MAX_CU_SIZE - 3))
{
return IHEVCD_INVALID_PARAMETER;
}
ps_sps->i1_log2_min_coding_block_size = value + 3;
UEV_PARSE("log2_diff_max_min_coding_block_size", value, ps_bitstrm);
if(value > (LOG2_MAX_CU_SIZE - LOG2_MIN_CU_SIZE))
{
return IHEVCD_INVALID_PARAMETER;
}
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);
if(value > (LOG2_MAX_TU_SIZE - 2))
{
return IHEVCD_INVALID_PARAMETER;
}
ps_sps->i1_log2_min_transform_block_size = value + 2;
if(ps_sps->i1_log2_min_transform_block_size >= ps_sps->i1_log2_min_coding_block_size)
{
return IHEVCD_INVALID_PARAMETER;
}
UEV_PARSE("log2_diff_max_min_transform_block_size", value, ps_bitstrm);
if(value > (LOG2_MAX_TU_SIZE - LOG2_MIN_TU_SIZE))
{
return IHEVCD_INVALID_PARAMETER;
}
ps_sps->i1_log2_diff_max_min_transform_block_size = value;
ps_sps->i1_log2_max_transform_block_size = ps_sps->i1_log2_min_transform_block_size +