diff --git a/decoder/ihevcd_parse_headers.c b/decoder/ihevcd_parse_headers.c index 154c335..4fb4403 100644 --- a/decoder/ihevcd_parse_headers.c +++ b/decoder/ihevcd_parse_headers.c @@ -1333,20 +1333,18 @@ IHEVCD_ERROR_T ihevcd_parse_sps(codec_t *ps_codec) for(; i < ps_sps->i1_sps_max_sub_layers; i++) { UEV_PARSE("max_dec_pic_buffering", value, ps_bitstrm); + if((value + 1) > MAX_DPB_SIZE) + { + return IHEVCD_INVALID_PARAMETER; + } ps_sps->ai1_sps_max_dec_pic_buffering[i] = value + 1; - if(ps_sps->ai1_sps_max_dec_pic_buffering[i] > MAX_DPB_SIZE) - { - return IHEVCD_INVALID_PARAMETER; - } - UEV_PARSE("num_reorder_pics", value, ps_bitstrm); - ps_sps->ai1_sps_max_num_reorder_pics[i] = value; - - if(ps_sps->ai1_sps_max_num_reorder_pics[i] > ps_sps->ai1_sps_max_dec_pic_buffering[i]) + if(value > ps_sps->ai1_sps_max_dec_pic_buffering[i]) { return IHEVCD_INVALID_PARAMETER; } + ps_sps->ai1_sps_max_num_reorder_pics[i] = value; UEV_PARSE("max_latency_increase", value, ps_bitstrm); ps_sps->ai1_sps_max_latency_increase[i] = value;