1 /* 2 * Copyright (C) 2021 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 CAMERA_DEVICE_ABILITY_ITEMS_H 17 #define CAMERA_DEVICE_ABILITY_ITEMS_H 18 19 typedef enum camera_ability_section { 20 // Camera attribute information: position(facing), type, connection, description, sensor, lens description 21 OHOS_CAMERA_PROPERTIES = 0, 22 OHOS_CAMERA_LENS, 23 OHOS_CAMERA_SENSOR, 24 OHOS_CAMERA_SENSOR_INFO, 25 OHOS_CAMERA_STATISTICS, 26 27 // Camera device image acquisition 28 OHOS_DEVICE_CONTROL = 0x1000, // Overall control, such as turning off automatic 3A, operating mode 29 OHOS_DEVICE_EXPOSURE, 30 OHOS_DEVICE_FOCUS, 31 OHOS_DEVICE_WHITE_BLANCE, 32 OHOS_DEVICE_FLASH, 33 OHOS_DEVICE_ZOOM, 34 35 // Camera image post-processing related 36 OHOS_POST_PROCESS_CONTROL = 0x2000, 37 OHOS_POST_PROCESS_COLOR, 38 OHOS_POST_PROCESS_HDR, 39 OHOS_POST_PROCESS_PORTRAIT, 40 OHOS_POST_PROCESS_NIGHT, 41 42 // Camera flow control related 43 OHOS_STREAM_ABILITY = 0x3000, 44 OHOS_STREAM_CONTROL, // General control: frame rate, resolution, mirroring 45 OHOS_STREAM_JPEG, 46 OHOS_STREAM_VIDEO, // Video encoding related 47 OHOS_STREAM_DEPTH, 48 OHOS_STREAM_METADATA, 49 OHOS_STREAM_METADATA_FACE, 50 OHOS_STREAM_METADATA_BODY, 51 52 OHOS_ABILITY_SECTION_END 53 } camera_ability_section_t; 54 55 typedef enum camera_device_metadata_section_start { 56 OHOS_CAMERA_PROPERTIES_START = OHOS_CAMERA_PROPERTIES << 16, 57 OHOS_CAMERA_LENS_START = OHOS_CAMERA_LENS << 16, 58 OHOS_CAMERA_SENSOR_START = OHOS_CAMERA_SENSOR << 16, 59 OHOS_CAMERA_SENSOR_INFO_START = OHOS_CAMERA_SENSOR_INFO << 16, 60 OHOS_CAMERA_STATISTICS_START = OHOS_CAMERA_STATISTICS <<16, 61 62 OHOS_DEVICE_CONTROL_START = OHOS_DEVICE_CONTROL << 16, 63 OHOS_DEVICE_EXPOSURE_START = OHOS_DEVICE_EXPOSURE << 16, 64 OHOS_DEVICE_FOCUS_START = OHOS_DEVICE_FOCUS << 16, 65 OHOS_DEVICE_WHITE_BLANCE_START = OHOS_DEVICE_WHITE_BLANCE << 16, 66 OHOS_DEVICE_FLASH_START = OHOS_DEVICE_FLASH << 16, 67 OHOS_DEVICE_ZOOM_START = OHOS_DEVICE_ZOOM << 16, 68 69 OHOS_POST_PROCESS_CONTROL_START = OHOS_POST_PROCESS_CONTROL << 16, 70 OHOS_POST_PROCESS_COLOR_START = OHOS_POST_PROCESS_COLOR << 16, 71 OHOS_POST_PROCESS_HDR_START = OHOS_POST_PROCESS_HDR << 16, 72 OHOS_POST_PROCESS_PORTRAIT_START = OHOS_POST_PROCESS_PORTRAIT << 16, 73 OHOS_POST_PROCESS_NIGHT_START = OHOS_POST_PROCESS_NIGHT << 16, 74 75 OHOS_STREAM_ABILITY_START = OHOS_STREAM_ABILITY << 16, 76 OHOS_STREAM_CONTROL_START = OHOS_STREAM_CONTROL << 16, 77 OHOS_STREAM_JPEG_START = OHOS_STREAM_JPEG << 16, 78 OHOS_STREAM_VIDEO_START = OHOS_STREAM_VIDEO << 16, 79 OHOS_STREAM_DEPTH_START = OHOS_STREAM_DEPTH << 16, 80 OHOS_STREAM_METADATA_START = OHOS_STREAM_METADATA << 16, 81 OHOS_STREAM_METADATA_FACE_START = OHOS_STREAM_METADATA_FACE << 16, 82 OHOS_STREAM_METADATA_BODY_START = OHOS_STREAM_METADATA_BODY << 16 83 } camera_device_info_section_start_t; 84 85 typedef enum camera_device_metadata_tag { 86 // Camera attribute related item 87 OHOS_ABILITY_CAMERA_POSITION = OHOS_CAMERA_PROPERTIES_START, 88 OHOS_ABILITY_CAMERA_TYPE, 89 OHOS_ABILITY_CAMERA_CONNECTION_TYPE, 90 OHOS_CAMERA_PROPERTIES_END, 91 92 OHOS_SENSOR_EXPOSURE_TIME = OHOS_CAMERA_SENSOR_START, 93 OHOS_SENSOR_COLOR_CORRECTION_GAINS, 94 OHOS_CAMERA_SENSOR_END, 95 96 OHOS_SENSOR_INFO_ACTIVE_ARRAY_SIZE = OHOS_CAMERA_SENSOR_INFO_START, 97 OHOS_SENSOR_INFO_SENSITIVITY_RANGE, 98 OHOS_SENSOR_INFO_MAX_FRAME_DURATION, 99 OHOS_SENSOR_INFO_PHYSICAL_SIZE, 100 OHOS_SENSOR_INFO_PIXEL_ARRAY_SIZE, 101 OHOS_CAMERA_SENSOR_INFO_END, 102 103 OHOS_STATISTICS_FACE_DETECT_MODE = OHOS_CAMERA_STATISTICS_START, 104 OHOS_STATISTICS_HISTOGRAM_MODE, 105 OHOS_STATISTICS_FACE_IDS, 106 OHOS_STATISTICS_FACE_LANDMARKS, 107 OHOS_STATISTICS_FACE_RECTANGLES, 108 OHOS_STATISTICS_FACE_SCORES, 109 OHOS_CAMERA_STATISTICS_END, 110 111 OHOS_CONTROL_AE_ANTIBANDING_MODE = OHOS_DEVICE_CONTROL_START, 112 OHOS_CONTROL_AE_EXPOSURE_COMPENSATION, 113 OHOS_CONTROL_AE_LOCK, 114 OHOS_CONTROL_AE_MODE, 115 OHOS_CONTROL_AE_REGIONS, 116 OHOS_CONTROL_AE_TARGET_FPS_RANGE, 117 OHOS_CONTROL_AF_MODE, 118 OHOS_CONTROL_AF_REGIONS, 119 OHOS_CONTROL_AWB_LOCK, 120 OHOS_CONTROL_AWB_MODE, 121 OHOS_CONTROL_AWB_REGIONS, 122 OHOS_CONTROL_AE_AVAILABLE_ANTIBANDING_MODES, 123 OHOS_CONTROL_AE_AVAILABLE_MODES, 124 OHOS_CONTROL_AE_AVAILABLE_TARGET_FPS_RANGES, 125 OHOS_CONTROL_AE_COMPENSATION_RANGE, 126 OHOS_CONTROL_AE_COMPENSATION_STEP, 127 OHOS_CONTROL_AF_AVAILABLE_MODES, 128 OHOS_CONTROL_AWB_AVAILABLE_MODES, 129 OHOS_CONTROL_CAPTURE_MIRROR_SUPPORTED, 130 OHOS_CONTROL_CAPTURE_MIRROR, 131 OHOS_DEVICE_CONTROL_END, 132 133 // Camera device image acquisition related 134 OHOS_ABILITY_DEVICE_AVAILABLE_EXPOSUREMODES = OHOS_DEVICE_EXPOSURE_START, 135 OHOS_CONTROL_EXPOSUREMODE, 136 OHOS_DEVICE_EXPOSURE_END, 137 138 OHOS_ABILITY_DEVICE_AVAILABLE_FOCUSMODES = OHOS_DEVICE_FOCUS_START, 139 OHOS_CONTROL_FOCUSMODE, 140 OHOS_DEVICE_FOCUS_END, 141 142 OHOS_ABILITY_DEVICE_AVAILABLE_FLASHMODES = OHOS_DEVICE_FLASH_START, 143 OHOS_CONTROL_FLASHMODE, 144 OHOS_DEVICE_FLASH_END, 145 146 OHOS_ABILITY_ZOOM_RATIO_RANGE = OHOS_DEVICE_ZOOM_START, 147 OHOS_CONTROL_ZOOM_RATIO, 148 OHOS_DEVICE_ZOOM_END, 149 150 // Camera flow control related 151 OHOS_ABILITY_STREAM_AVAILABLE_BASIC_CONFIGURATIONS = OHOS_STREAM_ABILITY_START, 152 OHOS_STREAM_AVAILABLE_FORMATS, 153 OHOS_STREAM_ABILITY_END, 154 155 OHOS_JPEG_GPS_COORDINATES = OHOS_STREAM_JPEG_START, 156 OHOS_JPEG_GPS_PROCESSING_METHOD, 157 OHOS_JPEG_GPS_TIMESTAMP, 158 OHOS_JPEG_ORIENTATION, 159 OHOS_JPEG_QUALITY, 160 OHOS_JPEG_THUMBNAIL_QUALITY, 161 OHOS_JPEG_THUMBNAIL_SIZE, 162 OHOS_JPEG_AVAILABLE_THUMBNAIL_SIZES, 163 OHOS_JPEG_MAX_SIZE, 164 OHOS_JPEG_SIZE, 165 OHOS_STREAM_JPEG_END, 166 } camera_device_metadata_tag_t; 167 168 // OHOS_CAMERA_POSITION 169 typedef enum camera_position_enum { 170 OHOS_CAMERA_POSITION_FRONT = 0, 171 OHOS_CAMERA_POSITION_BACK, 172 OHOS_CAMERA_POSITION_OTHER 173 } camera_position_enum_t; 174 175 // OHOS_CAMERA_TYPE 176 typedef enum camera_type_enum { 177 OHOS_CAMERA_TYPE_WIDE_ANGLE = 0, 178 OHOS_CAMERA_TYPE_ULTRA_WIDE, 179 OHOS_CAMERA_TYPE_TELTPHOTO, 180 OHOS_CAMERA_TYPE_TRUE_DEAPTH, 181 OHOS_CAMERA_TYPE_LOGICAL, 182 OHOS_CAMERA_TYPE_UNSPECIFIED, 183 } camera_type_enum_t; 184 185 // OHOS_CAMERA_CONNECTION_TYPE 186 typedef enum camera_connection_type { 187 OHOS_CAMERA_CONNECTION_TYPE_BUILTIN = 0, 188 OHOS_CAMERA_CONNECTION_TYPE_USB_PLUGIN, 189 OHOS_CAMERA_CONNECTION_TYPE_REMOTE, 190 } camera_connection_type_t; 191 192 // OHOS_EXPOSURE_MODE 193 typedef enum camera_exposure_mode_enum { 194 OHOS_CAMERA_EXPOSURE_MODE_MANUAL = 0, 195 OHOS_CAMERA_EXPOSURE_MODE_CONTINUOUS_AUTO 196 } camera_exposure_mode_enum_t; 197 198 // OHOS_FOCUS_MODE 199 typedef enum camera_focus_mode_enum { 200 OHOS_CAMERA_FOCUS_MODE_MANUAL = 0, 201 OHOS_CAMERA_FOCUS_MODE_CONTINUOUS_AUTO, 202 OHOS_CAMERA_FOCUS_MODE_AUTO, 203 OHOS_CAMERA_FOCUS_MODE_LOCKED 204 } camera_focus_mode_enum_t; 205 206 // OHOS_FOCUS_MODE 207 typedef enum camera_flash_mode_enum { 208 OHOS_CAMERA_FLASH_MODE_CLOSE = 0, 209 OHOS_CAMERA_FLASH_MODE_OPEN, 210 OHOS_CAMERA_FLASH_MODE_AUTO, 211 OHOS_CAMERA_FLASH_MODE_ALWAYS_OPEN 212 } camera_flash_mode_enum_t; 213 214 // OHOS_CONTROL_AE_ANTIBANDING_MODE 215 typedef enum camera_ae_antibanding_mode { 216 OHOS_CAMERA_AE_ANTIBANDING_MODE_OFF, 217 OHOS_CAMERA_AE_ANTIBANDING_MODE_50HZ, 218 OHOS_CAMERA_AE_ANTIBANDING_MODE_60HZ, 219 OHOS_CAMERA_AE_ANTIBANDING_MODE_AUTO, 220 } camera_ae_antibanding_mode_t; 221 222 // OHOS_CONTROL_AE_LOCK 223 typedef enum camera_ae_lock { 224 OHOS_CAMERA_AE_LOCK_OFF, 225 OHOS_CAMERA_AE_LOCK_ON, 226 } camera_ae_lock_t; 227 228 // OHOS_CONTROL_AE_MODE 229 typedef enum camera_ae_mode { 230 OHOS_CAMERA_AE_MODE_OFF, 231 OHOS_CAMERA_AE_MODE_ON, 232 OHOS_CAMERA_AE_MODE_ON_AUTO_FLASH, 233 OHOS_CAMERA_AE_MODE_ON_ALWAYS_FLASH, 234 OHOS_CAMERA_AE_MODE_ON_AUTO_FLASH_REDEYE, 235 OHOS_CAMERA_AE_MODE_ON_EXTERNAL_FLASH, 236 } camera_ae_mode_t; 237 238 // OHOS_CONTROL_AF_MODE 239 typedef enum camera_af_mode { 240 OHOS_CAMERA_AF_MODE_OFF, 241 OHOS_CAMERA_AF_MODE_AUTO, 242 OHOS_CAMERA_AF_MODE_MACRO, 243 OHOS_CAMERA_AF_MODE_CONTINUOUS_VIDEO, 244 OHOS_CAMERA_AF_MODE_CONTINUOUS_PICTURE, 245 OHOS_CAMERA_AF_MODE_EDOF, 246 } camera_af_mode_t; 247 248 // OHOS_CONTROL_AWB_LOCK 249 typedef enum camera_awb_lock { 250 OHOS_CAMERA_AWB_LOCK_OFF, 251 OHOS_CAMERA_AWB_LOCK_ON, 252 } camera_awb_lock_t; 253 254 // OHOS_CONTROL_AWB_MODE 255 typedef enum camera_awb_mode { 256 OHOS_CAMERA_AWB_MODE_OFF, 257 OHOS_CAMERA_AWB_MODE_AUTO, 258 OHOS_CAMERA_AWB_MODE_INCANDESCENT, 259 OHOS_CAMERA_AWB_MODE_FLUORESCENT, 260 OHOS_CAMERA_AWB_MODE_WARM_FLUORESCENT, 261 OHOS_CAMERA_AWB_MODE_DAYLIGHT, 262 OHOS_CAMERA_AWB_MODE_CLOUDY_DAYLIGHT, 263 OHOS_CAMERA_AWB_MODE_TWILIGHT, 264 OHOS_CAMERA_AWB_MODE_SHADE, 265 } camera_awb_mode_t; 266 267 // OHOS_STATISTICS_FACE_DETECT_MODE 268 typedef enum camera_face_detect_mode { 269 OHOS_CAMERA_FACE_DETECT_MODE_OFF, 270 OHOS_CAMERA_FACE_DETECT_MODE_SIMPLE, 271 OHOS_CAMERA_FACE_DETECT_MODE_FULL, 272 } camera_face_detect_mode_t; 273 274 // OHOS_STATISTICS_HISTOGRAM_MODE 275 typedef enum camera_histogram_mode { 276 OHOS_CAMERA_HISTOGRAM_MODE_OFF, 277 OHOS_CAMERA_HISTOGRAM_MODE_ON, 278 } camera_histogram_mode_t; 279 280 // OHOS_STREAM_AVAILABLE_FORMATS 281 typedef enum camera_format { 282 OHOS_CAMERA_FORMAT_RGBA_8888 = 1, 283 OHOS_CAMERA_FORMAT_YCBCR_420_888, 284 OHOS_CAMERA_FORMAT_YCRCB_420_SP, 285 OHOS_CAMERA_FORMAT_JPEG, 286 } camera_format_t; 287 288 #endif 289