xref: /aosp_15_r20/external/libavc/decoder/ih264d_error_handler.h (revision 495ae853bb871d1e5a258cb02c2cc13cde8ddb9a)
1*495ae853SAndroid Build Coastguard Worker /******************************************************************************
2*495ae853SAndroid Build Coastguard Worker  *
3*495ae853SAndroid Build Coastguard Worker  * Copyright (C) 2015 The Android Open Source Project
4*495ae853SAndroid Build Coastguard Worker  *
5*495ae853SAndroid Build Coastguard Worker  * Licensed under the Apache License, Version 2.0 (the "License");
6*495ae853SAndroid Build Coastguard Worker  * you may not use this file except in compliance with the License.
7*495ae853SAndroid Build Coastguard Worker  * You may obtain a copy of the License at:
8*495ae853SAndroid Build Coastguard Worker  *
9*495ae853SAndroid Build Coastguard Worker  * http://www.apache.org/licenses/LICENSE-2.0
10*495ae853SAndroid Build Coastguard Worker  *
11*495ae853SAndroid Build Coastguard Worker  * Unless required by applicable law or agreed to in writing, software
12*495ae853SAndroid Build Coastguard Worker  * distributed under the License is distributed on an "AS IS" BASIS,
13*495ae853SAndroid Build Coastguard Worker  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14*495ae853SAndroid Build Coastguard Worker  * See the License for the specific language governing permissions and
15*495ae853SAndroid Build Coastguard Worker  * limitations under the License.
16*495ae853SAndroid Build Coastguard Worker  *
17*495ae853SAndroid Build Coastguard Worker  *****************************************************************************
18*495ae853SAndroid Build Coastguard Worker  * Originally developed and contributed by Ittiam Systems Pvt. Ltd, Bangalore
19*495ae853SAndroid Build Coastguard Worker */
20*495ae853SAndroid Build Coastguard Worker 
21*495ae853SAndroid Build Coastguard Worker #ifndef _IH264D_ERROR_HANDLER_H_
22*495ae853SAndroid Build Coastguard Worker #define _IH264D_ERROR_HANDLER_H_
23*495ae853SAndroid Build Coastguard Worker 
24*495ae853SAndroid Build Coastguard Worker /*!
25*495ae853SAndroid Build Coastguard Worker  *************************************************************************
26*495ae853SAndroid Build Coastguard Worker  * \file ih264d_error_handler.h
27*495ae853SAndroid Build Coastguard Worker  *
28*495ae853SAndroid Build Coastguard Worker  * \brief
29*495ae853SAndroid Build Coastguard Worker  *    Contains declaration of ih264d_global_error_handler function
30*495ae853SAndroid Build Coastguard Worker  *
31*495ae853SAndroid Build Coastguard Worker  * \date
32*495ae853SAndroid Build Coastguard Worker  *    21/11/2002
33*495ae853SAndroid Build Coastguard Worker  *
34*495ae853SAndroid Build Coastguard Worker  * \author  AI
35*495ae853SAndroid Build Coastguard Worker  *************************************************************************
36*495ae853SAndroid Build Coastguard Worker  */
37*495ae853SAndroid Build Coastguard Worker 
38*495ae853SAndroid Build Coastguard Worker #include "ih264_typedefs.h"
39*495ae853SAndroid Build Coastguard Worker #include "ih264_macros.h"
40*495ae853SAndroid Build Coastguard Worker #include "ih264_platform_macros.h"
41*495ae853SAndroid Build Coastguard Worker #include "ih264d_structs.h"
42*495ae853SAndroid Build Coastguard Worker 
43*495ae853SAndroid Build Coastguard Worker typedef enum
44*495ae853SAndroid Build Coastguard Worker {
45*495ae853SAndroid Build Coastguard Worker 
46*495ae853SAndroid Build Coastguard Worker     ERROR_MEM_ALLOC_ISRAM_T = 0x50,
47*495ae853SAndroid Build Coastguard Worker     ERROR_MEM_ALLOC_SDRAM_T = 0x51,
48*495ae853SAndroid Build Coastguard Worker     ERROR_BUF_MGR = 0x52,
49*495ae853SAndroid Build Coastguard Worker     ERROR_DBP_MANAGER_T = 0x53,
50*495ae853SAndroid Build Coastguard Worker     ERROR_GAPS_IN_FRM_NUM = 0x54,
51*495ae853SAndroid Build Coastguard Worker     ERROR_UNKNOWN_NAL = 0x55,
52*495ae853SAndroid Build Coastguard Worker     ERROR_INV_MB_SLC_GRP_T = 0x56,
53*495ae853SAndroid Build Coastguard Worker     ERROR_MULTIPLE_SLC_GRP_T = 0x57,
54*495ae853SAndroid Build Coastguard Worker     ERROR_UNKNOWN_LEVEL = 0x58,
55*495ae853SAndroid Build Coastguard Worker     ERROR_FEATURE_UNAVAIL = 0x59,
56*495ae853SAndroid Build Coastguard Worker     ERROR_NOT_SUPP_RESOLUTION = 0x5A,
57*495ae853SAndroid Build Coastguard Worker     ERROR_INVALID_PIC_PARAM = 0x5B,
58*495ae853SAndroid Build Coastguard Worker     ERROR_INVALID_SEQ_PARAM = 0x5C,
59*495ae853SAndroid Build Coastguard Worker     ERROR_EGC_EXCEED_32_1_T = 0x5D,
60*495ae853SAndroid Build Coastguard Worker     ERROR_EGC_EXCEED_32_2_T = 0x5E,
61*495ae853SAndroid Build Coastguard Worker     ERROR_INV_RANGE_TEV_T = 0x5F,
62*495ae853SAndroid Build Coastguard Worker     ERROR_INV_SLC_TYPE_T = 0x60,
63*495ae853SAndroid Build Coastguard Worker     ERROR_UNAVAIL_PICBUF_T = 0x61,
64*495ae853SAndroid Build Coastguard Worker     ERROR_UNAVAIL_MVBUF_T = 0x62,
65*495ae853SAndroid Build Coastguard Worker     ERROR_UNAVAIL_DISPBUF_T = 0x63,
66*495ae853SAndroid Build Coastguard Worker     ERROR_INV_POC_TYPE_T = 0x64,
67*495ae853SAndroid Build Coastguard Worker     ERROR_PIC1_NOT_FOUND_T = 0x65,
68*495ae853SAndroid Build Coastguard Worker     ERROR_PIC0_NOT_FOUND_T = 0x66,
69*495ae853SAndroid Build Coastguard Worker     ERROR_NUM_REF = 0x67,
70*495ae853SAndroid Build Coastguard Worker     ERROR_REFIDX_ORDER_T = 0x68,
71*495ae853SAndroid Build Coastguard Worker     ERROR_EOB_FLUSHBITS_T = 0x69,
72*495ae853SAndroid Build Coastguard Worker     ERROR_EOB_GETBITS_T = 0x6A,
73*495ae853SAndroid Build Coastguard Worker     ERROR_EOB_GETBIT_T = 0x6B,
74*495ae853SAndroid Build Coastguard Worker     ERROR_EOB_BYPASS_T = 0x6C,
75*495ae853SAndroid Build Coastguard Worker     ERROR_EOB_DECISION_T = 0x6D,
76*495ae853SAndroid Build Coastguard Worker     ERROR_EOB_TERMINATE_T = 0x6E,
77*495ae853SAndroid Build Coastguard Worker     ERROR_EOB_READCOEFF4X4CAB_T = 0x6F,
78*495ae853SAndroid Build Coastguard Worker     ERROR_INV_RANGE_QP_T = 0x70,
79*495ae853SAndroid Build Coastguard Worker     ERROR_END_OF_FRAME_EXPECTED_T = 0x71,
80*495ae853SAndroid Build Coastguard Worker     ERROR_MB_TYPE = 0x72,
81*495ae853SAndroid Build Coastguard Worker     ERROR_SUB_MB_TYPE = 0x73,
82*495ae853SAndroid Build Coastguard Worker     ERROR_CBP = 0x74,
83*495ae853SAndroid Build Coastguard Worker     ERROR_REF_IDX = 0x75,
84*495ae853SAndroid Build Coastguard Worker     ERROR_NUM_MV = 0x76,
85*495ae853SAndroid Build Coastguard Worker     ERROR_CHROMA_PRED_MODE = 0x77,
86*495ae853SAndroid Build Coastguard Worker     ERROR_INTRAPRED = 0x78,
87*495ae853SAndroid Build Coastguard Worker     ERROR_NEXT_MB_ADDRESS_T = 0x79,
88*495ae853SAndroid Build Coastguard Worker     ERROR_MB_ADDRESS_T = 0x7A,
89*495ae853SAndroid Build Coastguard Worker     ERROR_MB_GROUP_ASSGN_T = 0x7B,
90*495ae853SAndroid Build Coastguard Worker     ERROR_CAVLC_NUM_COEFF_T = 0x7C,
91*495ae853SAndroid Build Coastguard Worker     ERROR_CAVLC_SCAN_POS_T = 0x7D,
92*495ae853SAndroid Build Coastguard Worker     ERROR_CABAC_RENORM_T = 0x7E,
93*495ae853SAndroid Build Coastguard Worker     ERROR_CABAC_SIG_COEFF1_T = 0x7F,
94*495ae853SAndroid Build Coastguard Worker     ERROR_CABAC_SIG_COEFF2_T = 0x80,
95*495ae853SAndroid Build Coastguard Worker     ERROR_CABAC_ENCODE_COEFF_T = 0x81,
96*495ae853SAndroid Build Coastguard Worker     ERROR_INV_SPS_PPS_T = 0x82,
97*495ae853SAndroid Build Coastguard Worker     ERROR_INV_SLICE_HDR_T = 0x83,
98*495ae853SAndroid Build Coastguard Worker     ERROR_PRED_WEIGHT_TABLE_T = 0x84,
99*495ae853SAndroid Build Coastguard Worker     IH264D_VERS_BUF_INSUFFICIENT = 0x85,
100*495ae853SAndroid Build Coastguard Worker     ERROR_ACTUAL_LEVEL_GREATER_THAN_INIT = 0x86,
101*495ae853SAndroid Build Coastguard Worker     ERROR_CORRUPTED_SLICE = 0x87,
102*495ae853SAndroid Build Coastguard Worker     ERROR_FRAME_LIMIT_OVER = 0x88,
103*495ae853SAndroid Build Coastguard Worker     ERROR_ACTUAL_RESOLUTION_GREATER_THAN_INIT = 0x89,
104*495ae853SAndroid Build Coastguard Worker     ERROR_PROFILE_NOT_SUPPORTED = 0x8A,
105*495ae853SAndroid Build Coastguard Worker     ERROR_DISP_WIDTH_RESET_TO_PIC_WIDTH = 0x8B,
106*495ae853SAndroid Build Coastguard Worker     ERROR_DISP_WIDTH_INVALID = 0x8C,
107*495ae853SAndroid Build Coastguard Worker     ERROR_DANGLING_FIELD_IN_PIC = 0x8D,
108*495ae853SAndroid Build Coastguard Worker     ERROR_DYNAMIC_RESOLUTION_NOT_SUPPORTED = 0x8E,
109*495ae853SAndroid Build Coastguard Worker     ERROR_INIT_NOT_DONE = 0x8F,
110*495ae853SAndroid Build Coastguard Worker     ERROR_LEVEL_UNSUPPORTED = 0x90,
111*495ae853SAndroid Build Coastguard Worker     ERROR_START_CODE_NOT_FOUND = 0x91,
112*495ae853SAndroid Build Coastguard Worker     ERROR_PIC_NUM_IS_REPEATED = 0x92,
113*495ae853SAndroid Build Coastguard Worker     ERROR_IN_LAST_SLICE_OF_PIC = 0x93,
114*495ae853SAndroid Build Coastguard Worker     ERROR_NEW_FRAME_EXPECTED = 0x94,
115*495ae853SAndroid Build Coastguard Worker     ERROR_INCOMPLETE_FRAME = 0x95,
116*495ae853SAndroid Build Coastguard Worker     ERROR_VUI_PARAMS_NOT_FOUND = 0x96,
117*495ae853SAndroid Build Coastguard Worker     ERROR_INV_POC = 0x97,
118*495ae853SAndroid Build Coastguard Worker     ERROR_SEI_MDCV_PARAMS_NOT_FOUND = 0x98,
119*495ae853SAndroid Build Coastguard Worker     ERROR_SEI_CLL_PARAMS_NOT_FOUND = 0x99,
120*495ae853SAndroid Build Coastguard Worker     ERROR_SEI_AVE_PARAMS_NOT_FOUND = 0x9A,
121*495ae853SAndroid Build Coastguard Worker     ERROR_SEI_CCV_PARAMS_NOT_FOUND = 0x9B,
122*495ae853SAndroid Build Coastguard Worker     ERROR_INV_SEI_MDCV_PARAMS = 0x9C,
123*495ae853SAndroid Build Coastguard Worker     ERROR_INV_SEI_CLL_PARAMS = 0x9D,
124*495ae853SAndroid Build Coastguard Worker     ERROR_INV_SEI_AVE_PARAMS = 0x9E,
125*495ae853SAndroid Build Coastguard Worker     ERROR_INV_SEI_CCV_PARAMS = 0x9F,
126*495ae853SAndroid Build Coastguard Worker     ERROR_INV_FRAME_NUM = 0xA0,
127*495ae853SAndroid Build Coastguard Worker     ERROR_SEI_SII_PARAMS_NOT_FOUND = 0xA1,
128*495ae853SAndroid Build Coastguard Worker     ERROR_INV_SEI_SII_PARAMS = 0xA2,
129*495ae853SAndroid Build Coastguard Worker     ERROR_SEI_FGC_PARAMS_NOT_FOUND = 0xA3,
130*495ae853SAndroid Build Coastguard Worker     ERROR_INV_SEI_FGC_PARAMS = 0xA4
131*495ae853SAndroid Build Coastguard Worker 
132*495ae853SAndroid Build Coastguard Worker } h264_decoder_error_code_t;
133*495ae853SAndroid Build Coastguard Worker 
134*495ae853SAndroid Build Coastguard Worker WORD32 ih264d_mark_err_slice_skip(dec_struct_t * ps_dec,
135*495ae853SAndroid Build Coastguard Worker                                   WORD32 num_mb_skip,
136*495ae853SAndroid Build Coastguard Worker                                   UWORD8 u1_is_idr_slice,
137*495ae853SAndroid Build Coastguard Worker                                   UWORD16 u2_frame_num,
138*495ae853SAndroid Build Coastguard Worker                                   pocstruct_t *ps_cur_poc,
139*495ae853SAndroid Build Coastguard Worker                                   WORD32 prev_slice_err);
140*495ae853SAndroid Build Coastguard Worker 
141*495ae853SAndroid Build Coastguard Worker void ih264d_err_pic_dispbuf_mgr(dec_struct_t *ps_dec);
142*495ae853SAndroid Build Coastguard Worker #endif /* _IH264D_ERROR_HANDLER_H_ */
143