diff options
author | Harish Mahendrakar <harish.mahendrakar@ittiam.com> | 2017-01-13 17:08:35 +0530 |
---|---|---|
committer | gitbuildkicker <android-build@google.com> | 2017-01-23 11:17:38 -0800 |
commit | 5985ffc59353de10899efaca80c4079176e3ad46 (patch) | |
tree | 207bca2b2880a64d8d6f103aa633e3390cb9f596 | |
parent | df7b56457184600e3d2b7cbac87ebe7001f7cb48 (diff) | |
download | libhevc-android-cts-7.1_r18.tar.gz |
Added check for invalid log2_max_transform_block_size in SPSandroid-cts-7.1_r9android-cts-7.1_r8android-cts-7.1_r7android-cts-7.1_r6android-cts-7.1_r5android-cts-7.1_r4android-cts-7.1_r29android-cts-7.1_r28android-cts-7.1_r27android-cts-7.1_r26android-cts-7.1_r25android-cts-7.1_r24android-cts-7.1_r23android-cts-7.1_r22android-cts-7.1_r21android-cts-7.1_r20android-cts-7.1_r19android-cts-7.1_r18android-cts-7.1_r17android-cts-7.1_r16android-cts-7.1_r15android-cts-7.1_r14android-cts-7.1_r13android-cts-7.1_r12android-cts-7.1_r11android-cts-7.1_r10android-7.1.1_r23nougat-mr1-releasenougat-mr1-cts-release
Bug: 33918236
Bug: 33964497
Bug: 33965905
Bug: 33862021
Change-Id: If121221d0f6e983c05d95d123af9bed378d1961f
(cherry picked from commit b5cae8181efbb9649ffddb659305a0da59ed445a)
-rw-r--r-- | decoder/ihevcd_parse_headers.c | 9 |
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; |