Decoder: Add support for returning reorder_depth
Added support for returning reorder_depth for frames in decode order. Bug: 138627015 Test: Verify reorder_depth returned for few clips Change-Id: I9b68a9544d7d011cf93dfccd308c754b8e16e39e
This commit is contained in:
parent
c693cc9fad
commit
fe5a6ada3e
4 changed files with 24 additions and 2 deletions
|
|
@ -1044,6 +1044,7 @@ void ih264d_init_decoder(void * ps_dec_params)
|
|||
ps_dec->i4_max_poc = 0;
|
||||
ps_dec->i4_prev_max_display_seq = 0;
|
||||
ps_dec->u1_recon_mb_grp = 4;
|
||||
ps_dec->i4_reorder_depth = -1;
|
||||
|
||||
/* Field PIC initializations */
|
||||
ps_dec->u1_second_field = 0;
|
||||
|
|
@ -1850,7 +1851,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_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;
|
||||
|
||||
if(ps_dec_ip->u4_size
|
||||
|
|
@ -2039,6 +2041,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_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;
|
||||
|
||||
|
|
@ -2357,6 +2361,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_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
|
||||
|
|
@ -3665,6 +3670,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_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->u4_new_seq = 0;
|
||||
|
|
|
|||
|
|
@ -1053,6 +1053,7 @@ typedef struct _DecStruct
|
|||
struct _DecMbInfo * ps_cur_mb_info,
|
||||
const UWORD16 u2_mbxn_mb);
|
||||
UWORD8 u1_init_dec_flag;
|
||||
WORD32 i4_reorder_depth;
|
||||
prev_seq_params_t s_prev_seq_params;
|
||||
UWORD8 u1_cur_mb_fld_dec_flag; /* current Mb fld or Frm */
|
||||
|
||||
|
|
@ -1315,7 +1316,7 @@ typedef struct _DecStruct
|
|||
*
|
||||
*/
|
||||
WORD32 i4_degrade_pic_cnt;
|
||||
|
||||
WORD32 i4_display_index;
|
||||
UWORD32 u4_pic_buf_got;
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -769,6 +769,7 @@ WORD32 ih264d_init_pic(dec_struct_t *ps_dec,
|
|||
else
|
||||
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)
|
||||
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_u_buf = ps_out_buffer->pu1_bufs[1];
|
||||
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)
|
||||
{
|
||||
pv_disp_op->e4_fld_type = 0;
|
||||
|
|
@ -961,6 +963,7 @@ WORD32 ih264d_get_next_display_field(dec_struct_t * ps_dec,
|
|||
|
||||
/* ! */
|
||||
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 */
|
||||
ps_op_frm->pv_y_buf = pic_buf->pu1_buf1 + pic_buf->u2_crop_offset_y;
|
||||
|
|
|
|||
|
|
@ -486,6 +486,17 @@ typedef struct{
|
|||
* 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;
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue