Decoder: Ignore few dpb errors am: 026745ef04
am: 5d794693d5
Change-Id: I0e1fbd03ec9ecb916f6e931f3519a86777819415
This commit is contained in:
commit
4483ecc64b
2 changed files with 28 additions and 28 deletions
|
|
@ -374,7 +374,16 @@ WORD32 ih264d_insert_st_node(dpb_manager_t *ps_dpb_mgr,
|
|||
{
|
||||
/* Can occur only for field bottom pictures */
|
||||
ps_dpb_info[i].s_bot_field.u1_reference_info = IS_SHORT_TERM;
|
||||
return 0;
|
||||
|
||||
/*signal an error in the case of frame pic*/
|
||||
if(ps_dpb_info[i].ps_pic_buf->u1_pic_type == FRM_PIC)
|
||||
{
|
||||
return ERROR_DBP_MANAGER_T;
|
||||
}
|
||||
else
|
||||
{
|
||||
return OK;
|
||||
}
|
||||
}
|
||||
|
||||
if((ps_dpb_info[i].u1_used_as_ref == UNUSED_FOR_REF)
|
||||
|
|
|
|||
|
|
@ -451,7 +451,6 @@ WORD32 ih264d_end_of_pic_processing(dec_struct_t *ps_dec)
|
|||
{
|
||||
UWORD8 u1_pic_type, u1_nal_ref_idc;
|
||||
dec_slice_params_t *ps_cur_slice = ps_dec->ps_cur_slice;
|
||||
WORD32 ret;
|
||||
|
||||
/* If nal_ref_idc is equal to 0 for one slice or slice data partition NAL
|
||||
unit of a particular picture, it shall be equal to 0 for all slice and
|
||||
|
|
@ -475,34 +474,29 @@ WORD32 ih264d_end_of_pic_processing(dec_struct_t *ps_dec)
|
|||
if(ps_dec->ps_dpb_cmds->u1_long_term_reference_flag == 0)
|
||||
{
|
||||
ih264d_reset_ref_bufs(ps_dec->ps_dpb_mgr);
|
||||
|
||||
{
|
||||
ret = ih264d_insert_st_node(ps_dec->ps_dpb_mgr,
|
||||
ps_dec->ps_cur_pic,
|
||||
ps_dec->u1_pic_buf_id,
|
||||
ps_cur_slice->u2_frame_num);
|
||||
if(ret != OK)
|
||||
return ret;
|
||||
}
|
||||
/* ignore DPB errors */
|
||||
ih264d_insert_st_node(ps_dec->ps_dpb_mgr,
|
||||
ps_dec->ps_cur_pic,
|
||||
ps_dec->u1_pic_buf_id,
|
||||
ps_cur_slice->u2_frame_num);
|
||||
}
|
||||
else
|
||||
{
|
||||
/* Equivalent of inserting a pic directly as longterm Pic */
|
||||
|
||||
{
|
||||
ret = ih264d_insert_st_node(ps_dec->ps_dpb_mgr,
|
||||
/* ignore DPB errors */
|
||||
ih264d_insert_st_node(ps_dec->ps_dpb_mgr,
|
||||
ps_dec->ps_cur_pic,
|
||||
ps_dec->u1_pic_buf_id,
|
||||
ps_cur_slice->u2_frame_num);
|
||||
if(ret != OK)
|
||||
return ret;
|
||||
|
||||
/* Set longTermIdx = 0, MaxLongTermFrameIdx = 0 */
|
||||
ret = ih264d_delete_st_node_or_make_lt(
|
||||
ih264d_delete_st_node_or_make_lt(
|
||||
ps_dec->ps_dpb_mgr,
|
||||
ps_cur_slice->u2_frame_num, 0,
|
||||
ps_cur_slice->u1_field_pic_flag);
|
||||
if(ret != OK)
|
||||
return ret;
|
||||
|
||||
ps_dec->ps_dpb_mgr->u1_max_lt_pic_idx_plus1 = 1;
|
||||
}
|
||||
}
|
||||
|
|
@ -513,19 +507,16 @@ WORD32 ih264d_end_of_pic_processing(dec_struct_t *ps_dec)
|
|||
{
|
||||
UWORD16 u2_pic_num = ps_cur_slice->u2_frame_num;
|
||||
|
||||
/* ignore DPB errors */
|
||||
ih264d_do_mmco_buffer(ps_dec->ps_dpb_cmds, ps_dec->ps_dpb_mgr,
|
||||
ps_dec->ps_cur_sps->u1_num_ref_frames, u2_pic_num,
|
||||
(ps_dec->ps_cur_sps->u2_u4_max_pic_num_minus1),
|
||||
ps_dec->u1_nal_unit_type, ps_dec->ps_cur_pic,
|
||||
ps_dec->u1_pic_buf_id,
|
||||
ps_cur_slice->u1_field_pic_flag,
|
||||
ps_dec->e_dec_status);
|
||||
|
||||
|
||||
ret = ih264d_do_mmco_buffer(
|
||||
ps_dec->ps_dpb_cmds, ps_dec->ps_dpb_mgr,
|
||||
ps_dec->ps_cur_sps->u1_num_ref_frames,
|
||||
u2_pic_num,
|
||||
(ps_dec->ps_cur_sps->u2_u4_max_pic_num_minus1),
|
||||
ps_dec->u1_nal_unit_type, ps_dec->ps_cur_pic,
|
||||
ps_dec->u1_pic_buf_id,
|
||||
ps_cur_slice->u1_field_pic_flag,
|
||||
ps_dec->e_dec_status);
|
||||
if(ret != OK)
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
ih264d_update_default_index_list(ps_dec->ps_dpb_mgr);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue