mirror of
https://github.com/ittiam-systems/libhevc.git
synced 2026-08-15 23:32:35 +07:00
[automerger] Add few more checks for invalid parameters in sps am: 2f30da4ca2 am: 59c1e4d23e
Change-Id: I0fd5c034d6e975e3895d32d4f13a7ae5c68396d9
This commit is contained in:
commit
7dbf2eeb7f
2 changed files with 28 additions and 1 deletions
|
|
@ -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))
|
||||
|
|
|
|||
|
|
@ -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 +
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue