aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHarish Mahendrakar <harish.mahendrakar@ittiam.com>2017-01-13 17:08:35 +0530
committergitbuildkicker <android-build@google.com>2017-01-23 11:17:38 -0800
commit5985ffc59353de10899efaca80c4079176e3ad46 (patch)
tree207bca2b2880a64d8d6f103aa633e3390cb9f596
parentdf7b56457184600e3d2b7cbac87ebe7001f7cb48 (diff)
downloadlibhevc-5985ffc59353de10899efaca80c4079176e3ad46.tar.gz
Bug: 33918236 Bug: 33964497 Bug: 33965905 Bug: 33862021 Change-Id: If121221d0f6e983c05d95d123af9bed378d1961f (cherry picked from commit b5cae8181efbb9649ffddb659305a0da59ed445a)
-rw-r--r--decoder/ihevcd_parse_headers.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/decoder/ihevcd_parse_headers.c b/decoder/ihevcd_parse_headers.c
index 04d22d8..ec3d193 100644
--- a/decoder/ihevcd_parse_headers.c
+++ b/decoder/ihevcd_parse_headers.c
@@ -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;