diff --git a/decoder/ihevcd_parse_headers.c b/decoder/ihevcd_parse_headers.c index af9903a..e34e57f 100644 --- a/decoder/ihevcd_parse_headers.c +++ b/decoder/ihevcd_parse_headers.c @@ -1487,7 +1487,13 @@ IHEVCD_ERROR_T ihevcd_parse_sps(codec_t *ps_codec) ps_sps->i1_num_short_term_ref_pic_sets = value; for(i = 0; i < ps_sps->i1_num_short_term_ref_pic_sets; i++) - ihevcd_short_term_ref_pic_set(ps_bitstrm, &ps_sps->as_stref_picset[0], ps_sps->i1_num_short_term_ref_pic_sets, i, &ps_sps->as_stref_picset[i]); + { + ret = ihevcd_short_term_ref_pic_set(ps_bitstrm, &ps_sps->as_stref_picset[0], ps_sps->i1_num_short_term_ref_pic_sets, i, &ps_sps->as_stref_picset[i]); + if (ret != IHEVCD_SUCCESS) + { + return ret; + } + } BITS_PARSE("long_term_ref_pics_present_flag", value, ps_bitstrm, 1); ps_sps->i1_long_term_ref_pics_present_flag = value; diff --git a/decoder/ihevcd_parse_slice_header.c b/decoder/ihevcd_parse_slice_header.c index 8dd3b13..9f79238 100644 --- a/decoder/ihevcd_parse_slice_header.c +++ b/decoder/ihevcd_parse_slice_header.c @@ -436,12 +436,15 @@ IHEVCD_ERROR_T ihevcd_parse_slice_header(codec_t *ps_codec, } else { - ihevcd_short_term_ref_pic_set(ps_bitstrm, - &ps_sps->as_stref_picset[0], - ps_sps->i1_num_short_term_ref_pic_sets, - ps_sps->i1_num_short_term_ref_pic_sets, - &ps_slice_hdr->s_stref_picset); - + ret = ihevcd_short_term_ref_pic_set(ps_bitstrm, + &ps_sps->as_stref_picset[0], + ps_sps->i1_num_short_term_ref_pic_sets, + ps_sps->i1_num_short_term_ref_pic_sets, + &ps_slice_hdr->s_stref_picset); + if (ret != IHEVCD_SUCCESS) + { + return ret; + } st_rps_idx = ps_sps->i1_num_short_term_ref_pic_sets; num_neg_pics = ps_slice_hdr->s_stref_picset.i1_num_neg_pics; num_pos_pics = ps_slice_hdr->s_stref_picset.i1_num_pos_pics;