xref: /aosp_15_r20/external/libhevc/encoder/ihevce_error_codes.h (revision c83a76b084498d55f252f48b2e3786804cdf24b7)
1*c83a76b0SSuyog Pawar /******************************************************************************
2*c83a76b0SSuyog Pawar  *
3*c83a76b0SSuyog Pawar  * Copyright (C) 2018 The Android Open Source Project
4*c83a76b0SSuyog Pawar  *
5*c83a76b0SSuyog Pawar  * Licensed under the Apache License, Version 2.0 (the "License");
6*c83a76b0SSuyog Pawar  * you may not use this file except in compliance with the License.
7*c83a76b0SSuyog Pawar  * You may obtain a copy of the License at:
8*c83a76b0SSuyog Pawar  *
9*c83a76b0SSuyog Pawar  * http://www.apache.org/licenses/LICENSE-2.0
10*c83a76b0SSuyog Pawar  *
11*c83a76b0SSuyog Pawar  * Unless required by applicable law or agreed to in writing, software
12*c83a76b0SSuyog Pawar  * distributed under the License is distributed on an "AS IS" BASIS,
13*c83a76b0SSuyog Pawar  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14*c83a76b0SSuyog Pawar  * See the License for the specific language governing permissions and
15*c83a76b0SSuyog Pawar  * limitations under the License.
16*c83a76b0SSuyog Pawar  *
17*c83a76b0SSuyog Pawar  *****************************************************************************
18*c83a76b0SSuyog Pawar  * Originally developed and contributed by Ittiam Systems Pvt. Ltd, Bangalore
19*c83a76b0SSuyog Pawar */
20*c83a76b0SSuyog Pawar 
21*c83a76b0SSuyog Pawar /**
22*c83a76b0SSuyog Pawar ******************************************************************************
23*c83a76b0SSuyog Pawar * @file ihevce_error_codes.h
24*c83a76b0SSuyog Pawar *
25*c83a76b0SSuyog Pawar * @brief
26*c83a76b0SSuyog Pawar *  This file contains important error codes returned by various modules of
27*c83a76b0SSuyog Pawar *  HEVC encoder
28*c83a76b0SSuyog Pawar *
29*c83a76b0SSuyog Pawar * @author
30*c83a76b0SSuyog Pawar *  Ittiam
31*c83a76b0SSuyog Pawar *
32*c83a76b0SSuyog Pawar ******************************************************************************
33*c83a76b0SSuyog Pawar */
34*c83a76b0SSuyog Pawar 
35*c83a76b0SSuyog Pawar #ifndef _IHEVCE_ERROR_CODES_H_
36*c83a76b0SSuyog Pawar #define _IHEVCE_ERROR_CODES_H_
37*c83a76b0SSuyog Pawar 
38*c83a76b0SSuyog Pawar /**
39*c83a76b0SSuyog Pawar ******************************************************************************
40*c83a76b0SSuyog Pawar  *  @brief   Error start codes for various classes of errors in HEVC encoder
41*c83a76b0SSuyog Pawar ******************************************************************************
42*c83a76b0SSuyog Pawar  */
43*c83a76b0SSuyog Pawar #define IHEVCE_BITSTREAM_ERROR_START 0x0000E100
44*c83a76b0SSuyog Pawar #define IHEVCE_RC_ERROR_START 0x0000E200
45*c83a76b0SSuyog Pawar #define IHEVCE_LAP_ERROR_START 0x0000E300
46*c83a76b0SSuyog Pawar #define IHEVCE_API_ERROR_START 0x0000E400
47*c83a76b0SSuyog Pawar #define IHEVCE_CABAC_ERROR_START 0x0000E500
48*c83a76b0SSuyog Pawar 
49*c83a76b0SSuyog Pawar /**
50*c83a76b0SSuyog Pawar ******************************************************************************
51*c83a76b0SSuyog Pawar  *  @brief   Extended error code for each error in  HEVC encoder
52*c83a76b0SSuyog Pawar ******************************************************************************
53*c83a76b0SSuyog Pawar  */
54*c83a76b0SSuyog Pawar typedef enum
55*c83a76b0SSuyog Pawar {
56*c83a76b0SSuyog Pawar 
57*c83a76b0SSuyog Pawar     /** no error */
58*c83a76b0SSuyog Pawar     IHEVCE_SUCCESS = 0,
59*c83a76b0SSuyog Pawar 
60*c83a76b0SSuyog Pawar     /** bitstream init failure, buffer ptr not aligned to WORD (32bits)     */
61*c83a76b0SSuyog Pawar     IHEVCE_BITSTREAM_BUFPTR_ALIGN_FAIL = IHEVCE_BITSTREAM_ERROR_START + 0x01,
62*c83a76b0SSuyog Pawar 
63*c83a76b0SSuyog Pawar     /** bitstream init failure, buf size not multiple of WORD size (32bits) */
64*c83a76b0SSuyog Pawar     IHEVCE_BITSTREAM_BUFSIZE_ALIGN_FAIL = IHEVCE_BITSTREAM_ERROR_START + 0x02,
65*c83a76b0SSuyog Pawar 
66*c83a76b0SSuyog Pawar     /** bitstream runtime failure, buf size limit exceeded during encode    */
67*c83a76b0SSuyog Pawar     IHEVCE_BITSTREAM_BUFFER_OVERFLOW = IHEVCE_BITSTREAM_ERROR_START + 0x03,
68*c83a76b0SSuyog Pawar 
69*c83a76b0SSuyog Pawar     /* Error codes for static source parameters */
70*c83a76b0SSuyog Pawar     /**width not set within supported limit */
71*c83a76b0SSuyog Pawar     IHEVCE_WIDTH_NOT_SUPPORTED = IHEVCE_API_ERROR_START + 0x01,
72*c83a76b0SSuyog Pawar 
73*c83a76b0SSuyog Pawar     /**height not set within supported limit */
74*c83a76b0SSuyog Pawar     IHEVCE_HEIGHT_NOT_SUPPORTED = IHEVCE_API_ERROR_START + 0x02,
75*c83a76b0SSuyog Pawar 
76*c83a76b0SSuyog Pawar     /**frame rate not supported */
77*c83a76b0SSuyog Pawar     IHEVCE_FRAME_RATE_NOT_SUPPORTED = IHEVCE_API_ERROR_START + 0x03,
78*c83a76b0SSuyog Pawar 
79*c83a76b0SSuyog Pawar     /*content type not supported */
80*c83a76b0SSuyog Pawar     IHEVCE_CONTENT_TYPE_NOT_SUPPORTED = IHEVCE_API_ERROR_START + 0x04,
81*c83a76b0SSuyog Pawar 
82*c83a76b0SSuyog Pawar     /* chroma format not supported */
83*c83a76b0SSuyog Pawar     IHEVCE_CHROMA_FORMAT_NOT_SUPPORTED = IHEVCE_API_ERROR_START + 0x05,
84*c83a76b0SSuyog Pawar 
85*c83a76b0SSuyog Pawar     /*Error codes for static output strream parameters */
86*c83a76b0SSuyog Pawar     /* codec not supported */
87*c83a76b0SSuyog Pawar     IHEVCE_CODEC_NOT_SUPPORTED = IHEVCE_API_ERROR_START + 0x06,
88*c83a76b0SSuyog Pawar 
89*c83a76b0SSuyog Pawar     /* codec profile not supported */
90*c83a76b0SSuyog Pawar     IHEVCE_CODEC_PROFILE_NOT_SUPPORTED = IHEVCE_API_ERROR_START + 0x07,
91*c83a76b0SSuyog Pawar 
92*c83a76b0SSuyog Pawar     /*codec level not supported */
93*c83a76b0SSuyog Pawar     IHEVCE_CODEC_LEVEL_NOT_SUPPORTED = IHEVCE_API_ERROR_START + 0x08,
94*c83a76b0SSuyog Pawar 
95*c83a76b0SSuyog Pawar     IHEVCE_VUI_ENABLE_OUT_OF_RANGE = IHEVCE_API_ERROR_START + 0x09,
96*c83a76b0SSuyog Pawar 
97*c83a76b0SSuyog Pawar #ifndef DISABLE_SEI
98*c83a76b0SSuyog Pawar     IHEVCE_SEI_ENABLE_OUT_OF_RANGE = IHEVCE_API_ERROR_START + 0x0A,
99*c83a76b0SSuyog Pawar #endif
100*c83a76b0SSuyog Pawar 
101*c83a76b0SSuyog Pawar     IHEVCE_SPS_AT_CDR_NOT_SUPPORTED = IHEVCE_API_ERROR_START + 0x0B,
102*c83a76b0SSuyog Pawar 
103*c83a76b0SSuyog Pawar     /* Error codes for static coding tools parameters */
104*c83a76b0SSuyog Pawar     /* Temporal layers not supported */
105*c83a76b0SSuyog Pawar     IHEVCE_TEMPORAL_LAYERS_NOT_SUPPORTED = IHEVCE_API_ERROR_START + 0x0C,
106*c83a76b0SSuyog Pawar 
107*c83a76b0SSuyog Pawar     IHEVCE_INVALID_GOP_PERIOD = IHEVCE_API_ERROR_START + 0x0D,
108*c83a76b0SSuyog Pawar 
109*c83a76b0SSuyog Pawar     IHEVCE_IDR_NOT_SUPPORTED = IHEVCE_API_ERROR_START + 0x0E,
110*c83a76b0SSuyog Pawar 
111*c83a76b0SSuyog Pawar     IHEVCE_REF_FRAMES_NOT_SUPPORTED = IHEVCE_API_ERROR_START + 0x0F,
112*c83a76b0SSuyog Pawar 
113*c83a76b0SSuyog Pawar     IHEVCE_CONSECUTIVE_MAX_TID_NOT_SUPPORTED = IHEVCE_API_ERROR_START + 0x10,
114*c83a76b0SSuyog Pawar 
115*c83a76b0SSuyog Pawar     IHEVCE_CONSECUTIVE_TID_NOT_SUPPORTED = IHEVCE_API_ERROR_START + 0x11,
116*c83a76b0SSuyog Pawar 
117*c83a76b0SSuyog Pawar     IHEVCE_INVALID_MIN_TID = IHEVCE_API_ERROR_START + 0x12,
118*c83a76b0SSuyog Pawar 
119*c83a76b0SSuyog Pawar     IHEVCE_INVALID_WEIGHTED_PREDICTION_INPUT = IHEVCE_API_ERROR_START + 0x13,
120*c83a76b0SSuyog Pawar 
121*c83a76b0SSuyog Pawar     IHEVCE_INVALID_TEMPORAL_MVP_INPUT = IHEVCE_API_ERROR_START + 0x14,
122*c83a76b0SSuyog Pawar 
123*c83a76b0SSuyog Pawar     IHEVCE_INVALID_QUALITY_PRESET_INPUT = IHEVCE_API_ERROR_START + 0x15,
124*c83a76b0SSuyog Pawar 
125*c83a76b0SSuyog Pawar     IHEVCE_CHROMA_PREDICTION_FROM_LUMA_NOT_SUPPORTED = IHEVCE_API_ERROR_START + 0x16,
126*c83a76b0SSuyog Pawar 
127*c83a76b0SSuyog Pawar     IHEVCE_INVALID_CONSTRAINED_IPRED_INPUT = IHEVCE_API_ERROR_START + 0x17,
128*c83a76b0SSuyog Pawar 
129*c83a76b0SSuyog Pawar     IHEVCE_INVALID_ASYMETRIC_MACROBLOCK_ENABLE_INPUT = IHEVCE_API_ERROR_START + 0x18,
130*c83a76b0SSuyog Pawar 
131*c83a76b0SSuyog Pawar     IHEVCE_INVALID_DEBLOCKING_TYPE_INPUT = IHEVCE_API_ERROR_START + 0x19,
132*c83a76b0SSuyog Pawar 
133*c83a76b0SSuyog Pawar     IHEVCE_INVALID_SAO_ENABLE_INPUT = IHEVCE_API_ERROR_START + 0x1A,
134*c83a76b0SSuyog Pawar 
135*c83a76b0SSuyog Pawar     IHEVCE_INVALID_LF_ACROSS_TILES_ENABLE_INPUT = IHEVCE_API_ERROR_START + 0x1B,
136*c83a76b0SSuyog Pawar 
137*c83a76b0SSuyog Pawar     IHEVCE_INVALID_DEFAULT_SC_MATRIX_ENABLE_INPUT = IHEVCE_API_ERROR_START + 0x1C,
138*c83a76b0SSuyog Pawar 
139*c83a76b0SSuyog Pawar     IHEVCE_INVALID_CROPPING_MODE = IHEVCE_API_ERROR_START + 0x1D,
140*c83a76b0SSuyog Pawar 
141*c83a76b0SSuyog Pawar     IHEVCE_INVALID_FRAME_SKIPS_INPUT = IHEVCE_API_ERROR_START + 0x1E,
142*c83a76b0SSuyog Pawar 
143*c83a76b0SSuyog Pawar     IHEVCE_INVALID_SLICE_TYPE_INPUT = IHEVCE_API_ERROR_START + 0x1F,
144*c83a76b0SSuyog Pawar 
145*c83a76b0SSuyog Pawar     IHEVCE_INVALID_REFRESH_TYPE_INPUT = IHEVCE_API_ERROR_START + 0x20,
146*c83a76b0SSuyog Pawar 
147*c83a76b0SSuyog Pawar     IHEVCE_INVALID_FORCE_FRAME_INPUT = IHEVCE_API_ERROR_START + 0x21,
148*c83a76b0SSuyog Pawar 
149*c83a76b0SSuyog Pawar     /*Error codes for static config parameters */
150*c83a76b0SSuyog Pawar     IHEVCE_NUMBER_OF_TILES_INPUT_NOT_SUPPORTED = IHEVCE_API_ERROR_START + 0x22,
151*c83a76b0SSuyog Pawar 
152*c83a76b0SSuyog Pawar     IHEVCE_INDEPENDENT_TILES_INPUT_NOT_SUPPORTED = IHEVCE_API_ERROR_START + 0x23,
153*c83a76b0SSuyog Pawar 
154*c83a76b0SSuyog Pawar     IHEVCE_NUMBER_OF_TILE_ROWS_INPUT_NOT_SUPPORTED = IHEVCE_API_ERROR_START + 0x24,
155*c83a76b0SSuyog Pawar 
156*c83a76b0SSuyog Pawar     IHEVCE_NUMBER_OF_TILE_COLS_INPUT_NOT_SUPPORTED = IHEVCE_API_ERROR_START + 0x25,
157*c83a76b0SSuyog Pawar 
158*c83a76b0SSuyog Pawar     IHEVCE_MIN_CU_SIZE_INPUT_NOT_SUPPORTED = IHEVCE_API_ERROR_START + 0x26,
159*c83a76b0SSuyog Pawar 
160*c83a76b0SSuyog Pawar     IHEVCE_MIN_TU_SIZE_INPUT_NOT_SUPPORTED = IHEVCE_API_ERROR_START + 0x27,
161*c83a76b0SSuyog Pawar 
162*c83a76b0SSuyog Pawar     IHEVCE_MAX_CU_SIZE_INPUT_NOT_SUPPORTED = IHEVCE_API_ERROR_START + 0x28,
163*c83a76b0SSuyog Pawar 
164*c83a76b0SSuyog Pawar     IHEVCE_MAX_TU_SIZE_INPUT_NOT_SUPPORTED = IHEVCE_API_ERROR_START + 0x29,
165*c83a76b0SSuyog Pawar 
166*c83a76b0SSuyog Pawar     IHEVCE_INVALID_MAX_TU_SIZE = IHEVCE_API_ERROR_START + 0x2A,
167*c83a76b0SSuyog Pawar 
168*c83a76b0SSuyog Pawar     IHEVCE_INVALID_TR_TREE_DEPTH_FOR_I_FRAME = IHEVCE_API_ERROR_START + 0x2B,
169*c83a76b0SSuyog Pawar 
170*c83a76b0SSuyog Pawar     IHEVCE_INVALID_TR_TREE_DEPTH = IHEVCE_API_ERROR_START + 0x2C,
171*c83a76b0SSuyog Pawar 
172*c83a76b0SSuyog Pawar     IHEVCE_UNSUPPORTED_FRAME_QP = IHEVCE_API_ERROR_START + 0x2D,
173*c83a76b0SSuyog Pawar 
174*c83a76b0SSuyog Pawar     IHEVCE_UNSUPPORTED_HORIZONTAL_SEARCH_RANGE = IHEVCE_API_ERROR_START + 0x2E,
175*c83a76b0SSuyog Pawar 
176*c83a76b0SSuyog Pawar     IHEVCE_UNSUPPORTED_VERTICAL_SEARCH_RANGE = IHEVCE_API_ERROR_START + 0x2F,
177*c83a76b0SSuyog Pawar 
178*c83a76b0SSuyog Pawar     /*Error codes for static look ahead parameters */
179*c83a76b0SSuyog Pawar     IHEVCE_UNSUPPORTED_LOOK_AHEAD = IHEVCE_API_ERROR_START + 0x30,
180*c83a76b0SSuyog Pawar 
181*c83a76b0SSuyog Pawar     /*Error codes for dynamic source parameters   */
182*c83a76b0SSuyog Pawar     IHEVCE_DYN_WIDTH_NOT_SUPPORTED = IHEVCE_API_ERROR_START + 0x31,
183*c83a76b0SSuyog Pawar 
184*c83a76b0SSuyog Pawar     IHEVCE_DYN_HEIGHT_NOT_SUPPORTED = IHEVCE_API_ERROR_START + 0x32,
185*c83a76b0SSuyog Pawar 
186*c83a76b0SSuyog Pawar     IHEVCE_DYN_FRAME_RATE_NOT_SUPPORTED = IHEVCE_API_ERROR_START + 0x33,
187*c83a76b0SSuyog Pawar 
188*c83a76b0SSuyog Pawar     IHEVCE_DYN_CONTENT_TYPE_NOT_SUPPORTED = IHEVCE_API_ERROR_START + 0x34,
189*c83a76b0SSuyog Pawar 
190*c83a76b0SSuyog Pawar     IHEVCE_DYN_CHROMA_FORMAT_NOT_SUPPORTED = IHEVCE_API_ERROR_START + 0x35,
191*c83a76b0SSuyog Pawar 
192*c83a76b0SSuyog Pawar     IHEVCE_INVALID_DYN_WIDTH = IHEVCE_API_ERROR_START + 0x36,
193*c83a76b0SSuyog Pawar 
194*c83a76b0SSuyog Pawar     IHEVCE_INVALID_DYN_HEIGHT = IHEVCE_API_ERROR_START + 0x37,
195*c83a76b0SSuyog Pawar 
196*c83a76b0SSuyog Pawar     IHEVCE_INVALID_DYN_FRAME_RATE = IHEVCE_API_ERROR_START + 0x38,
197*c83a76b0SSuyog Pawar 
198*c83a76b0SSuyog Pawar     IHEVCE_INVALID_DYN_CONTENT_TYPE = IHEVCE_API_ERROR_START + 0x39,
199*c83a76b0SSuyog Pawar 
200*c83a76b0SSuyog Pawar     IHEVCE_INVALID_DYN_CHROMA_FORMAT = IHEVCE_API_ERROR_START + 0x3a,
201*c83a76b0SSuyog Pawar 
202*c83a76b0SSuyog Pawar     /*Error codes for dynamic coding parameters  */
203*c83a76b0SSuyog Pawar     IHEVCE_DYN_TEMPORAL_LAYERS_NOT_SUPPORTED = IHEVCE_API_ERROR_START + 0x3b,
204*c83a76b0SSuyog Pawar 
205*c83a76b0SSuyog Pawar     IHEVCE_DYN_CDR_NOT_SUPPORTED = IHEVCE_API_ERROR_START + 0x3c,
206*c83a76b0SSuyog Pawar 
207*c83a76b0SSuyog Pawar     IHEVCE_DYN_IDR_NOT_SUPPORTED = IHEVCE_API_ERROR_START + 0x3d,
208*c83a76b0SSuyog Pawar 
209*c83a76b0SSuyog Pawar     IHEVCE_DYN_REF_FRAMES_NOT_SUPPORTED = IHEVCE_API_ERROR_START + 0x3e,
210*c83a76b0SSuyog Pawar 
211*c83a76b0SSuyog Pawar     IHEVCE_DYN_CONSECUTIVE_MAX_TID_NOT_SUPPORTED = IHEVCE_API_ERROR_START + 0x3f,
212*c83a76b0SSuyog Pawar 
213*c83a76b0SSuyog Pawar     IHEVCE_DYN_LT_FRAMES_NOT_SUPPORTED = IHEVCE_API_ERROR_START + 0x40,
214*c83a76b0SSuyog Pawar 
215*c83a76b0SSuyog Pawar     IHEVCE_DYN_MIN_TID_NOT_SUPPORTED = IHEVCE_API_ERROR_START + 0x41,
216*c83a76b0SSuyog Pawar 
217*c83a76b0SSuyog Pawar     IHEVCE_DYN_WEIGHTED_PREDICTION_INPUT_NOT_SUPPORTED = IHEVCE_API_ERROR_START + 0x42,
218*c83a76b0SSuyog Pawar 
219*c83a76b0SSuyog Pawar     IHEVCE_DYN_TEMPORAL_MVP_INPUT_NOT_SUPPORTED = IHEVCE_API_ERROR_START + 0x43,
220*c83a76b0SSuyog Pawar 
221*c83a76b0SSuyog Pawar     IHEVCE_DYN_QUALITY_PRESET_INPUT_NOT_SUPPORTED = IHEVCE_API_ERROR_START + 0x44,
222*c83a76b0SSuyog Pawar 
223*c83a76b0SSuyog Pawar     IHEVCE_DYN_CHROMA_PREDICTION_FROM_LUMA_NOT_SUPPORTED = IHEVCE_API_ERROR_START + 0x45,
224*c83a76b0SSuyog Pawar 
225*c83a76b0SSuyog Pawar     IHEVCE_DYN_CONSTRAINED_IPRED_INPUT_NOT_SUPPORTED = IHEVCE_API_ERROR_START + 0x46,
226*c83a76b0SSuyog Pawar 
227*c83a76b0SSuyog Pawar     IHEVCE_DYN_ASYMETRIC_MACROBLOCK_ENABLE_INPUT_NOT_SUPPORTED = IHEVCE_API_ERROR_START + 0x47,
228*c83a76b0SSuyog Pawar 
229*c83a76b0SSuyog Pawar     IHEVCE_DYN_DEBLOCKING_TYPE_INPUT_NOT_SUPPORTED = IHEVCE_API_ERROR_START + 0x48,
230*c83a76b0SSuyog Pawar 
231*c83a76b0SSuyog Pawar     IHEVCE_DYN_SAO_ENABLE_INPUT_NOT_SUPPORTED = IHEVCE_API_ERROR_START + 0x49,
232*c83a76b0SSuyog Pawar 
233*c83a76b0SSuyog Pawar     IHEVCE_DYN_LF_ACROSS_TILES_ENABLE_INPUT_NOT_SUPPORTED = IHEVCE_API_ERROR_START + 0x4a,
234*c83a76b0SSuyog Pawar 
235*c83a76b0SSuyog Pawar     IHEVCE_DYN_DEFAULT_SC_MATRIX_ENABLE_INPUT_NOT_SUPPORTED = IHEVCE_API_ERROR_START + 0x4b,
236*c83a76b0SSuyog Pawar 
237*c83a76b0SSuyog Pawar     IHEVCE_DYN_CROPPING_MODE_NOT_SUPPORTED = IHEVCE_API_ERROR_START + 0x4c,
238*c83a76b0SSuyog Pawar 
239*c83a76b0SSuyog Pawar     IHEVCE_DYN_FRAME_SKIPS_INPUT_NOT_SUPPORTED = IHEVCE_API_ERROR_START + 0x4d,
240*c83a76b0SSuyog Pawar 
241*c83a76b0SSuyog Pawar     IHEVCE_DYN_SLICE_TYPE_INPUT_NOT_SUPPORTED = IHEVCE_API_ERROR_START + 0x4e,
242*c83a76b0SSuyog Pawar 
243*c83a76b0SSuyog Pawar     IHEVCE_DYN_REFRESH_TYPE_INPUT_NOT_SUPPORTED = IHEVCE_API_ERROR_START + 0x4f,
244*c83a76b0SSuyog Pawar 
245*c83a76b0SSuyog Pawar     IHEVCE_DYN_FORCE_FRAME_INPUT_NOT_SUPPORTED = IHEVCE_API_ERROR_START + 0x50,
246*c83a76b0SSuyog Pawar 
247*c83a76b0SSuyog Pawar     IHEVCE_INVALID_DYN_TEMPORAL_LAYERS = IHEVCE_API_ERROR_START + 0x51,
248*c83a76b0SSuyog Pawar 
249*c83a76b0SSuyog Pawar     IHEVCE_INVALID_DYN_CDR = IHEVCE_API_ERROR_START + 0x52,
250*c83a76b0SSuyog Pawar 
251*c83a76b0SSuyog Pawar     IHEVCE_INVALID_DYN_IDR = IHEVCE_API_ERROR_START + 0x53,
252*c83a76b0SSuyog Pawar 
253*c83a76b0SSuyog Pawar     IHEVCE_INVALID_DYN_REF_FRAMES = IHEVCE_API_ERROR_START + 0x54,
254*c83a76b0SSuyog Pawar 
255*c83a76b0SSuyog Pawar     IHEVCE_INVALID_DYN_CONSECUTIVE_MAX_TID = IHEVCE_API_ERROR_START + 0x55,
256*c83a76b0SSuyog Pawar 
257*c83a76b0SSuyog Pawar     IHEVCE_INVALID_DYN_LT_FRAMES = IHEVCE_API_ERROR_START + 0x56,
258*c83a76b0SSuyog Pawar 
259*c83a76b0SSuyog Pawar     IHEVCE_INVALID_DYN_MIN_TID = IHEVCE_API_ERROR_START + 0x57,
260*c83a76b0SSuyog Pawar 
261*c83a76b0SSuyog Pawar     IHEVCE_INVALID_DYN_WEIGHTED_PREDICTION_INPUT = IHEVCE_API_ERROR_START + 0x58,
262*c83a76b0SSuyog Pawar 
263*c83a76b0SSuyog Pawar     IHEVCE_INVALID_DYN_TEMPORAL_MVP_INPUT = IHEVCE_API_ERROR_START + 0x59,
264*c83a76b0SSuyog Pawar 
265*c83a76b0SSuyog Pawar     IHEVCE_INVALID_DYN_QUALITY_PRESET_INPUT = IHEVCE_API_ERROR_START + 0x5a,
266*c83a76b0SSuyog Pawar 
267*c83a76b0SSuyog Pawar     IHEVCE_INVALID_DYN_CHROMA_PREDICTION_FROM_LUMA = IHEVCE_API_ERROR_START + 0x5b,
268*c83a76b0SSuyog Pawar 
269*c83a76b0SSuyog Pawar     IHEVCE_INVALID_DYN_CONSTRAINED_IPRED_INPUT = IHEVCE_API_ERROR_START + 0x5c,
270*c83a76b0SSuyog Pawar 
271*c83a76b0SSuyog Pawar     IHEVCE_INVALID_DYN_ASYMETRIC_MACROBLOCK_ENABLE_INPUT = IHEVCE_API_ERROR_START + 0x5d,
272*c83a76b0SSuyog Pawar 
273*c83a76b0SSuyog Pawar     IHEVCE_INVALID_DYN_DEBLOCKING_TYPE_INPUT = IHEVCE_API_ERROR_START + 0x5e,
274*c83a76b0SSuyog Pawar 
275*c83a76b0SSuyog Pawar     IHEVCE_INVALID_DYN_SAO_ENABLE_INPUT = IHEVCE_API_ERROR_START + 0x5f,
276*c83a76b0SSuyog Pawar 
277*c83a76b0SSuyog Pawar     IHEVCE_INVALID_DYN_LF_ACROSS_TILES_ENABLE_INPUT = IHEVCE_API_ERROR_START + 0x60,
278*c83a76b0SSuyog Pawar 
279*c83a76b0SSuyog Pawar     IHEVCE_INVALID_DYN_DEFAULT_SC_MATRIX_ENABLE_INPUT = IHEVCE_API_ERROR_START + 0x61,
280*c83a76b0SSuyog Pawar 
281*c83a76b0SSuyog Pawar     IHEVCE_INVALID_DYN_CROPPING_MODE = IHEVCE_API_ERROR_START + 0x62,
282*c83a76b0SSuyog Pawar 
283*c83a76b0SSuyog Pawar     IHEVCE_INVALID_DYN_FRAME_SKIPS_INPUT = IHEVCE_API_ERROR_START + 0x63,
284*c83a76b0SSuyog Pawar 
285*c83a76b0SSuyog Pawar     IHEVCE_INVALID_DYN_SLICE_TYPE_INPUT = IHEVCE_API_ERROR_START + 0x64,
286*c83a76b0SSuyog Pawar 
287*c83a76b0SSuyog Pawar     IHEVCE_INVALID_DYN_REFRESH_TYPE_INPUT = IHEVCE_API_ERROR_START + 0x65,
288*c83a76b0SSuyog Pawar 
289*c83a76b0SSuyog Pawar     IHEVCE_INVALID_DYN_FORCE_FRAME_INPUT = IHEVCE_API_ERROR_START + 0x66,
290*c83a76b0SSuyog Pawar 
291*c83a76b0SSuyog Pawar     IHEVCE_INVALID_CORE_CONFIG = IHEVCE_API_ERROR_START + 0x67,
292*c83a76b0SSuyog Pawar 
293*c83a76b0SSuyog Pawar #ifndef DISABLE_SEI
294*c83a76b0SSuyog Pawar     IHEVCE_SEI_MESSAGES_DEPENDENCY = IHEVCE_API_ERROR_START + 0x68,
295*c83a76b0SSuyog Pawar #endif
296*c83a76b0SSuyog Pawar 
297*c83a76b0SSuyog Pawar     IHEVCE_VUI_DEPENDENCY = IHEVCE_API_ERROR_START + 0x69,
298*c83a76b0SSuyog Pawar 
299*c83a76b0SSuyog Pawar #ifndef DISABLE_SEI
300*c83a76b0SSuyog Pawar     IHEVCE_SEI_ENABLED_VUI_DISABLED = IHEVCE_API_ERROR_START + 0x6A,
301*c83a76b0SSuyog Pawar 
302*c83a76b0SSuyog Pawar     IHEVCE_SEI_HASH_VALUE_NOT_SUPPORTED = IHEVCE_API_ERROR_START + 0x6B,
303*c83a76b0SSuyog Pawar #endif
304*c83a76b0SSuyog Pawar 
305*c83a76b0SSuyog Pawar     /* Level related error codes */
306*c83a76b0SSuyog Pawar     IHEVCE_PIC_SIZE_NOT_SUPPORTED = IHEVCE_API_ERROR_START + 0x6C,
307*c83a76b0SSuyog Pawar 
308*c83a76b0SSuyog Pawar     IHEVCE_BITRATE_NOT_SUPPORTED = IHEVCE_API_ERROR_START + 0x6D,
309*c83a76b0SSuyog Pawar 
310*c83a76b0SSuyog Pawar     IHEVCE_LUMA_SAMPLE_RATE_NOT_SUPPORTED = IHEVCE_API_ERROR_START + 0x6E,
311*c83a76b0SSuyog Pawar 
312*c83a76b0SSuyog Pawar     IHEVCE_INVALID_MEM_CTRL_FLAG = IHEVCE_API_ERROR_START + 0x6F,
313*c83a76b0SSuyog Pawar 
314*c83a76b0SSuyog Pawar     IHEVCE_NUM_DECOMP_LYRS_NOT_SUPPORTED = IHEVCE_API_ERROR_START + 0x70,
315*c83a76b0SSuyog Pawar 
316*c83a76b0SSuyog Pawar     IHEVCE_RATE_CONTROL_MDOE_NOT_SUPPORTED = IHEVCE_API_ERROR_START + 0x71,
317*c83a76b0SSuyog Pawar 
318*c83a76b0SSuyog Pawar     IHEVCE_MAX_VBV_SIZE_OUT_OF_RANGE = IHEVCE_API_ERROR_START + 0x72,
319*c83a76b0SSuyog Pawar 
320*c83a76b0SSuyog Pawar     IHEVCE_INVALID_NUM_BR_INSTANCES = IHEVCE_API_ERROR_START + 0x73,
321*c83a76b0SSuyog Pawar 
322*c83a76b0SSuyog Pawar     IHEVCE_INVALID_MBR_QUALITY_SETTING = IHEVCE_API_ERROR_START + 0x74,
323*c83a76b0SSuyog Pawar 
324*c83a76b0SSuyog Pawar     IHEVCE_NUM_MAX_RESOLUTIONS_NOT_SUPPORTED = IHEVCE_API_ERROR_START + 0x75,
325*c83a76b0SSuyog Pawar 
326*c83a76b0SSuyog Pawar     IHEVCE_MULTI_RES_LAYER_REUSE_NOT_SUPPORTED = IHEVCE_API_ERROR_START + 0x76,
327*c83a76b0SSuyog Pawar 
328*c83a76b0SSuyog Pawar     IHEVCE_TGT_WIDTH_NOT_SUPPORTED = IHEVCE_API_ERROR_START + 0x77,
329*c83a76b0SSuyog Pawar 
330*c83a76b0SSuyog Pawar     IHEVCE_TGT_HEIGHT_NOT_SUPPORTED = IHEVCE_API_ERROR_START + 0x78,
331*c83a76b0SSuyog Pawar 
332*c83a76b0SSuyog Pawar     IHEVCE_TGT_FRAME_RATE_SCALING_NOT_SUPPORTED = IHEVCE_API_ERROR_START + 0x79,
333*c83a76b0SSuyog Pawar 
334*c83a76b0SSuyog Pawar     IHEVCE_INVALID_SIZE = IHEVCE_API_ERROR_START + 0x7A,
335*c83a76b0SSuyog Pawar 
336*c83a76b0SSuyog Pawar     IHEVCE_INPUT_BIT_DEPTH_OUT_OF_RANGE = IHEVCE_API_ERROR_START + 0x7B,
337*c83a76b0SSuyog Pawar 
338*c83a76b0SSuyog Pawar     IHEVCE_OUTPUT_BIT_DEPTH_OUT_OF_RANGE = IHEVCE_API_ERROR_START + 0x7C,
339*c83a76b0SSuyog Pawar 
340*c83a76b0SSuyog Pawar     /** VUI parameters error codes **/
341*c83a76b0SSuyog Pawar 
342*c83a76b0SSuyog Pawar     IHEVC_INVALID_ASPECT_RATIO_PARAMS = IHEVCE_API_ERROR_START + 0x7D,
343*c83a76b0SSuyog Pawar 
344*c83a76b0SSuyog Pawar     IHEVC_INVALID_OVERSCAN_PARAMS = IHEVCE_API_ERROR_START + 0x7E,
345*c83a76b0SSuyog Pawar 
346*c83a76b0SSuyog Pawar     IHEVC_INVALID_VIDEO_PARAMS = IHEVCE_API_ERROR_START + 0x7F,
347*c83a76b0SSuyog Pawar 
348*c83a76b0SSuyog Pawar     IHEVC_INVALID_COLOUR_PARAMS = IHEVCE_API_ERROR_START + 0x80,
349*c83a76b0SSuyog Pawar 
350*c83a76b0SSuyog Pawar     IHEVC_INVALID_CHROMA_PARAMS = IHEVCE_API_ERROR_START + 0x81,
351*c83a76b0SSuyog Pawar 
352*c83a76b0SSuyog Pawar     IHEVC_INVALID_TIMING_INFO_PARAM = IHEVCE_API_ERROR_START + 0x82,
353*c83a76b0SSuyog Pawar 
354*c83a76b0SSuyog Pawar     IHEVC_INVALID_HRD_PRESENT_PARAMS = IHEVCE_API_ERROR_START + 0x83,
355*c83a76b0SSuyog Pawar 
356*c83a76b0SSuyog Pawar     IHEVCE_SYSTEM_APIS_NOT_INITIALLIZED = IHEVCE_API_ERROR_START + 0x84,
357*c83a76b0SSuyog Pawar 
358*c83a76b0SSuyog Pawar     /* Codec Tier related error codes */
359*c83a76b0SSuyog Pawar     IHEVC_CODEC_TIER_NOT_SUPPORTED = IHEVCE_API_ERROR_START + 0x85,
360*c83a76b0SSuyog Pawar 
361*c83a76b0SSuyog Pawar     IHEVCE_CANNOT_ALLOCATE_MEMORY = IHEVCE_API_ERROR_START + 0x86,
362*c83a76b0SSuyog Pawar 
363*c83a76b0SSuyog Pawar     IHEVCE_RATE_CONTROL_PASS_INVALID = IHEVCE_API_ERROR_START + 0x87,
364*c83a76b0SSuyog Pawar 
365*c83a76b0SSuyog Pawar     IHEVCE_INVALID_TEMPORAL_SCALABILITY = IHEVCE_API_ERROR_START + 0x88,
366*c83a76b0SSuyog Pawar 
367*c83a76b0SSuyog Pawar     IHEVCE_MULTI_PASS_INVALID_IDR_CDR = IHEVCE_API_ERROR_START + 0x89,
368*c83a76b0SSuyog Pawar 
369*c83a76b0SSuyog Pawar     IHEVCE_BAD_TILE_CONFIGURATION = IHEVCE_API_ERROR_START + 0x8A,
370*c83a76b0SSuyog Pawar 
371*c83a76b0SSuyog Pawar     IHEVCE_BAD_SLICE_PARAMS = IHEVCE_API_ERROR_START + 0x8B,
372*c83a76b0SSuyog Pawar 
373*c83a76b0SSuyog Pawar     IHEVCE_SLICE_SEG_ARG_INVALID = IHEVCE_API_ERROR_START + 0x8C,
374*c83a76b0SSuyog Pawar 
375*c83a76b0SSuyog Pawar     /* Error codes for mastering display */
376*c83a76b0SSuyog Pawar     IHEVCE_MASTERING_DISP_COL_VOL_OUT_OF_RANGE = IHEVCE_API_ERROR_START + 0x8D,
377*c83a76b0SSuyog Pawar 
378*c83a76b0SSuyog Pawar     IHEVCE_DISPLAY_PRIMARY_X_OUT_OF_RANGE = IHEVCE_API_ERROR_START + 0x8E,
379*c83a76b0SSuyog Pawar 
380*c83a76b0SSuyog Pawar     IHEVCE_DISPLAY_PRIMARY_Y_OUT_OF_RANGE = IHEVCE_API_ERROR_START + 0x8F,
381*c83a76b0SSuyog Pawar 
382*c83a76b0SSuyog Pawar     IHEVCE_WHITE_POINT_X_OUT_OF_RANGE = IHEVCE_API_ERROR_START + 0x90,
383*c83a76b0SSuyog Pawar 
384*c83a76b0SSuyog Pawar     IHEVCE_WHITE_POINT_Y_OUT_OF_RANGE = IHEVCE_API_ERROR_START + 0x91,
385*c83a76b0SSuyog Pawar 
386*c83a76b0SSuyog Pawar     IHEVCE_MAX_DISP_MATERING_LUM_OUT_OF_RANGE = IHEVCE_API_ERROR_START + 0x92,
387*c83a76b0SSuyog Pawar 
388*c83a76b0SSuyog Pawar     IHEVCE_INTEROPERABILITY_FLAG_SUPPORTED = IHEVCE_API_ERROR_START + 0x93,
389*c83a76b0SSuyog Pawar 
390*c83a76b0SSuyog Pawar     IHEVCE_VISUAL_QUALITY_ENHANCEMENTS_TOGGLER_VALUE_UNSUPPORTED = IHEVCE_API_ERROR_START + 0x94,
391*c83a76b0SSuyog Pawar 
392*c83a76b0SSuyog Pawar     IHEVCE_ARCHITECTURE_TYPE_UNSUPPORTED = IHEVCE_API_ERROR_START + 0x95,
393*c83a76b0SSuyog Pawar 
394*c83a76b0SSuyog Pawar #ifndef DISABLE_SEI
395*c83a76b0SSuyog Pawar     IHEVCE_SEI_PAYLOAD_ENABLE_OUT_OF_RANGE = IHEVCE_API_ERROR_START + 0x96,
396*c83a76b0SSuyog Pawar #endif
397*c83a76b0SSuyog Pawar 
398*c83a76b0SSuyog Pawar     IHEVCE_BAD_DIST_CFG_PARAMETERS = IHEVCE_API_ERROR_START + 0x97,
399*c83a76b0SSuyog Pawar 
400*c83a76b0SSuyog Pawar     IHEVCE_UNSUPPORTED_PROC_CONFIG = IHEVCE_API_ERROR_START + 0x98,
401*c83a76b0SSuyog Pawar 
402*c83a76b0SSuyog Pawar     IHEVCE_INVALID_MRES_SINGLE_OUT = IHEVCE_API_ERROR_START + 0x99,
403*c83a76b0SSuyog Pawar 
404*c83a76b0SSuyog Pawar #ifndef DISABLE_SEI
405*c83a76b0SSuyog Pawar     IHEVCE_SEI_CLL_ENABLE_OUT_OF_RANGE = IHEVCE_API_ERROR_START + 0x9A,
406*c83a76b0SSuyog Pawar #endif
407*c83a76b0SSuyog Pawar 
408*c83a76b0SSuyog Pawar     /** max failure error code to ensure enum is 32 bits wide */
409*c83a76b0SSuyog Pawar     IHEVCE_FAIL = 0xFFFFFFFF
410*c83a76b0SSuyog Pawar 
411*c83a76b0SSuyog Pawar } IHEVCE_ERROR_T;
412*c83a76b0SSuyog Pawar 
413*c83a76b0SSuyog Pawar typedef enum
414*c83a76b0SSuyog Pawar {
415*c83a76b0SSuyog Pawar     IHEVCE_UNSUPPORTEDINPUT = 31, /**
416*c83a76b0SSuyog Pawar                                     Bit 31 - Unsupported feature/parameter
417*c83a76b0SSuyog Pawar                                   */
418*c83a76b0SSuyog Pawar 
419*c83a76b0SSuyog Pawar     IHEVCE_UNSUPPORTEDPARAM = 30, /**
420*c83a76b0SSuyog Pawar                                    Bit 30 - Unsupported input parameter or
421*c83a76b0SSuyog Pawar                                    configuration.
422*c83a76b0SSuyog Pawar                                   */
423*c83a76b0SSuyog Pawar 
424*c83a76b0SSuyog Pawar     IHEVCE_FATALERROR = 29 /**
425*c83a76b0SSuyog Pawar                                    Bit 29 - Fatal error (stop the codec).
426*c83a76b0SSuyog Pawar                                   */
427*c83a76b0SSuyog Pawar 
428*c83a76b0SSuyog Pawar } IHEVCE_ErrorBit;
429*c83a76b0SSuyog Pawar 
430*c83a76b0SSuyog Pawar /** Check for fatal error */
431*c83a76b0SSuyog Pawar #define IHEVCE_ISFATALERROR(x) (((x) >> IHEVCE_FATALERROR) & 0x1)
432*c83a76b0SSuyog Pawar /** Check for unsupported parameter */
433*c83a76b0SSuyog Pawar #define IHEVCE_ISUNSUPPORTEDPARAM(x) (((x) >> IHEVCE_UNSUPPORTEDPARAM) & 0x1)
434*c83a76b0SSuyog Pawar /** Check for unsupported input */
435*c83a76b0SSuyog Pawar #define IHEVCE_ISUNSUPPORTEDINPUT(x) (((x) >> IHEVCE_UNSUPPORTEDINPUT) & 0x1)
436*c83a76b0SSuyog Pawar /** Check for corrupted header */
437*c83a76b0SSuyog Pawar 
438*c83a76b0SSuyog Pawar /** Set fatal error bit */
439*c83a76b0SSuyog Pawar #define IHEVCE_SETFATALERROR(x) ((x) |= (0x1U << IHEVCE_FATALERROR))
440*c83a76b0SSuyog Pawar /** Set unsupported parameter bit */
441*c83a76b0SSuyog Pawar #define IHEVCE_SETUNSUPPORTEDPARAM(x) ((x) |= (0x1U << IHEVCE_UNSUPPORTEDPARAM))
442*c83a76b0SSuyog Pawar /** Set unsupported input bit */
443*c83a76b0SSuyog Pawar #define IHEVCE_SETUNSUPPORTEDINPUT(x) ((x) |= (0x1U << IHEVCE_UNSUPPORTEDINPUT))
444*c83a76b0SSuyog Pawar 
445*c83a76b0SSuyog Pawar #endif /* _IHEVCE_ERROR_CODES_H_ */
446