Decoder: Return correct error code for slice header errors Return ERROR_INV_SLICE_HDR_T instead of ERROR_INV_SPS_PPS_T for slice header errors. Bug: 34097915 Change-Id: I45d14a71f2322ff349058baaf65fb0f3c1140fba (cherry picked from commit 9a00f562a612d56e7b2b989d168647db900ba6cf)
diff --git a/decoder/ih264d_parse_pslice.c b/decoder/ih264d_parse_pslice.c index 47acdaf..bf94c78 100644 --- a/decoder/ih264d_parse_pslice.c +++ b/decoder/ih264d_parse_pslice.c
@@ -1510,7 +1510,7 @@ //if valid SPS PPS is not found return error if(j == -1) { - return ERROR_INV_SPS_PPS_T; + return ERROR_INV_SLICE_HDR_T; } /* call ih264d_start_of_pic only if it was not called earlier*/
diff --git a/decoder/ih264d_parse_slice.c b/decoder/ih264d_parse_slice.c index 11a317b..32c51e8 100644 --- a/decoder/ih264d_parse_slice.c +++ b/decoder/ih264d_parse_slice.c
@@ -1138,19 +1138,19 @@ u4_temp = ih264d_uev(pu4_bitstrm_ofst, pu4_bitstrm_buf); if(u4_temp & MASK_ERR_PIC_SET_ID) - return ERROR_INV_SPS_PPS_T; + return ERROR_INV_SLICE_HDR_T; /* discard slice if pic param is invalid */ COPYTHECONTEXT("SH: pic_parameter_set_id", u4_temp); ps_pps = &ps_dec->ps_pps[u4_temp]; if(FALSE == ps_pps->u1_is_valid) { - return ERROR_INV_SPS_PPS_T; + return ERROR_INV_SLICE_HDR_T; } ps_seq = ps_pps->ps_sps; if(!ps_seq) - return ERROR_INV_SPS_PPS_T; + return ERROR_INV_SLICE_HDR_T; if(FALSE == ps_seq->u1_is_valid) - return ERROR_INV_SPS_PPS_T; + return ERROR_INV_SLICE_HDR_T; /* Get the frame num */ u2_frame_num = ih264d_get_bits_h264(ps_bitstrm, @@ -1199,7 +1199,7 @@ u4_idr_pic_id = ih264d_uev(pu4_bitstrm_ofst, pu4_bitstrm_buf); if(u4_idr_pic_id > 65535) - return ERROR_INV_SPS_PPS_T; + return ERROR_INV_SLICE_HDR_T; COPYTHECONTEXT("SH: ", u4_idr_pic_id); } @@ -1214,7 +1214,7 @@ ps_bitstrm, ps_seq->u1_log2_max_pic_order_cnt_lsb_minus); if(i_temp < 0 || i_temp >= ps_seq->i4_max_pic_order_cntLsb) - return ERROR_INV_SPS_PPS_T; + return ERROR_INV_SLICE_HDR_T; s_tmp_poc.i4_pic_order_cnt_lsb = i_temp; COPYTHECONTEXT("SH: pic_order_cnt_lsb", s_tmp_poc.i4_pic_order_cnt_lsb); @@ -1251,7 +1251,7 @@ { u4_temp = ih264d_uev(pu4_bitstrm_ofst, pu4_bitstrm_buf); if(u4_temp > MAX_REDUNDANT_PIC_CNT) - return ERROR_INV_SPS_PPS_T; + return ERROR_INV_SLICE_HDR_T; u1_redundant_pic_cnt = u4_temp; COPYTHECONTEXT("SH: redundant_pic_cnt", u1_redundant_pic_cnt); }