Merge QQ3A.200605.002 into master

Bug: 158095402
Merged-In: Ie57dcb92f1c0aaebd5e701f01ebdc899add7f9ba
Change-Id: Iddded152601d50b336a2a313789acf156a82eb76
This commit is contained in:
Xin Li 2020-06-03 10:45:00 -07:00
commit fa8ec83555

View file

@ -1037,7 +1037,6 @@ WORD32 ih264d_fix_error_in_dpb(dec_struct_t *ps_dec)
ps_st_next_dpb->ps_prev_short = ps_st_curr_dpb->ps_prev_short; ps_st_next_dpb->ps_prev_short = ps_st_curr_dpb->ps_prev_short;
} }
ps_dec->ps_dpb_mgr->u1_num_st_ref_bufs--; ps_dec->ps_dpb_mgr->u1_num_st_ref_bufs--;
ps_dec->ps_dpb_mgr->u1_num_lt_ref_bufs++;
no_of_nodes_deleted++; no_of_nodes_deleted++;
break; break;
} }
@ -1315,7 +1314,12 @@ WORD32 ih264d_parse_decode_slice(UWORD8 u1_is_idr_slice,
if(i1_is_end_of_poc || ps_dec->u1_first_slice_in_stream) if(i1_is_end_of_poc || ps_dec->u1_first_slice_in_stream)
{ {
if(u2_frame_num != ps_dec->u2_prv_frame_num /* If the current slice is not a field or frame number of the current
* slice doesn't match with previous slice, and decoder is expecting
* to decode a field i.e. ps_dec->u1_top_bottom_decoded is not 0 and
* is not (TOP_FIELD_ONLY | BOT_FIELD_ONLY), treat it as a dangling
* field */
if((u1_field_pic_flag == 0 || u2_frame_num != ps_dec->u2_prv_frame_num)
&& ps_dec->u1_top_bottom_decoded != 0 && ps_dec->u1_top_bottom_decoded != 0
&& ps_dec->u1_top_bottom_decoded && ps_dec->u1_top_bottom_decoded
!= (TOP_FIELD_ONLY | BOT_FIELD_ONLY)) != (TOP_FIELD_ONLY | BOT_FIELD_ONLY))