Merge Android10 QPR1 into AOSP master

Bug: 145570283
Change-Id: I3aa82731c599d2e1a92fa9f309aa34c641dd3116
This commit is contained in:
Xin Li 2019-12-02 21:25:05 -08:00
commit dd964bfe0c
4 changed files with 24 additions and 2 deletions

View file

@ -1196,6 +1196,7 @@ void ih264d_init_decoder(void * ps_dec_params)
ps_dec->i4_max_poc = 0; ps_dec->i4_max_poc = 0;
ps_dec->i4_prev_max_display_seq = 0; ps_dec->i4_prev_max_display_seq = 0;
ps_dec->u1_recon_mb_grp = 4; ps_dec->u1_recon_mb_grp = 4;
ps_dec->i4_reorder_depth = -1;
/* Field PIC initializations */ /* Field PIC initializations */
ps_dec->u1_second_field = 0; ps_dec->u1_second_field = 0;
@ -2013,7 +2014,8 @@ WORD32 ih264d_video_decode(iv_obj_t *dec_hdl, void *pv_api_ip, void *pv_api_op)
ps_dec->u1_pic_decode_done = 0; ps_dec->u1_pic_decode_done = 0;
ps_dec_op->u4_num_bytes_consumed = 0; ps_dec_op->u4_num_bytes_consumed = 0;
ps_dec_op->i4_reorder_depth = -1;
ps_dec_op->i4_display_index = DEFAULT_POC;
ps_dec->ps_out_buffer = NULL; ps_dec->ps_out_buffer = NULL;
if(ps_dec_ip->u4_size if(ps_dec_ip->u4_size
@ -2204,6 +2206,8 @@ WORD32 ih264d_video_decode(iv_obj_t *dec_hdl, void *pv_api_ip, void *pv_api_op)
ps_dec_op->u4_pic_wd = (UWORD32)ps_dec->u2_disp_width; ps_dec_op->u4_pic_wd = (UWORD32)ps_dec->u2_disp_width;
ps_dec_op->u4_pic_ht = (UWORD32)ps_dec->u2_disp_height; ps_dec_op->u4_pic_ht = (UWORD32)ps_dec->u2_disp_height;
ps_dec_op->i4_reorder_depth = ps_dec->i4_reorder_depth;
ps_dec_op->i4_display_index = ps_dec->i4_display_index;
ps_dec_op->u4_new_seq = 0; ps_dec_op->u4_new_seq = 0;
@ -2522,6 +2526,7 @@ WORD32 ih264d_video_decode(iv_obj_t *dec_hdl, void *pv_api_ip, void *pv_api_op)
{ {
ps_dec_op->u4_pic_wd = (UWORD32)ps_dec->u2_disp_width; ps_dec_op->u4_pic_wd = (UWORD32)ps_dec->u2_disp_width;
ps_dec_op->u4_pic_ht = (UWORD32)ps_dec->u2_disp_height; ps_dec_op->u4_pic_ht = (UWORD32)ps_dec->u2_disp_height;
ps_dec_op->i4_reorder_depth = ps_dec->i4_reorder_depth;
} }
//Report if header (sps and pps) has not been decoded yet //Report if header (sps and pps) has not been decoded yet
@ -4077,6 +4082,8 @@ void ih264d_fill_output_struct_from_context(dec_struct_t *ps_dec,
ps_dec_op->u4_pic_wd = (UWORD32)ps_dec->u2_disp_width; ps_dec_op->u4_pic_wd = (UWORD32)ps_dec->u2_disp_width;
ps_dec_op->u4_pic_ht = (UWORD32)ps_dec->u2_disp_height; ps_dec_op->u4_pic_ht = (UWORD32)ps_dec->u2_disp_height;
} }
ps_dec_op->i4_reorder_depth = ps_dec->i4_reorder_depth;
ps_dec_op->i4_display_index = ps_dec->i4_display_index;
ps_dec_op->e_pic_type = ps_dec->i4_frametype; ps_dec_op->e_pic_type = ps_dec->i4_frametype;
ps_dec_op->u4_new_seq = 0; ps_dec_op->u4_new_seq = 0;

View file

@ -1059,6 +1059,7 @@ typedef struct _DecStruct
struct _DecMbInfo * ps_cur_mb_info, struct _DecMbInfo * ps_cur_mb_info,
const UWORD16 u2_mbxn_mb); const UWORD16 u2_mbxn_mb);
UWORD8 u1_init_dec_flag; UWORD8 u1_init_dec_flag;
WORD32 i4_reorder_depth;
prev_seq_params_t s_prev_seq_params; prev_seq_params_t s_prev_seq_params;
UWORD8 u1_cur_mb_fld_dec_flag; /* current Mb fld or Frm */ UWORD8 u1_cur_mb_fld_dec_flag; /* current Mb fld or Frm */
@ -1321,7 +1322,7 @@ typedef struct _DecStruct
* *
*/ */
WORD32 i4_degrade_pic_cnt; WORD32 i4_degrade_pic_cnt;
WORD32 i4_display_index;
UWORD32 u4_pic_buf_got; UWORD32 u4_pic_buf_got;
/** /**

View file

@ -769,6 +769,7 @@ WORD32 ih264d_init_pic(dec_struct_t *ps_dec,
else else
ps_dec->i4_display_delay = ps_seq->s_vui.u4_num_reorder_frames * 2 + 2; ps_dec->i4_display_delay = ps_seq->s_vui.u4_num_reorder_frames * 2 + 2;
} }
ps_dec->i4_reorder_depth = ps_dec->i4_display_delay;
if(IVD_DECODE_FRAME_OUT == ps_dec->e_frm_out_mode) if(IVD_DECODE_FRAME_OUT == ps_dec->e_frm_out_mode)
ps_dec->i4_display_delay = 0; ps_dec->i4_display_delay = 0;
@ -945,6 +946,7 @@ WORD32 ih264d_get_next_display_field(dec_struct_t * ps_dec,
pv_disp_op->s_disp_frm_buf.pv_y_buf = ps_out_buffer->pu1_bufs[0]; pv_disp_op->s_disp_frm_buf.pv_y_buf = ps_out_buffer->pu1_bufs[0];
pv_disp_op->s_disp_frm_buf.pv_u_buf = ps_out_buffer->pu1_bufs[1]; pv_disp_op->s_disp_frm_buf.pv_u_buf = ps_out_buffer->pu1_bufs[1];
pv_disp_op->s_disp_frm_buf.pv_v_buf = ps_out_buffer->pu1_bufs[2]; pv_disp_op->s_disp_frm_buf.pv_v_buf = ps_out_buffer->pu1_bufs[2];
ps_dec->i4_display_index = DEFAULT_POC;
if(pic_buf != NULL) if(pic_buf != NULL)
{ {
ps_dec->pv_disp_sei_params = &pic_buf->s_sei_pic; ps_dec->pv_disp_sei_params = &pic_buf->s_sei_pic;
@ -962,6 +964,7 @@ WORD32 ih264d_get_next_display_field(dec_struct_t * ps_dec,
/* ! */ /* ! */
pv_disp_op->u4_ts = pic_buf->u4_ts; pv_disp_op->u4_ts = pic_buf->u4_ts;
ps_dec->i4_display_index = pic_buf->i4_poc;
/* set the start of the Y, U and V buffer pointer for display */ /* set the start of the Y, U and V buffer pointer for display */
ps_op_frm->pv_y_buf = pic_buf->pu1_buf1 + pic_buf->u2_crop_offset_y; ps_op_frm->pv_y_buf = pic_buf->pu1_buf1 + pic_buf->u2_crop_offset_y;

View file

@ -514,6 +514,17 @@ typedef struct{
* disp_buf_id * disp_buf_id
*/ */
UWORD32 u4_disp_buf_id; UWORD32 u4_disp_buf_id;
/**
* reorder_depth
*/
WORD32 i4_reorder_depth;
/**
* disp_buf_id
*/
WORD32 i4_display_index;
}ivd_video_decode_op_t; }ivd_video_decode_op_t;