Home | History | Annotate | Download | only in encoder
      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