diff options
-rw-r--r-- | decoder/ihevcd_parse_headers.c | 2 | ||||
-rwxr-xr-x | decoder/ihevcd_utils.c | 3 |
2 files changed, 5 insertions, 0 deletions
diff --git a/decoder/ihevcd_parse_headers.c b/decoder/ihevcd_parse_headers.c index a8daa3c..b8ed252 100644 --- a/decoder/ihevcd_parse_headers.c +++ b/decoder/ihevcd_parse_headers.c @@ -1402,6 +1402,8 @@ IHEVCD_ERROR_T ihevcd_parse_sps(codec_t *ps_codec) return IHEVCD_UNSUPPORTED_BIT_DEPTH; UEV_PARSE("log2_max_pic_order_cnt_lsb_minus4", value, ps_bitstrm); + if(value < 0 || value > 12) + return IHEVCD_INVALID_PARAMETER; ps_sps->i1_log2_max_pic_order_cnt_lsb = value + 4; BITS_PARSE("sps_sub_layer_ordering_info_present_flag", value, ps_bitstrm, 1); diff --git a/decoder/ihevcd_utils.c b/decoder/ihevcd_utils.c index 5e27885..fef3f74 100755 --- a/decoder/ihevcd_utils.c +++ b/decoder/ihevcd_utils.c @@ -736,6 +736,9 @@ IHEVCD_ERROR_T ihevcd_check_out_buf_size(codec_t *ps_codec) return (IHEVCD_ERROR_T)IHEVCD_SUCCESS; } + if(ps_codec->i4_disp_strd > (WORD32)wd) + wd = ps_codec->i4_disp_strd; + if(ps_codec->e_chroma_fmt == IV_YUV_420P) u4_min_num_out_bufs = MIN_OUT_BUFS_420; else if(ps_codec->e_chroma_fmt == IV_YUV_422ILE) |