diff --git a/decoder/ih264d_parse_islice.c b/decoder/ih264d_parse_islice.c index a5072e9..0312060 100644 --- a/decoder/ih264d_parse_islice.c +++ b/decoder/ih264d_parse_islice.c @@ -869,6 +869,10 @@ WORD32 ih264d_parse_islice_data_cavlc(dec_struct_t * ps_dec, if(u1_mbaff) { ih264d_update_mbaff_left_nnz(ps_dec, ps_cur_mb_info); + if(!uc_more_data_flag && (0 == (i2_cur_mb_addr & 1))) + { + return ERROR_EOB_FLUSHBITS_T; + } } /**************************************************************/ /* Get next Macroblock address */ diff --git a/decoder/ih264d_parse_pslice.c b/decoder/ih264d_parse_pslice.c index efb94ad..89aed38 100644 --- a/decoder/ih264d_parse_pslice.c +++ b/decoder/ih264d_parse_pslice.c @@ -1348,6 +1348,10 @@ WORD32 ih264d_parse_inter_slice_data_cavlc(dec_struct_t * ps_dec, if(u1_mbaff) { ih264d_update_mbaff_left_nnz(ps_dec, ps_cur_mb_info); + if(!uc_more_data_flag && !i2_mb_skip_run && (0 == (i2_cur_mb_addr & 1))) + { + return ERROR_EOB_FLUSHBITS_T; + } } /**************************************************************/ /* Get next Macroblock address */