diff options
author | Kevin F. Haggerty <haggertk@lineageos.org> | 2019-12-02 20:44:31 -0700 |
---|---|---|
committer | Kevin F. Haggerty <haggertk@lineageos.org> | 2019-12-02 20:44:31 -0700 |
commit | 3a3846dccd6adf64c4c64f08aeede9f52b7103f4 (patch) | |
tree | 44035f8641d5569678628198ac9aaa6c5403bf07 | |
parent | 4ed5cddcd1f56f4d13385d9ff208d89314f67410 (diff) | |
parent | c5afcd71d77f151dcaa27efb4bded85c96845002 (diff) | |
download | android_external_libhevc-lineage-15.1.tar.gz android_external_libhevc-lineage-15.1.tar.bz2 android_external_libhevc-lineage-15.1.zip |
Merge tag 'android-8.1.0_r71' into staging/lineage-15.1_merge-android-8.1.0_r71lineage-15.1
Android 8.1.0 Release 71 (5948682)
* tag 'android-8.1.0_r71': (25 commits)
Check change in CTB size when decoding multiple SPS with same id
decoder: Reset slice header at start of slice header decode
decoder: Fix valid SPS check in parsing SEI
Add push-pop for Neon D8-D15 registers
Add few more checks for invalid parameters in sps
Add missing return check for short_term_ref_pic_set()
Add bounds check for tile dimensions
Decoder: Signal IVD_RES_CHANGED error for change in crop params
Add limits check for the CTB position in a frame
Return error for invalid st/lt sps parameters
Add limits check for depth hierarchy sps parameters
Return error for invalid sps sub layers parameters
Return error for invalid reorder parameter
Check limits for log2_max_pic_order_cnt_lsb_minus4 in sps
Fix output buffer size check
Update ctb pu map for I slice
Check if luma wd and ht are multiple of min cb size
Fix first frame error return
Add PUSH-POP of D registers in Arm Neon 32 bit functions
Return error for negative crop parameters
...
Change-Id: I6aa7e4748063202b7913007895adc88aa749ef8c
-rw-r--r-- | decoder/ihevcd_parse_headers.c | 14 | ||||
-rw-r--r-- | decoder/ihevcd_parse_slice_header.c | 2 |
2 files changed, 14 insertions, 2 deletions
diff --git a/decoder/ihevcd_parse_headers.c b/decoder/ihevcd_parse_headers.c index 268d17d..8889487 100644 --- a/decoder/ihevcd_parse_headers.c +++ b/decoder/ihevcd_parse_headers.c @@ -1474,7 +1474,19 @@ IHEVCD_ERROR_T ihevcd_parse_sps(codec_t *ps_codec) 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; - + /* Check if CTB size is different in case of multiple SPS with same ID */ + { + sps_t *ps_sps_old = (ps_codec->s_parse.ps_sps_base + sps_id); + if(ps_sps_old->i1_sps_valid && ps_sps_old->i1_log2_ctb_size != ctb_log2_size_y) + { + if(0 == ps_codec->i4_first_pic_done) + { + return IHEVCD_INVALID_PARAMETER; + } + ps_codec->i4_reset_flag = 1; + return (IHEVCD_ERROR_T)IVD_RES_CHANGED; + } + } UEV_PARSE("log2_min_transform_block_size_minus2", value, ps_bitstrm); if(value > (LOG2_MAX_TU_SIZE - 2)) { diff --git a/decoder/ihevcd_parse_slice_header.c b/decoder/ihevcd_parse_slice_header.c index 2ef174c..f08aa64 100644 --- a/decoder/ihevcd_parse_slice_header.c +++ b/decoder/ihevcd_parse_slice_header.c @@ -314,7 +314,7 @@ IHEVCD_ERROR_T ihevcd_parse_slice_header(codec_t *ps_codec, } ps_slice_hdr = ps_codec->s_parse.ps_slice_hdr_base + (ps_codec->s_parse.i4_cur_slice_idx & (MAX_SLICE_HDR_CNT - 1)); - + memset(ps_slice_hdr, 0, sizeof(*ps_slice_hdr)); if((ps_pps->i1_dependent_slice_enabled_flag) && (!first_slice_in_pic_flag)) |