diff options
| author | android-build-team Robot <android-build-team-robot@google.com> | 2017-09-15 19:22:19 +0000 |
|---|---|---|
| committer | android-build-team Robot <android-build-team-robot@google.com> | 2017-09-15 19:22:19 +0000 |
| commit | 658cd8a667611ac6e64e21531fdff0e6eec68607 (patch) | |
| tree | 8347f13a7065766e843dee0641dd3c81e045ab1f | |
| parent | b8522c2378615c7fec333eff771a25b90d0154d0 (diff) | |
| parent | c58c3887ce61364143b79625f498301d3fb8c448 (diff) | |
| download | platform_external_libhevc-nougat-mr1.7-release.tar.gz platform_external_libhevc-nougat-mr1.7-release.tar.bz2 platform_external_libhevc-nougat-mr1.7-release.zip | |
release-request-b6ec1e5a-8dd9-44a3-97f9-f374a706d9ac-for-git_nyc-mr1-security-g-release-4299435 snap-temp-L65100000103194273android-7.1.1_r57nougat-mr1.7-release
Change-Id: I5d11405e8ef5a5ebdeba5a5e63df7d6ddd4f152b
| -rw-r--r-- | decoder/ihevcd_decode.c | 1 | ||||
| -rw-r--r-- | decoder/ihevcd_parse_headers.c | 13 |
2 files changed, 13 insertions, 1 deletions
diff --git a/decoder/ihevcd_decode.c b/decoder/ihevcd_decode.c index 87c3bd7..7b82e84 100644 --- a/decoder/ihevcd_decode.c +++ b/decoder/ihevcd_decode.c @@ -633,7 +633,6 @@ WORD32 ihevcd_decode(iv_obj_t *ps_codec_obj, void *pv_api_ip, void *pv_api_op) if(IHEVCD_IGNORE_SLICE == ret) { - ps_codec->s_parse.i4_cur_slice_idx = MAX(0, (ps_codec->s_parse.i4_cur_slice_idx - 1)); ps_codec->pu1_inp_bitsbuf += (nal_ofst + nal_len); ps_codec->i4_bytes_remaining -= (nal_ofst + nal_len); diff --git a/decoder/ihevcd_parse_headers.c b/decoder/ihevcd_parse_headers.c index 29a309d..06f35a3 100644 --- a/decoder/ihevcd_parse_headers.c +++ b/decoder/ihevcd_parse_headers.c @@ -1813,6 +1813,19 @@ IHEVCD_ERROR_T ihevcd_parse_pps(codec_t *ps_codec) BITS_PARSE("tiles_enabled_flag", value, ps_bitstrm, 1); ps_pps->i1_tiles_enabled_flag = value; + /* When tiles are enabled and width or height is >= 4096, + * CTB Size should at least be 32. 16x16 CTBs can result + * in tile position greater than 255 for 4096, + * which decoder does not support. + */ + if((ps_pps->i1_tiles_enabled_flag) && + (ps_sps->i1_log2_ctb_size == 4) && + ((ps_sps->i2_pic_width_in_luma_samples >= 4096) || + (ps_sps->i2_pic_height_in_luma_samples >= 4096))) + { + return IHEVCD_INVALID_HEADER; + } + BITS_PARSE("entropy_coding_sync_enabled_flag", value, ps_bitstrm, 1); ps_pps->i1_entropy_coding_sync_enabled_flag = value; |
