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