diff options
| author | Marco Nelissen <marcone@google.com> | 2017-06-06 20:55:22 +0000 |
|---|---|---|
| committer | android-build-merger <android-build-merger@google.com> | 2017-06-06 20:55:22 +0000 |
| commit | daea1b9afcca315dcefcf185f5a03ddd9e6b0c46 (patch) | |
| tree | a7d48dc00a2bc341d90d713e2fd63457ba359c95 | |
| parent | 004e8ea19b419180e6569a6134b6e4101c20b009 (diff) | |
| parent | a77a9a225c62ebfe421064524011be6b5bf73159 (diff) | |
| download | platform_external_libmpeg2-daea1b9afcca315dcefcf185f5a03ddd9e6b0c46.tar.gz platform_external_libmpeg2-daea1b9afcca315dcefcf185f5a03ddd9e6b0c46.tar.bz2 platform_external_libmpeg2-daea1b9afcca315dcefcf185f5a03ddd9e6b0c46.zip | |
Merge "Adding Error Check For PictureStructure Param" into mnc-dev am: eff6110334 am: 3c36499287 am: d92545af0f am: cd24c753d4 am: 0c7a52f296
am: a77a9a225c
Change-Id: I5aa543fcac364c18bc2d976b2b5c4b22b918b27f
| -rw-r--r-- | decoder/impeg2d_dec_hdr.c | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/decoder/impeg2d_dec_hdr.c b/decoder/impeg2d_dec_hdr.c index 770f4f2..4a84086 100644 --- a/decoder/impeg2d_dec_hdr.c +++ b/decoder/impeg2d_dec_hdr.c @@ -716,11 +716,12 @@ IMPEG2D_ERROR_CODES_T impeg2d_dec_pic_hdr(dec_state_t *ps_dec) * Arguments : * dec : Decoder context * -* Values Returned : None +* Values Returned : Error *******************************************************************************/ -void impeg2d_dec_pic_coding_ext(dec_state_t *ps_dec) +IMPEG2D_ERROR_CODES_T impeg2d_dec_pic_coding_ext(dec_state_t *ps_dec) { stream_t *ps_stream; + IMPEG2D_ERROR_CODES_T e_error = (IMPEG2D_ERROR_CODES_T) IV_SUCCESS; ps_stream = &ps_dec->s_bit_stream; impeg2d_bit_stream_flush(ps_stream,START_CODE_LEN); @@ -733,6 +734,11 @@ void impeg2d_dec_pic_coding_ext(dec_state_t *ps_dec) ps_dec->au2_f_code[1][1] = impeg2d_bit_stream_get(ps_stream,4); ps_dec->u2_intra_dc_precision = impeg2d_bit_stream_get(ps_stream,2); ps_dec->u2_picture_structure = impeg2d_bit_stream_get(ps_stream,2); + if (ps_dec->u2_picture_structure < TOP_FIELD || + ps_dec->u2_picture_structure > FRAME_PICTURE) + { + return IMPEG2D_FRM_HDR_DECODE_ERR; + } ps_dec->u2_top_field_first = impeg2d_bit_stream_get_bit(ps_stream); ps_dec->u2_frame_pred_frame_dct = impeg2d_bit_stream_get_bit(ps_stream); ps_dec->u2_concealment_motion_vectors = impeg2d_bit_stream_get_bit(ps_stream); @@ -760,6 +766,7 @@ void impeg2d_dec_pic_coding_ext(dec_state_t *ps_dec) { ps_dec->pu1_inv_scan_matrix = (UWORD8 *)gau1_impeg2_inv_scan_zig_zag; } + return e_error; } /******************************************************************************* @@ -1724,7 +1731,11 @@ IMPEG2D_ERROR_CODES_T impeg2d_process_video_bit_stream(dec_state_t *ps_dec) { return e_error; } - impeg2d_dec_pic_coding_ext(ps_dec); + e_error = impeg2d_dec_pic_coding_ext(ps_dec); + if ((IMPEG2D_ERROR_CODES_T)IVD_ERROR_NONE != e_error) + { + return e_error; + } e_error = impeg2d_dec_pic_ext_data(ps_dec); if ((IMPEG2D_ERROR_CODES_T)IVD_ERROR_NONE != e_error) { |
