diff options
author | Hamsalekha S <hamsalekha.s@ittiam.com> | 2017-05-16 20:49:45 +0000 |
---|---|---|
committer | android-build-merger <android-build-merger@google.com> | 2017-05-16 20:49:45 +0000 |
commit | 65077f6cfee77588e85d83bde4a7146d78dc1c68 (patch) | |
tree | 13d807226412b831e881d07dc43f729604dca559 /decoder/ih264d_parse_islice.c | |
parent | b2ce6aa1f301edb470d2f137a446b742f7b27902 (diff) | |
parent | 810356f4de8959641e04e403e65314a8cd7e0093 (diff) | |
download | libavc-65077f6cfee77588e85d83bde4a7146d78dc1c68.tar.gz |
Merge "Decoder: Fix end of bitstream error." into mnc-dev
am: 810356f4de
Change-Id: Ibca3bfa3cd3dc50a53c02a2d972cf41b10ac5848
Diffstat (limited to 'decoder/ih264d_parse_islice.c')
-rw-r--r-- | decoder/ih264d_parse_islice.c | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/decoder/ih264d_parse_islice.c b/decoder/ih264d_parse_islice.c index 0312060..504b775 100644 --- a/decoder/ih264d_parse_islice.c +++ b/decoder/ih264d_parse_islice.c @@ -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 */ { |