Merge "Decoder: Fix end of bitstream error." into mnc-dev am: 810356f4de am: 65077f6cfe am: 82c7a3628e am: fa3361f209 am: b1d2064d95 am: c81da59a51 am: 5b33069e8f

am: 45c34bc177

Change-Id: Ib7b3a9dba8930edd21fae57f63f170fd8e004e36
This commit is contained in:
Hamsalekha S 2017-05-16 21:11:46 +00:00 committed by android-build-merger
commit 0382af937e
2 changed files with 24 additions and 5 deletions

View file

@ -866,6 +866,8 @@ WORD32 ih264d_parse_islice_data_cavlc(dec_struct_t * ps_dec,
ps_cur_deblk_mb->u1_mb_qp = ps_dec->u1_qp;
}
uc_more_data_flag = MORE_RBSP_DATA(ps_bitstrm);
if(u1_mbaff)
{
ih264d_update_mbaff_left_nnz(ps_dec, ps_cur_mb_info);
@ -879,7 +881,7 @@ WORD32 ih264d_parse_islice_data_cavlc(dec_struct_t * ps_dec,
/**************************************************************/
i2_cur_mb_addr++;
uc_more_data_flag = MORE_RBSP_DATA(ps_bitstrm);
/* Store the colocated information */
{
@ -1087,8 +1089,7 @@ WORD32 ih264d_parse_islice_data_cabac(dec_struct_t * ps_dec,
{
ih264d_update_mbaff_left_nnz(ps_dec, ps_cur_mb_info);
}
/* Next macroblock information */
i2_cur_mb_addr++;
if(ps_cur_mb_info->u1_topmb && u1_mbaff)
uc_more_data_flag = 1;
@ -1099,6 +1100,16 @@ WORD32 ih264d_parse_islice_data_cabac(dec_struct_t * ps_dec,
uc_more_data_flag = !uc_more_data_flag;
COPYTHECONTEXT("Decode Sliceterm",!uc_more_data_flag);
}
if(u1_mbaff)
{
if(!uc_more_data_flag && (0 == (i2_cur_mb_addr & 1)))
{
return ERROR_EOB_FLUSHBITS_T;
}
}
/* Next macroblock information */
i2_cur_mb_addr++;
/* Store the colocated information */
{

View file

@ -1006,8 +1006,7 @@ WORD32 ih264d_parse_inter_slice_data_cabac(dec_struct_t * ps_dec,
{
ih264d_update_mbaff_left_nnz(ps_dec, ps_cur_mb_info);
}
/* Next macroblock information */
i2_cur_mb_addr++;
if(ps_cur_mb_info->u1_topmb && u1_mbaff)
uc_more_data_flag = 1;
@ -1019,6 +1018,15 @@ WORD32 ih264d_parse_inter_slice_data_cabac(dec_struct_t * ps_dec,
COPYTHECONTEXT("Decode Sliceterm",!uc_more_data_flag);
}
if(u1_mbaff)
{
if(!uc_more_data_flag && (0 == (i2_cur_mb_addr & 1)))
{
return ERROR_EOB_FLUSHBITS_T;
}
}
/* Next macroblock information */
i2_cur_mb_addr++;
u1_num_mbs++;
u1_num_mbsNby2++;
ps_parse_mb_data++;