diff options
author | Harish Mahendrakar <harish.mahendrakar@ittiam.com> | 2017-01-05 12:10:47 +0530 |
---|---|---|
committer | Sean McCreary <mccreary@mcwest.org> | 2017-04-05 19:13:03 -0600 |
commit | 063772f112715b8a9bc4710a57fbb4449da50ee4 (patch) | |
tree | 75c1617951585c72d14561aaa1f0796547cf8ff8 /decoder/ih264d_parse_pslice.c | |
parent | 868ba5cda871c27431763d639a464580d8145b9c (diff) | |
download | android_external_libavc-063772f112715b8a9bc4710a57fbb4449da50ee4.tar.gz android_external_libavc-063772f112715b8a9bc4710a57fbb4449da50ee4.tar.bz2 android_external_libavc-063772f112715b8a9bc4710a57fbb4449da50ee4.zip |
Decoder: Moved end of pic processing to end of decode call
ih264d_end_of_pic() was called after parsing slice of a new picture.
This is now being done at the end of decode of the current picture.
decode_gaps_in_frame_num which needs frame_num of new slice is now
done after decoding frame_num in new slice.
This helps in handling errors in picaff streams with gaps in frames
Bug: 33588051
Bug: 33641588
Bug: 34097231
AOSP-Change-Id: I1a26e611aaa2c19e2043e05a210849bd21b22220
CVE-2017-0538
CVE-2017-0551
Change-Id: I62cd9bff7c8d4b20c930e6ddc4164aaa3368407f
(cherry picked from commit 494561291a503840f385fbcd11d9bc5f4dc502b8)
Diffstat (limited to 'decoder/ih264d_parse_pslice.c')
-rw-r--r-- | decoder/ih264d_parse_pslice.c | 12 |
1 files changed, 1 insertions, 11 deletions
diff --git a/decoder/ih264d_parse_pslice.c b/decoder/ih264d_parse_pslice.c index efb94ad..0042ff2 100644 --- a/decoder/ih264d_parse_pslice.c +++ b/decoder/ih264d_parse_pslice.c @@ -1455,7 +1455,7 @@ WORD32 ih264d_mark_err_slice_skip(dec_struct_t * ps_dec, UWORD32 u1_mbaff = ps_slice->u1_mbaff_frame_flag; parse_part_params_t *ps_part_info; WORD32 ret; - + UNUSED(u1_is_idr_slice); if(ps_dec->ps_dec_err_status->u1_err_flag & REJECT_CUR_PIC) { @@ -1472,16 +1472,6 @@ WORD32 ih264d_mark_err_slice_skip(dec_struct_t * ps_dec, { /* first slice - missing/header corruption */ ps_dec->ps_cur_slice->u2_frame_num = u2_frame_num; - - - if(!ps_dec->u1_first_slice_in_stream) - { - ih264d_end_of_pic(ps_dec, u1_is_idr_slice, - ps_dec->ps_cur_slice->u2_frame_num); - ps_dec->s_cur_pic_poc.u2_frame_num = - ps_dec->ps_cur_slice->u2_frame_num; - } - { WORD32 i, j, poc = 0; |