summaryrefslogtreecommitdiffstats
path: root/decoder/ih264d_parse_pslice.c
diff options
context:
space:
mode:
authorHarish Mahendrakar <harish.mahendrakar@ittiam.com>2017-01-05 12:10:47 +0530
committerSean McCreary <mccreary@mcwest.org>2017-04-05 19:13:03 -0600
commit063772f112715b8a9bc4710a57fbb4449da50ee4 (patch)
tree75c1617951585c72d14561aaa1f0796547cf8ff8 /decoder/ih264d_parse_pslice.c
parent868ba5cda871c27431763d639a464580d8145b9c (diff)
downloadandroid_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.c12
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;