diff options
author | Harish Mahendrakar <harish.mahendrakar@ittiam.com> | 2017-02-14 17:00:07 +0000 |
---|---|---|
committer | android-build-merger <android-build-merger@google.com> | 2017-02-14 17:00:07 +0000 |
commit | 8b75cdae9bab9ade09cfb717443cd60b0542815b (patch) | |
tree | 0a36cca92a1fac816709794a81d7e367bdd78772 | |
parent | 4543cf41adeaf754a863803aafb10f14e8328641 (diff) | |
parent | 8b5fd8f24eba5dd19ab2f80ea11a9125aa882ae2 (diff) | |
download | libavc-8b75cdae9bab9ade09cfb717443cd60b0542815b.tar.gz |
Decoder: Treat first slice in a picture as part of new picture always
am: 8b5fd8f24e
Change-Id: Ia14e9fae4a08143ff86439b5440ab9cf5e3052e3
-rw-r--r-- | decoder/ih264d_parse_slice.c | 24 |
1 files changed, 5 insertions, 19 deletions
diff --git a/decoder/ih264d_parse_slice.c b/decoder/ih264d_parse_slice.c index 67375c3..b80f81a 100644 --- a/decoder/ih264d_parse_slice.c +++ b/decoder/ih264d_parse_slice.c @@ -1259,8 +1259,11 @@ WORD32 ih264d_parse_decode_slice(UWORD8 u1_is_idr_slice, /*--------------------------------------------------------------------*/ /* Check if the slice is part of new picture */ /*--------------------------------------------------------------------*/ - i1_is_end_of_poc = 0; - if(!ps_dec->u1_first_slice_in_stream) + /* First slice of a picture is always considered as part of new picture */ + i1_is_end_of_poc = 1; + ps_dec->ps_dec_err_status->u1_err_flag &= MASK_REJECT_CUR_PIC; + + if(ps_dec->u4_first_slice_in_pic != 2) { i1_is_end_of_poc = ih264d_is_end_of_pic(u2_frame_num, u1_nal_ref_idc, &s_tmp_poc, &ps_dec->s_cur_pic_poc, @@ -1268,23 +1271,6 @@ WORD32 ih264d_parse_decode_slice(UWORD8 u1_is_idr_slice, u1_nal_unit_type, u4_idr_pic_id, u1_field_pic_flag, u1_bottom_field_flag); - - /* since we support only Full frame decode, every new process should - * process a new pic - */ - if((ps_dec->u4_first_slice_in_pic == 2) && (i1_is_end_of_poc == 0)) - { - /* if it is the first slice is process call ,it should be a new frame. If it is not - * reject current pic and dont add it to dpb - */ - ps_dec->ps_dec_err_status->u1_err_flag |= REJECT_CUR_PIC; - i1_is_end_of_poc = 1; - } - else - { - /* reset REJECT_CUR_PIC */ - ps_dec->ps_dec_err_status->u1_err_flag &= MASK_REJECT_CUR_PIC; - } } /*--------------------------------------------------------------------*/ |