Merge "Fix resolution change within a decode call." into mnc-dev am: 7fc42b801c am: 252ca18add am: 4c6288e861 am: 90fc697c82 am: 8b3d043280 am: d603f906d2 am: e1b496babb
am: 85b8159cf0
Change-Id: Iad7ea0ad904f26f9aa3695bd07c5ce30ab89cc93
This commit is contained in:
commit
6edcc25a5a
3 changed files with 12 additions and 0 deletions
|
|
@ -1927,6 +1927,7 @@ WORD32 ih264d_video_decode(iv_obj_t *dec_hdl, void *pv_api_ip, void *pv_api_op)
|
|||
ps_dec->u4_bs_deblk_thread_created = 0;
|
||||
ps_dec->u4_cur_bs_mb_num = 0;
|
||||
ps_dec->u4_start_recon_deblk = 0;
|
||||
ps_dec->u4_sps_cnt_in_process = 0;
|
||||
|
||||
DEBUG_THREADS_PRINTF(" Starting process call\n");
|
||||
|
||||
|
|
|
|||
|
|
@ -1154,6 +1154,16 @@ WORD32 ih264d_parse_nal_unit(iv_obj_t *dec_hdl,
|
|||
/* ! */
|
||||
ih264d_rbsp_to_sodb(ps_dec->ps_bitstrm);
|
||||
i_status = ih264d_parse_sps(ps_dec, ps_bitstrm);
|
||||
ps_dec->u4_sps_cnt_in_process++;
|
||||
/*If a resolution change happens within a process call, due to multiple sps
|
||||
* we will not support it.
|
||||
*/
|
||||
if((ps_dec->u4_sps_cnt_in_process > 1 ) &&
|
||||
(i_status == IVD_RES_CHANGED))
|
||||
{
|
||||
i_status = ERROR_INV_SPS_PPS_T;
|
||||
ps_dec->u1_res_changed = 0;
|
||||
}
|
||||
if(i_status == ERROR_INV_SPS_PPS_T)
|
||||
return i_status;
|
||||
if(!i_status)
|
||||
|
|
|
|||
|
|
@ -1249,6 +1249,7 @@ typedef struct _DecStruct
|
|||
UWORD32 u4_cur_bs_mb_num;
|
||||
UWORD32 u4_bs_cur_slice_num_mbs;
|
||||
UWORD32 u4_cur_deblk_mb_num;
|
||||
UWORD32 u4_sps_cnt_in_process;
|
||||
volatile UWORD16 u2_cur_slice_num_bs;
|
||||
|
||||
UWORD32 u4_deblk_mb_x;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue