DO NOT MERGE - Merge qt-qpr1-dev-plus-aosp-without-vendor (6129114) into stage-aosp-master
Bug: 146167222 Change-Id: I0bfd5bcbdfc87b371efb7ab5611ec505a10fa0f6
This commit is contained in:
commit
2f6efb8050
2 changed files with 32 additions and 27 deletions
|
|
@ -1115,6 +1115,30 @@ void ih264d_init_decoder(void * ps_dec_params)
|
||||||
/* Free any dynamic buffers that are allocated */
|
/* Free any dynamic buffers that are allocated */
|
||||||
ih264d_free_dynamic_bufs(ps_dec);
|
ih264d_free_dynamic_bufs(ps_dec);
|
||||||
|
|
||||||
|
{
|
||||||
|
UWORD8 i;
|
||||||
|
struct pic_buffer_t *ps_init_dpb;
|
||||||
|
ps_init_dpb = ps_dec->ps_dpb_mgr->ps_init_dpb[0][0];
|
||||||
|
for(i = 0; i < 2 * MAX_REF_BUFS; i++)
|
||||||
|
{
|
||||||
|
ps_init_dpb->pu1_buf1 = NULL;
|
||||||
|
ps_init_dpb->u1_long_term_frm_idx = MAX_REF_BUFS + 1;
|
||||||
|
ps_dec->ps_dpb_mgr->ps_init_dpb[0][i] = ps_init_dpb;
|
||||||
|
ps_dec->ps_dpb_mgr->ps_mod_dpb[0][i] = ps_init_dpb;
|
||||||
|
ps_init_dpb++;
|
||||||
|
}
|
||||||
|
|
||||||
|
ps_init_dpb = ps_dec->ps_dpb_mgr->ps_init_dpb[1][0];
|
||||||
|
for(i = 0; i < 2 * MAX_REF_BUFS; i++)
|
||||||
|
{
|
||||||
|
ps_init_dpb->pu1_buf1 = NULL;
|
||||||
|
ps_init_dpb->u1_long_term_frm_idx = MAX_REF_BUFS + 1;
|
||||||
|
ps_dec->ps_dpb_mgr->ps_init_dpb[1][i] = ps_init_dpb;
|
||||||
|
ps_dec->ps_dpb_mgr->ps_mod_dpb[1][i] = ps_init_dpb;
|
||||||
|
ps_init_dpb++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
ps_cur_slice = ps_dec->ps_cur_slice;
|
ps_cur_slice = ps_dec->ps_cur_slice;
|
||||||
ps_dec->init_done = 0;
|
ps_dec->init_done = 0;
|
||||||
|
|
||||||
|
|
@ -1623,29 +1647,6 @@ WORD32 ih264d_allocate_static_bufs(iv_obj_t **dec_hdl, void *pv_api_ip, void *pv
|
||||||
ps_dec->ps_col_mv_base = pv_buf;
|
ps_dec->ps_col_mv_base = pv_buf;
|
||||||
memset(ps_dec->ps_col_mv_base, 0, size);
|
memset(ps_dec->ps_col_mv_base, 0, size);
|
||||||
|
|
||||||
{
|
|
||||||
UWORD8 i;
|
|
||||||
struct pic_buffer_t *ps_init_dpb;
|
|
||||||
ps_init_dpb = ps_dec->ps_dpb_mgr->ps_init_dpb[0][0];
|
|
||||||
for(i = 0; i < 2 * MAX_REF_BUFS; i++)
|
|
||||||
{
|
|
||||||
ps_init_dpb->pu1_buf1 = NULL;
|
|
||||||
ps_init_dpb->u1_long_term_frm_idx = MAX_REF_BUFS + 1;
|
|
||||||
ps_dec->ps_dpb_mgr->ps_init_dpb[0][i] = ps_init_dpb;
|
|
||||||
ps_dec->ps_dpb_mgr->ps_mod_dpb[0][i] = ps_init_dpb;
|
|
||||||
ps_init_dpb++;
|
|
||||||
}
|
|
||||||
|
|
||||||
ps_init_dpb = ps_dec->ps_dpb_mgr->ps_init_dpb[1][0];
|
|
||||||
for(i = 0; i < 2 * MAX_REF_BUFS; i++)
|
|
||||||
{
|
|
||||||
ps_init_dpb->pu1_buf1 = NULL;
|
|
||||||
ps_init_dpb->u1_long_term_frm_idx = MAX_REF_BUFS + 1;
|
|
||||||
ps_dec->ps_dpb_mgr->ps_init_dpb[1][i] = ps_init_dpb;
|
|
||||||
ps_dec->ps_dpb_mgr->ps_mod_dpb[1][i] = ps_init_dpb;
|
|
||||||
ps_init_dpb++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
ih264d_init_decoder(ps_dec);
|
ih264d_init_decoder(ps_dec);
|
||||||
|
|
||||||
return IV_SUCCESS;
|
return IV_SUCCESS;
|
||||||
|
|
|
||||||
|
|
@ -1239,7 +1239,9 @@ WORD32 ih264d_assign_display_seq(dec_struct_t *ps_dec)
|
||||||
&& (DO_NOT_DISP
|
&& (DO_NOT_DISP
|
||||||
!= ps_dpb_mgr->ai4_poc_buf_id_map[i][0]))
|
!= ps_dpb_mgr->ai4_poc_buf_id_map[i][0]))
|
||||||
{
|
{
|
||||||
if(i4_poc_buf_id_map[i][1] < i4_min_poc)
|
/* Checking for <= is necessary to handle cases where there is one
|
||||||
|
valid buffer with poc set to 0x7FFFFFFF. */
|
||||||
|
if(i4_poc_buf_id_map[i][1] <= i4_min_poc)
|
||||||
{
|
{
|
||||||
i4_min_poc = i4_poc_buf_id_map[i][1];
|
i4_min_poc = i4_poc_buf_id_map[i][1];
|
||||||
i4_min_poc_buf_id = i4_poc_buf_id_map[i][0];
|
i4_min_poc_buf_id = i4_poc_buf_id_map[i][0];
|
||||||
|
|
@ -1303,8 +1305,8 @@ void ih264d_release_display_bufs(dec_struct_t *ps_dec)
|
||||||
WORD32 (*i4_poc_buf_id_map)[3] = ps_dpb_mgr->ai4_poc_buf_id_map;
|
WORD32 (*i4_poc_buf_id_map)[3] = ps_dpb_mgr->ai4_poc_buf_id_map;
|
||||||
|
|
||||||
i4_min_poc = 0x7fffffff;
|
i4_min_poc = 0x7fffffff;
|
||||||
i4_min_poc_buf_id = -1;
|
i4_min_poc_buf_id = 0;
|
||||||
i4_min_index = -1;
|
i4_min_index = 0;
|
||||||
|
|
||||||
ih264d_delete_nonref_nondisplay_pics(ps_dpb_mgr);
|
ih264d_delete_nonref_nondisplay_pics(ps_dpb_mgr);
|
||||||
|
|
||||||
|
|
@ -1315,7 +1317,9 @@ void ih264d_release_display_bufs(dec_struct_t *ps_dec)
|
||||||
{
|
{
|
||||||
if(i4_poc_buf_id_map[i][0] != -1)
|
if(i4_poc_buf_id_map[i][0] != -1)
|
||||||
{
|
{
|
||||||
if(i4_poc_buf_id_map[i][1] < i4_min_poc)
|
/* Checking for <= is necessary to handle cases where there is one
|
||||||
|
valid buffer with poc set to 0x7FFFFFFF. */
|
||||||
|
if(i4_poc_buf_id_map[i][1] <= i4_min_poc)
|
||||||
{
|
{
|
||||||
i4_min_poc = i4_poc_buf_id_map[i][1];
|
i4_min_poc = i4_poc_buf_id_map[i][1];
|
||||||
i4_min_poc_buf_id = i4_poc_buf_id_map[i][0];
|
i4_min_poc_buf_id = i4_poc_buf_id_map[i][0];
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue