Fix in the case of invalid SPS PPS
Bug: 31092462 Change-Id: I0e2ab5a1088717bbf36f6b0cf859b5a6e0f59c5d
This commit is contained in:
parent
b926905ee2
commit
c2e8ffe451
2 changed files with 20 additions and 4 deletions
|
|
@ -3130,9 +3130,10 @@ WORD32 ih264d_video_decode(iv_obj_t *dec_hdl, void *pv_api_ip, void *pv_api_op)
|
|||
ret1 = ih264d_mark_err_slice_skip(ps_dec, num_mb_skipped, ps_dec->u1_nal_unit_type == IDR_SLICE_NAL, ps_dec->ps_cur_slice->u2_frame_num,
|
||||
&temp_poc, prev_slice_err);
|
||||
|
||||
if((ret1 == ERROR_UNAVAIL_PICBUF_T) || (ret1 == ERROR_UNAVAIL_MVBUF_T))
|
||||
if((ret1 == ERROR_UNAVAIL_PICBUF_T) || (ret1 == ERROR_UNAVAIL_MVBUF_T) ||
|
||||
(ret1 == ERROR_INV_SPS_PPS_T))
|
||||
{
|
||||
return IV_FAIL;
|
||||
ret = ret1;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1491,10 +1491,25 @@ WORD32 ih264d_mark_err_slice_skip(dec_struct_t * ps_dec,
|
|||
if(ps_dec->ps_cur_pic != NULL)
|
||||
poc = ps_dec->ps_cur_pic->i4_poc + 2;
|
||||
|
||||
j = 0;
|
||||
j = -1;
|
||||
for(i = 0; i < MAX_NUM_PIC_PARAMS; i++)
|
||||
{
|
||||
if(ps_dec->ps_pps[i].u1_is_valid == TRUE)
|
||||
j = i;
|
||||
{
|
||||
if(ps_dec->ps_pps[i].ps_sps->u1_is_valid == TRUE)
|
||||
{
|
||||
j = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//if valid SPS PPS is not found return error
|
||||
if(j == -1)
|
||||
{
|
||||
return ERROR_INV_SPS_PPS_T;
|
||||
}
|
||||
|
||||
{
|
||||
//initialize slice params required by ih264d_start_of_pic to valid values
|
||||
ps_dec->ps_cur_slice->u1_slice_type = P_SLICE;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue