summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarco Nelissen <marcone@google.com>2017-06-06 20:55:22 +0000
committerandroid-build-merger <android-build-merger@google.com>2017-06-06 20:55:22 +0000
commitdaea1b9afcca315dcefcf185f5a03ddd9e6b0c46 (patch)
treea7d48dc00a2bc341d90d713e2fd63457ba359c95
parent004e8ea19b419180e6569a6134b6e4101c20b009 (diff)
parenta77a9a225c62ebfe421064524011be6b5bf73159 (diff)
downloadplatform_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.c17
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)
{