1 /* 2 * Copyright (c) 2024 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16 #ifndef IMAGE_EFFECT_ERROR_CODE_H 17 #define IMAGE_EFFECT_ERROR_CODE_H 18 19 #include <stdint.h> 20 #include <string> 21 22 namespace OHOS { 23 namespace Media { 24 namespace Effect { 25 enum struct ErrorCode : int32_t { 26 SUCCESS = 0, 27 ERR_PARAM_INVALID = 401, 28 ERR_UNKNOWN = INT32_MIN + 0, 29 ERR_INPUT_NULL = ERR_UNKNOWN + 1, 30 ERR_NO_VALUE = ERR_UNKNOWN + 2, 31 ERR_UNSUPPORTED_IPTYPE_FOR_EFFECT = ERR_UNKNOWN + 3, 32 ERR_UNSUPPORTED_FORMAT_TYPE = ERR_UNKNOWN + 4, 33 ERR_ANY_CAST_TYPE_NOT_IPTYPE = ERR_UNKNOWN + 5, 34 ERR_UNSUPPORTED_CONFIG_TYPE = ERR_UNKNOWN + 6, 35 ERR_INVALID_SRC_PIXELMAP = ERR_UNKNOWN + 7, 36 ERR_INVALID_DST_PIXELMAP = ERR_UNKNOWN + 8, 37 ERR_UNSUPPORTED_PIXEL_FORMAT = ERR_UNKNOWN + 9, 38 ERR_UNSUPPORTED_DATA_TYPE = ERR_UNKNOWN + 10, 39 ERR_NO_DATA = ERR_UNKNOWN + 11, 40 ERR_PIXELMAP_GETIMAGEINFO_FAIL = ERR_UNKNOWN + 12, 41 ERR_PIXELMAP_ACCESSPIXELS_FAIL = ERR_UNKNOWN + 13, 42 ERR_UNSUPPORTED_INPUT_ANYTYPE = ERR_UNKNOWN + 14, 43 ERR_UNSUPPORTED_VALUE_KEY = ERR_UNKNOWN + 15, 44 ERR_ANY_CAST_TYPE_NOT_FLOAT = ERR_UNKNOWN + 16, 45 ERR_VALUE_OUT_OF_RANGE = ERR_UNKNOWN + 17, 46 ERR_NO_VALUE_KEY = ERR_UNKNOWN + 18, 47 ERR_ANY_CAST_TYPE_NOT_MATCH = ERR_UNKNOWN + 19, 48 ERR_NOT_SUPPORT_SWITCH_TO_OHANY = ERR_UNKNOWN + 20, 49 ERR_JSON_DATA_TYPE = ERR_UNKNOWN + 21, 50 ERR_JSON_NO_TARGET = ERR_UNKNOWN + 22, 51 ERR_NO_FILTER_OPERATOR_LEVEL = ERR_UNKNOWN + 23, 52 ERR_PIPELINE_INVALID_FILTER = ERR_UNKNOWN + 24, 53 ERR_PIPELINE_INVALID_FILTER_PORT = ERR_UNKNOWN + 25, 54 ERR_PIPELINE_INVALID_FILTER_CALLBACK = ERR_UNKNOWN + 26, 55 ERR_CUSTOM_EFILTER_APPLY_FAIL = ERR_UNKNOWN + 27, 56 ERR_CUSTOM_EFILTER_SETVALUE_FAIL = ERR_UNKNOWN + 28, 57 ERR_CUSTOM_EFILTER_SAVE_FAIL = ERR_UNKNOWN + 29, 58 ERR_CUSTOM_EFILTER_RESTORE_FAIL = ERR_UNKNOWN + 30, 59 ERR_ALLOC_MEMORY_SIZE_OUT_OF_RANGE = ERR_UNKNOWN + 31, 60 ERR_ALLOC_MEMORY_FAIL = ERR_UNKNOWN + 32, 61 ERR_FREE_MEMORY_ADDR_ABNORMAL = ERR_UNKNOWN + 33, 62 ERR_MEMCPY_FAIL = ERR_UNKNOWN + 34, 63 ERR_UNSUPPORTED_RUNNINGTYPE = ERR_UNKNOWN + 35, 64 ERR_INVALID_SRC_SURFACEBUFFER = ERR_UNKNOWN + 36, 65 ERR_INVALID_DST_SURFACEBUFFER = ERR_UNKNOWN + 37, 66 ERR_PARSE_FOR_EFFECT_BUFFER_FAIL = ERR_UNKNOWN + 38, 67 ERR_NOT_SUPPORT_DIFF_DATATYPE = ERR_UNKNOWN + 39, 68 ERR_CREATE_IMAGESOURCE_FAIL = ERR_UNKNOWN + 40, 69 ERR_CREATE_PIXELMAP_FAIL = ERR_UNKNOWN + 41, 70 ERR_EXTRA_INFO_NULL = ERR_UNKNOWN + 42, 71 ERR_BUFFER_INFO_NULL = ERR_UNKNOWN + 43, 72 ERR_NOT_SUPPORT_DIFF_FORMAT = ERR_UNKNOWN + 44, 73 ERR_IMAGE_PACKER_EXEC_FAIL = ERR_UNKNOWN + 45, 74 ERR_SET_IMAGE_INFO_EXEC_FAIL = ERR_UNKNOWN + 46, 75 ERR_FILE_TYPE_NOT_SUPPORT = ERR_UNKNOWN + 47, 76 ERR_INVALID_INDEX = ERR_UNKNOWN + 48, 77 ERR_BUFFER_NOT_ALLOW_CHANGE = ERR_UNKNOWN + 49, 78 ERR_CREATE_MEMORY_FAIL = ERR_UNKNOWN + 50, 79 ERR_SET_IMAGE_INFO_FAIL = ERR_UNKNOWN + 51, 80 ERR_MEMORY_DATA_ABNORMAL = ERR_UNKNOWN + 52, 81 ERR_NOT_FILTERS_WITH_RENDER = ERR_UNKNOWN + 53, 82 ERR_NOT_SET_INPUT_DATA = ERR_UNKNOWN + 54, 83 ERR_UNSUPPORTED_INOUT_WITH_DIFF_BUFFER = ERR_UNKNOWN + 55, 84 ERR_UNSUPPORTED_BUFFER_TYPE = ERR_UNKNOWN + 56, 85 ERR_INVALID_SURFACE_BUFFER = ERR_UNKNOWN + 57, 86 ERR_INVALID_FD = ERR_UNKNOWN + 58, 87 ERR_SRC_EFFECT_BUFFER_NULL = ERR_UNKNOWN + 59, 88 ERR_VPE_COMPOSE_IMAGE_FAIL = ERR_UNKNOWN + 60, 89 ERR_VPE_DECOMPOSE_IMAGE_FAIL = ERR_UNKNOWN + 61, 90 ERR_VPE_PROCESS_IMAGE_FAIL = ERR_UNKNOWN + 62, 91 ERR_VPE_METADATA_PROCESS_IMAGE_FAIL = ERR_UNKNOWN + 63, 92 ERR_INVALID_VPE_INSTANCE = ERR_UNKNOWN + 64, 93 ERR_SET_METADATA_FAIL = ERR_UNKNOWN + 65, 94 ERR_GET_METADATA_FAIL = ERR_UNKNOWN + 66, 95 ERR_SET_COLORSPACETYPE_FAIL = ERR_UNKNOWN + 67, 96 ERR_GET_COLORSPACETYPE_FAIL = ERR_UNKNOWN + 68, 97 ERR_INVALID_COLORSPACE = ERR_UNKNOWN + 69, 98 ERR_APPLYCOLORSPACE_FAIL = ERR_UNKNOWN + 70, 99 ERR_NOT_SUPPORT_INPUT_OUTPUT_COLORSPACE = ERR_UNKNOWN + 71, 100 ERR_FILTER_NOT_SUPPORT_INPUT_OUTPUT_COLORSPACE = ERR_UNKNOWN + 72, 101 ERR_COLORSPACE_NOT_SUPPORT_CONVERT = ERR_UNKNOWN + 73, 102 ERR_NOT_SUPPORT_CONVERT_FORMAT = ERR_UNKNOWN + 74, 103 ERR_CREATE_PICTURE_FAIL = ERR_UNKNOWN + 75, 104 ERR_IMAGE_DATA = ERR_UNKNOWN + 76, 105 ERR_GET_MAIN_PIXELMAP_FROM_PICTURE_FAIL = ERR_UNKNOWN + 77, 106 ERR_AUXILIARY_MAP_NOT_FOUND = ERR_UNKNOWN + 78, 107 ERR_EFILTER_RENDER_FAILED = ERR_UNKNOWN + 79, 108 ERR_INVALID_TEXTURE = ERR_UNKNOWN + 80, 109 ERR_UNSUPPORTED_TEXTURE_FORMAT = ERR_UNKNOWN + 81, 110 ERR_NO_DST_TEX = ERR_UNKNOWN + 82, 111 ERR_INVALID_PARAMETER_VALUE = ERR_UNKNOWN + 100, 112 ERR_INVALID_PARAMETER_TYPE = ERR_UNKNOWN + 101, 113 ERR_INVALID_OPERATION = ERR_UNKNOWN + 102, 114 ERR_UNIMPLEMENTED = ERR_UNKNOWN + 103, 115 ERR_TIMED_OUT = ERR_UNKNOWN + 104, 116 ERR_NO_MEMORY = ERR_UNKNOWN + 105, 117 ERR_PERMISSION_DENIED = ERR_UNKNOWN + 106, 118 ERR_IMAGE_EFFECT_RECEIVER_INIT_FAILED = ERR_UNKNOWN + 107, 119 ERR_GL_FRAMEBUFFER_NOT_COMPLETE = ERR_UNKNOWN + 200, 120 ERR_GL_CREATE_TEXTURE_FAILED = ERR_UNKNOWN + 201, 121 ERR_GL_CREATE_PROGRAM_FAILED = ERR_UNKNOWN + 202, 122 ERR_GL_INIT_MESH_FAILED = ERR_UNKNOWN + 203, 123 ERR_GL_PRE_DRAW_FAILED = ERR_UNKNOWN + 204, 124 ERR_GL_DRAW_FAILED = ERR_UNKNOWN + 205, 125 ERR_GL_COPY_PIXELS_FAILED = ERR_UNKNOWN + 206, 126 }; 127 128 std::string GetErrorName(ErrorCode code); 129 130 #ifndef FALSE_RETURN_MSG_W 131 #define FALSE_RETURN_MSG_W(exec, ret, fmt, args...) \ 132 do { \ 133 bool returnValue = (exec); \ 134 if (!returnValue) { \ 135 EFFECT_LOGW(fmt, ##args); \ 136 return ret; \ 137 } \ 138 } while (0) 139 #endif 140 141 #ifndef FALSE_RETURN_E 142 #define FALSE_RETURN_E(exec, ret) \ 143 do { \ 144 bool returnValue = (exec); \ 145 if (!returnValue) { \ 146 EFFECT_LOGE("FALSE_RETURN " #exec); \ 147 return ret; \ 148 } \ 149 } while (0) 150 #endif 151 152 #ifndef FALSE_RETURN_MSG_E 153 #define FALSE_RETURN_MSG_E(exec, ret, fmt, args...) \ 154 do { \ 155 bool returnValue = (exec); \ 156 if (!returnValue) { \ 157 EFFECT_LOGE(fmt, ##args); \ 158 return ret; \ 159 } \ 160 } while (0) 161 #endif 162 163 #ifndef FALSE_RETURN_VOID_MSG_E 164 #define FALSE_RETURN_VOID_MSG_E(exec, fmt, args...) \ 165 do { \ 166 bool returnValue = (exec); \ 167 if (!returnValue) { \ 168 EFFECT_LOGE(fmt, ##args); \ 169 return; \ 170 } \ 171 } while (0) 172 #endif 173 174 #ifndef FAIL_RETURN 175 #define FAIL_RETURN(exec) \ 176 do { \ 177 ErrorCode returnValue = (exec); \ 178 if (returnValue != ErrorCode::SUCCESS) { \ 179 EFFECT_LOGE("FAIL_RETURN on ErrorCode(%{public}s).", GetErrorName(returnValue).c_str()); \ 180 return returnValue; \ 181 } \ 182 } while (0) 183 #endif 184 } // namespace Effect 185 } // namespace Media 186 } // namespace OHOS 187 #endif // IMAGE_EFFECT_ERROR_CODE_H 188