Merge "mvc: corrected logic for inserting long term refs" am: d46160f452 am: 3fedaf0bf7 am: 6fb73c9f9d
Original change: 2202386
Change-Id: Ia65a2333a55064603759b98acc4b4ae85a030218
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
commit
2b42830c50
1 changed files with 18 additions and 21 deletions
|
|
@ -1503,10 +1503,6 @@ static WORD32 imvcd_dpb_delete_gap_frm_mmco(mvc_dpb_manager_t *ps_dpb_mgr, WORD3
|
|||
static WORD32 imvcd_dpb_insert_lt_node(mvc_dpb_manager_t *ps_dpb_mgr, mvc_dpb_info_t *ps_new_node,
|
||||
UWORD32 u4_lt_idx)
|
||||
{
|
||||
WORD32 i;
|
||||
|
||||
mvc_dpb_info_t *ps_next_dpb = ps_dpb_mgr->ps_dpb_lt_head;
|
||||
|
||||
ps_new_node->s_top_field.u1_reference_info = IS_LONG_TERM;
|
||||
ps_new_node->s_bot_field.u1_reference_info = IS_LONG_TERM;
|
||||
ps_new_node->s_top_field.u1_long_term_frame_idx = u4_lt_idx;
|
||||
|
|
@ -1516,27 +1512,28 @@ static WORD32 imvcd_dpb_insert_lt_node(mvc_dpb_manager_t *ps_dpb_mgr, mvc_dpb_in
|
|||
|
||||
if(ps_dpb_mgr->u1_num_lt_ref_bufs > 0)
|
||||
{
|
||||
if(u4_lt_idx < ps_next_dpb->ps_au_buf->u1_long_term_frm_idx)
|
||||
{
|
||||
ps_new_node->ps_prev_long = ps_next_dpb;
|
||||
ps_dpb_mgr->ps_dpb_lt_head = ps_new_node;
|
||||
}
|
||||
else
|
||||
{
|
||||
ps_next_dpb = ps_next_dpb->ps_prev_long;
|
||||
WORD32 i;
|
||||
|
||||
for(i = 1; i < ps_dpb_mgr->u1_num_lt_ref_bufs; i++)
|
||||
mvc_dpb_info_t **pps_next_node = &ps_dpb_mgr->ps_dpb_lt_head;
|
||||
|
||||
for(i = 0; i < ps_dpb_mgr->u1_num_lt_ref_bufs; i++)
|
||||
{
|
||||
if((*pps_next_node)->ps_au_buf->u1_long_term_frm_idx > u4_lt_idx)
|
||||
{
|
||||
if(ps_next_dpb->ps_au_buf->u1_long_term_frm_idx > u4_lt_idx)
|
||||
{
|
||||
ps_new_node->ps_prev_long = ps_next_dpb->ps_prev_long;
|
||||
ps_next_dpb->ps_prev_long = ps_new_node;
|
||||
ps_new_node->ps_prev_long = *pps_next_node;
|
||||
*pps_next_node = ps_new_node;
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
ps_next_dpb = ps_next_dpb->ps_prev_long;
|
||||
break;
|
||||
}
|
||||
else if(NULL == (*pps_next_node)->ps_prev_long)
|
||||
{
|
||||
(*pps_next_node)->ps_prev_long = ps_new_node;
|
||||
ps_new_node->ps_prev_long = NULL;
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
pps_next_node = &(*pps_next_node)->ps_prev_long;
|
||||
}
|
||||
}
|
||||
else
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue