1 /* Copyright (c) 2014-2016, The Linux Foundation. All rights reserved. 2 * 3 * Redistribution and use in source and binary forms, with or without 4 * modification, are permitted provided that the following conditions are 5 * met: 6 * * Redistributions of source code must retain the above copyright 7 * notice, this list of conditions and the following disclaimer. 8 * * Redistributions in binary form must reproduce the above 9 * copyright notice, this list of conditions and the following 10 * disclaimer in the documentation and/or other materials provided 11 * with the distribution. 12 * * Neither the name of The Linux Foundation nor the names of its 13 * contributors may be used to endorse or promote products derived 14 * from this software without specific prior written permission. 15 * 16 * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED 17 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 18 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT 19 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS 20 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 21 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 22 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR 23 * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 24 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE 25 * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN 26 * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 * 28 */ 29 30 #ifndef __QCAMERA3VENDORTAGS_H__ 31 #define __QCAMERA3VENDORTAGS_H__ 32 33 // Camera dependencies 34 #include "system/camera_metadata.h" 35 #include "system/camera_vendor_tags.h" 36 37 namespace qcamera { 38 39 #define TANGO_SECTION_OFFSET 0x4000 40 41 enum qcamera3_ext_section { 42 QCAMERA3_PRIVATEDATA = VENDOR_SECTION, 43 QCAMERA3_CDS, 44 QCAMERA3_OPAQUE_RAW, 45 QCAMERA3_CROP, 46 QCAMERA3_TUNING_META_DATA, 47 QCAMERA3_TEMPORAL_DENOISE, 48 QCAMERA3_ISO_EXP_PRIORITY, 49 QCAMERA3_SATURATION, 50 QCAMERA3_EXPOSURE_METERING_MODE, 51 QCAMERA3_AV_TIMER, 52 QCAMERA3_SENSOR_META_DATA, 53 QCAMERA3_DUALCAM_LINK_META_DATA, 54 QCAMERA3_DUALCAM_CALIB_META_DATA, 55 QCAMERA3_HAL_PRIVATEDATA, 56 QCAMERA3_JPEG_ENCODE_CROP, 57 QCAMERA3_VIDEO_HDR, 58 QCAMERA3_IR, 59 QCAMERA3_AEC_CONVERGENCE, 60 QCAMERA3_AWB_CONVERGENCE, 61 QCAMERA3_INSTANT_AEC, 62 NEXUS_EXPERIMENTAL_2016, 63 QCAMERA3_SHARPNESS_DATA, 64 QCAMERA3_HISTOGRAM, 65 QCAMERA3_BINNING_CORRECTION, 66 QCAMERA3_STATS, 67 NEXUS_EXPERIMENTAL_2017, 68 QCAMERA3_SECTIONS_END, 69 70 //This value is hardcoded in NDK clients and hence enum value is 71 //assigned to ensure this value does not go off sync 72 TANGO_SECTIONS_START = VENDOR_SECTION + TANGO_SECTION_OFFSET, 73 TANGO_MODE_DATA = TANGO_SECTIONS_START, 74 TANGO_SECTIONS_END 75 }; 76 77 enum qcamera3_ext_section_ranges { 78 QCAMERA3_PRIVATEDATA_START = QCAMERA3_PRIVATEDATA << 16, 79 QCAMERA3_CDS_START = QCAMERA3_CDS << 16, 80 QCAMERA3_OPAQUE_RAW_START = QCAMERA3_OPAQUE_RAW << 16, 81 QCAMERA3_CROP_START = QCAMERA3_CROP << 16, 82 QCAMERA3_TUNING_META_DATA_START = QCAMERA3_TUNING_META_DATA << 16, 83 QCAMERA3_TEMPORAL_DENOISE_START = QCAMERA3_TEMPORAL_DENOISE << 16, 84 QCAMERA3_ISO_EXP_PRIORITY_START = QCAMERA3_ISO_EXP_PRIORITY << 16, 85 QCAMERA3_SATURATION_START = QCAMERA3_SATURATION << 16, 86 QCAMERA3_EXPOSURE_METER_START = QCAMERA3_EXPOSURE_METERING_MODE << 16, 87 QCAMERA3_AV_TIMER_START = QCAMERA3_AV_TIMER << 16, 88 QCAMERA3_SENSOR_META_DATA_START = QCAMERA3_SENSOR_META_DATA << 16, 89 QCAMERA3_DUALCAM_LINK_META_DATA_START = QCAMERA3_DUALCAM_LINK_META_DATA << 16, 90 QCAMERA3_DUALCAM_CALIB_META_DATA_START = QCAMERA3_DUALCAM_CALIB_META_DATA << 16, 91 QCAMERA3_HAL_PRIVATEDATA_START = QCAMERA3_HAL_PRIVATEDATA << 16, 92 QCAMERA3_JPEG_ENCODE_CROP_START = QCAMERA3_JPEG_ENCODE_CROP << 16, 93 QCAMERA3_VIDEO_HDR_START = QCAMERA3_VIDEO_HDR << 16, 94 QCAMERA3_IR_START = QCAMERA3_IR << 16, 95 QCAMERA3_AEC_CONVERGENCE_SPEED_START = QCAMERA3_AEC_CONVERGENCE << 16, 96 QCAMERA3_AWB_CONVERGENCE_SPEED_START = QCAMERA3_AWB_CONVERGENCE << 16, 97 QCAMERA3_INSTANT_AEC_START = QCAMERA3_INSTANT_AEC << 16, 98 NEXUS_EXPERIMENTAL_2016_START = NEXUS_EXPERIMENTAL_2016 <<16, 99 QCAMERA3_SHARPNESS_START = QCAMERA3_SHARPNESS_DATA << 16, 100 QCAMERA3_HISTOGRAM_START = QCAMERA3_HISTOGRAM << 16, 101 QCAMERA3_BINNING_CORRECTION_START = QCAMERA3_BINNING_CORRECTION << 16, 102 QCAMERA3_STATS_START = QCAMERA3_STATS << 16, 103 NEXUS_EXPERIMENTAL_2017_START = NEXUS_EXPERIMENTAL_2017 << 16, 104 TANGO_MODE_DATA_START = TANGO_MODE_DATA << 16, 105 }; 106 107 enum qcamera3_ext_tags { 108 QCAMERA3_PRIVATEDATA_REPROCESS = QCAMERA3_PRIVATEDATA_START, 109 QCAMERA3_PRIVATEDATA_END, 110 QCAMERA3_CDS_MODE = QCAMERA3_CDS_START, 111 QCAMERA3_CDS_INFO, 112 QCAMERA3_CDS_END, 113 114 //Property Name: org.codeaurora.qcamera3.opaque_raw.opaque_raw_strides 115 // 116 //Type: int32 * n * 3 [public] 117 // 118 //Description: Distance in bytes from the beginning of one row of opaque 119 //raw image data to the beginning of next row. 120 // 121 //Details: The strides are listed as (raw_width, raw_height, stride) 122 //triplets. For each supported raw size, there will be a stride associated 123 //with it. 124 QCAMERA3_OPAQUE_RAW_STRIDES = QCAMERA3_OPAQUE_RAW_START, 125 126 //Property Name: org.codeaurora.qcamera3.opaque_raw.opaque_raw_format 127 // 128 //Type: byte(enum) [public] 129 // * LEGACY - The legacy raw format where 8, 10, or 12-bit 130 // raw data is packed into a 64-bit word. 131 // * MIPI - raw format matching the data packing described 132 // in MIPI CSI-2 specification. In memory, the data 133 // is constructed by packing sequentially received pixels 134 // into least significant parts of the words first. 135 // Within each pixel, the least significant bits are also 136 // placed towards the least significant part of the word. 137 // 138 //Details: Lay out of opaque raw data in memory is decided by two factors: 139 // opaque_raw_format and bit depth (implied by whiteLevel). Below 140 // list illustrates their relationship: 141 // LEGACY8: P7(7:0) P6(7:0) P5(7:0) P4(7:0) P3(7:0) P2(7:0) P1(7:0) P0(7:0) 142 // 8 pixels occupy 8 bytes, no padding needed 143 // min_stride = CEILING8(raw_width) 144 // LEGACY10: 0000 P5(9:0) P4(9:0) P3(9:0) P2(9:0) P1(9:0) P0(9:0) 145 // 6 pixels occupy 8 bytes, 4 bits padding at MSB 146 // min_stride = (raw_width+5)/6 * 8 147 // LEGACY12: 0000 P4(11:0) P3(11:0) P2(11:0) P1(11:0) P0(11:0) 148 // 5 pixels occupy 8 bytes, 4 bits padding at MSB 149 // min_stride = (raw_width+4)/5 * 8 150 // MIPI8: P0(7:0) 151 // 1 pixel occupy 1 byte 152 // min_stride = raw_width 153 // MIPI10: P3(1:0) P2(1:0) P1(1:0) P0(1:0) P3(9:2) P2(9:2) P1(9:2) P0(9:2) 154 // 4 pixels occupy 5 bytes 155 // min_stride = (raw_width+3)/4 * 5 156 // MIPI12: P1(3:0) P0(3:0) P1(11:4) P0(11:4) 157 // 2 pixels occupy 3 bytes 158 // min_stride = (raw_width+1)/2 * 3 159 //Note that opaque_raw_stride needs to be at least the required minimum 160 //stride from the table above. ISP hardware may need more generous stride 161 //setting. For example, for LEGACY8, the actual stride may be 162 //CEILING16(raw_width) due to bus burst length requirement. 163 QCAMERA3_OPAQUE_RAW_FORMAT, 164 QCAMERA3_OPAQUE_RAW_END, 165 166 QCAMERA3_CROP_COUNT_REPROCESS = QCAMERA3_CROP_START, 167 QCAMERA3_CROP_REPROCESS, 168 QCAMERA3_CROP_ROI_MAP_REPROCESS, 169 QCAMERA3_CROP_END, 170 171 QCAMERA3_TUNING_META_DATA_BLOB = QCAMERA3_TUNING_META_DATA_START, 172 QCAMERA3_TUNING_META_DATA_END, 173 174 QCAMERA3_TEMPORAL_DENOISE_ENABLE = QCAMERA3_TEMPORAL_DENOISE_START, 175 QCAMERA3_TEMPORAL_DENOISE_PROCESS_TYPE, 176 QCAMERA3_TEMPORAL_DENOISE_END, 177 178 QCAMERA3_USE_ISO_EXP_PRIORITY = QCAMERA3_ISO_EXP_PRIORITY_START, 179 QCAMERA3_SELECT_PRIORITY, 180 /* Property Name: org.codeaurora.qcamera3.iso_exp_priority.iso_available_modes 181 Type: int32[8] 182 Description: Available iso mode values 183 iso_available_modes[0] = 0 (auto) 184 iso_available_modes[1] = 1 (deblur) 185 iso_available_modes[2] = 2 (100) 186 iso_available_modes[3] = 3 (200) 187 iso_available_modes[4] = 4 (400) 188 iso_available_modes[5] = 5 (800) 189 iso_available_modes[6] = 6 (1600) 190 iso_available_modes[7] = 7 (3200) 191 */ 192 QCAMERA3_ISO_AVAILABLE_MODES, 193 /* Property Name: org.codeaurora.qcamera3.iso_exp_priority.exposure_time_range 194 Type: int64[2] 195 Description: Min/max exposure time values (ns) 196 exposure_time_range[0] = min 197 exposure_time_range[1] = max 198 */ 199 QCAMERA3_EXP_TIME_RANGE, 200 QCAMERA3_ISO_EXP_PRIORITY_END, 201 202 QCAMERA3_USE_SATURATION = QCAMERA3_SATURATION_START, 203 /* Property Name: org.codeaurora.qcamera3.saturation.range 204 Type: int32[4] 205 Description: Range of possible saturation values 206 range[0] = min 207 range[1] = max 208 range[2] = default 209 range[3] = step 210 */ 211 QCAMERA3_SATURATION_RANGE, 212 QCAMERA3_SATURATION_END, 213 214 QCAMERA3_EXPOSURE_METER = QCAMERA3_EXPOSURE_METER_START, 215 /* Property Name: org.codeaurora.qcamera3.exposure_metering.available_modes 216 Type: int32[7] 217 Description: Available exposure metering mode values 218 available_modes[0] = 0 (FRAME_AVERAGE) 219 available_modes[1] = 1 (CENTER_WEIGHTED) 220 available_modes[2] = 2 (SPOT_METERING) 221 available_modes[3] = 3 (SMART_METERING) 222 available_modes[4] = 4 (USER_METERING) 223 available_modes[5] = 5 (SPOT_METERING_ADV) 224 available_modes[6] = 6 (CENTER_WEIGHTED_ADV) 225 */ 226 QCAMERA3_EXPOSURE_METER_AVAILABLE_MODES, 227 QCAMERA3_EXPOSURE_METER_END, 228 229 QCAMERA3_USE_AV_TIMER = QCAMERA3_AV_TIMER_START, 230 QCAMERA3_AV_TIMER_END, 231 232 QCAMERA3_SENSOR_DYNAMIC_BLACK_LEVEL_PATTERN = QCAMERA3_SENSOR_META_DATA_START, 233 QCAMERA3_SENSOR_IS_MONO_ONLY, 234 QCAMERA3_SENSOR_META_DATA_END, 235 236 QCAMERA3_DUALCAM_LINK_ENABLE = QCAMERA3_DUALCAM_LINK_META_DATA_START, 237 QCAMERA3_DUALCAM_LINK_IS_MAIN, 238 QCAMERA3_DUALCAM_LINK_RELATED_CAMERA_ID, 239 QCAMERA3_DUALCAM_LINK_META_DATA_END, 240 241 QCAMERA3_DUALCAM_CALIB_META_DATA_BLOB = QCAMERA3_DUALCAM_CALIB_META_DATA_START, 242 QCAMERA3_DUALCAM_CALIB_META_DATA_END, 243 244 QCAMERA3_HAL_PRIVATEDATA_REPROCESS_FLAGS = QCAMERA3_HAL_PRIVATEDATA_START, 245 QCAMERA3_HAL_PRIVATEDATA_REPROCESS_DATA_BLOB, 246 QCAMERA3_HAL_PRIVATEDATA_EXIF_DEBUG_DATA_BLOB, 247 248 QCAMERA3_HAL_PRIVATEDATA_END, 249 250 /* Property Name: org.codeaurora.qcamera3.jpeg_encode_crop.enable 251 Type: byte 252 Description: If JPEG crop is enable 253 */ 254 QCAMERA3_JPEG_ENCODE_CROP_ENABLE = QCAMERA3_JPEG_ENCODE_CROP_START, 255 /* Property Name: org.codeaurora.qcamera3.jpeg_encode_crop.rect 256 Type: int32[4] 257 Description: Crop image into size width x height 258 from [left, top] coordinate 259 rect[0] = left 260 rect[1] = top 261 rect[2] = width 262 rect[3] = height 263 */ 264 QCAMERA3_JPEG_ENCODE_CROP_RECT, 265 /* Property Name: org.codeaurora.qcamera3.jpeg_encode_crop.roi 266 Type: int32[4] 267 Description: Scale the crop image into size width x height 268 from [left, top] coordinate. 269 roi[0] = left 270 roi[1] = top 271 roi[2] = width 272 roi[3] = height 273 */ 274 QCAMERA3_JPEG_ENCODE_CROP_ROI, 275 QCAMERA3_JPEG_ENCODE_CROP_END, 276 277 QCAMERA3_VIDEO_HDR_MODE = QCAMERA3_VIDEO_HDR_START, 278 QCAMERA3_AVAILABLE_VIDEO_HDR_MODES, 279 QCAMERA3_VIDEO_HDR_END, 280 281 QCAMERA3_IR_MODE = QCAMERA3_IR_START, 282 QCAMERA3_IR_AVAILABLE_MODES, 283 QCAMERA3_IR_END, 284 285 QCAMERA3_AEC_CONVERGENCE_SPEED = QCAMERA3_AEC_CONVERGENCE_SPEED_START, 286 QCAMERA3_AEC_CONVERGENCE_SPEED_END, 287 288 QCAMERA3_AWB_CONVERGENCE_SPEED = QCAMERA3_AWB_CONVERGENCE_SPEED_START, 289 QCAMERA3_AWB_CONVERGENCE_SPEED_END, 290 291 QCAMERA3_INSTANT_AEC_MODE = QCAMERA3_INSTANT_AEC_START, 292 QCAMERA3_INSTANT_AEC_AVAILABLE_MODES, 293 QCAMERA3_INSTANT_AEC_END, 294 295 NEXUS_EXPERIMENTAL_2016_HYBRID_AE_ENABLE = NEXUS_EXPERIMENTAL_2016_START, 296 NEXUS_EXPERIMENTAL_2016_AF_SCENE_CHANGE, 297 // DEVCAMDEBUG 298 DEVCAMDEBUG_META_ENABLE, 299 // DEVCAMDEBUG AF 300 DEVCAMDEBUG_AF_LENS_POSITION, 301 DEVCAMDEBUG_AF_TOF_CONFIDENCE, 302 DEVCAMDEBUG_AF_TOF_DISTANCE, 303 DEVCAMDEBUG_AF_LUMA, 304 DEVCAMDEBUG_AF_HAF_STATE, 305 DEVCAMDEBUG_AF_MONITOR_PDAF_TARGET_POS, 306 DEVCAMDEBUG_AF_MONITOR_PDAF_CONFIDENCE, 307 DEVCAMDEBUG_AF_MONITOR_PDAF_REFOCUS, 308 DEVCAMDEBUG_AF_MONITOR_TOF_TARGET_POS, 309 DEVCAMDEBUG_AF_MONITOR_TOF_CONFIDENCE, 310 DEVCAMDEBUG_AF_MONITOR_TOF_REFOCUS, 311 DEVCAMDEBUG_AF_MONITOR_TYPE_SELECT, 312 DEVCAMDEBUG_AF_MONITOR_REFOCUS, 313 DEVCAMDEBUG_AF_MONITOR_TARGET_POS, 314 DEVCAMDEBUG_AF_SEARCH_PDAF_TARGET_POS, 315 DEVCAMDEBUG_AF_SEARCH_PDAF_NEXT_POS, 316 DEVCAMDEBUG_AF_SEARCH_PDAF_NEAR_POS, 317 DEVCAMDEBUG_AF_SEARCH_PDAF_FAR_POS, 318 DEVCAMDEBUG_AF_SEARCH_PDAF_CONFIDENCE, 319 DEVCAMDEBUG_AF_SEARCH_TOF_TARGET_POS, 320 DEVCAMDEBUG_AF_SEARCH_TOF_NEXT_POS, 321 DEVCAMDEBUG_AF_SEARCH_TOF_NEAR_POS, 322 DEVCAMDEBUG_AF_SEARCH_TOF_FAR_POS, 323 DEVCAMDEBUG_AF_SEARCH_TOF_CONFIDENCE, 324 DEVCAMDEBUG_AF_SEARCH_TYPE_SELECT, 325 DEVCAMDEBUG_AF_SEARCH_NEXT_POS, 326 DEVCAMDEBUG_AF_SEARCH_TARGET_POS, 327 // DEVCAMDEBUG AEC 328 DEVCAMDEBUG_AEC_TARGET_LUMA, 329 DEVCAMDEBUG_AEC_COMP_LUMA, 330 DEVCAMDEBUG_AEC_AVG_LUMA, 331 DEVCAMDEBUG_AEC_CUR_LUMA, 332 DEVCAMDEBUG_AEC_LINECOUNT, 333 DEVCAMDEBUG_AEC_REAL_GAIN, 334 DEVCAMDEBUG_AEC_EXP_INDEX, 335 DEVCAMDEBUG_AEC_LUX_IDX, 336 // DEVCAMDEBUG zzHDR 337 DEVCAMDEBUG_AEC_L_REAL_GAIN, 338 DEVCAMDEBUG_AEC_L_LINECOUNT, 339 DEVCAMDEBUG_AEC_S_REAL_GAIN, 340 DEVCAMDEBUG_AEC_S_LINECOUNT, 341 DEVCAMDEBUG_AEC_HDR_SENSITIVITY_RATIO, 342 DEVCAMDEBUG_AEC_HDR_EXP_TIME_RATIO, 343 // DEVCAMDEBUG ADRC 344 DEVCAMDEBUG_AEC_TOTAL_DRC_GAIN, 345 DEVCAMDEBUG_AEC_COLOR_DRC_GAIN, 346 DEVCAMDEBUG_AEC_GTM_RATIO, 347 DEVCAMDEBUG_AEC_LTM_RATIO, 348 DEVCAMDEBUG_AEC_LA_RATIO, 349 DEVCAMDEBUG_AEC_GAMMA_RATIO, 350 // DEVCAMDEBUG AEC MOTION 351 DEVCAMDEBUG_AEC_CAMERA_MOTION_DX, 352 DEVCAMDEBUG_AEC_CAMERA_MOTION_DY, 353 DEVCAMDEBUG_AEC_SUBJECT_MOTION, 354 // DEVCAMDEBUG AWB 355 DEVCAMDEBUG_AWB_R_GAIN, 356 DEVCAMDEBUG_AWB_G_GAIN, 357 DEVCAMDEBUG_AWB_B_GAIN, 358 DEVCAMDEBUG_AWB_CCT, 359 DEVCAMDEBUG_AWB_DECISION, 360 // DEVCAMDEBUG END 361 NEXUS_EXPERIMENTAL_2016_END, 362 363 QCAMERA3_SHARPNESS_STRENGTH = QCAMERA3_SHARPNESS_START, 364 QCAMERA3_SHARPNESS_RANGE, 365 QCAMERA3_SHARPNESS_END, 366 367 QCAMERA3_HISTOGRAM_MODE = QCAMERA3_HISTOGRAM_START, 368 QCAMERA3_HISTOGRAM_BUCKETS, 369 QCAMERA3_HISTOGRAM_MAX_COUNT, 370 QCAMERA3_HISTOGRAM_STATS, 371 QCAMERA3_HISTOGRAM_END, 372 373 QCAMERA3_BINNING_CORRECTION_MODE = QCAMERA3_BINNING_CORRECTION_START, 374 QCAMERA3_AVAILABLE_BINNING_CORRECTION_MODES, 375 QCAMERA3_BINNING_CORRECTION_END, 376 377 QCAMERA3_STATS_IS_HDR_SCENE = QCAMERA3_STATS_START, 378 /* Property Name: org.codeaurora.qcamera3.stats.is_hdr_scene_values 379 Type: byte[2] 380 Description: Possible values for is_hdr_scene 381 roi[0] = 0 (false) 382 roi[1] = 1 (true) 383 */ 384 QCAMERA3_STATS_IS_HDR_SCENE_VALUES, 385 QCAMERA3_STATS_IS_HDR_SCENE_CONFIDENCE, 386 /* Property Name: org.codeaurora.qcamera3.stats.is_hdr_scene_confidence_range 387 Type: float[2] 388 Description: Range of values for is_hdr_scene_confidence 389 roi[0] = 0.0 (min) 390 roi[1] = 1.0 (max) 391 */ 392 QCAMERA3_STATS_IS_HDR_SCENE_CONFIDENCE_RANGE, 393 QCAMERA3_STATS_BSGC_AVAILABLE, 394 QCAMERA3_STATS_BLINK_DETECTED, 395 /* Property Name: org.codeaurora.qcamera3.stats.blink_degree 396 Type: int8[2] 397 Description: Blink degree 398 blink_degree[0] = left 399 blink_degree[1] = right 400 */ 401 QCAMERA3_STATS_BLINK_DEGREE, 402 QCAMERA3_STATS_SMILE_DEGREE, 403 QCAMERA3_STATS_SMILE_CONFIDENCE, 404 QCAMERA3_STATS_GAZE_ANGLE, 405 /* Property Name: org.codeaurora.qcamera3.stats.gaze_direction 406 Type: int32[3] 407 Description: Gaze direction 408 gaze_direction[0] = up-down 409 gaze_direction[1] = left-right 410 gaze_direction[2] = roll 411 */ 412 QCAMERA3_STATS_GAZE_DIRECTION, 413 /* Property Name: org.codeaurora.qcamera3.stats.gaze_degree 414 Type: int8[2] 415 Description: Gaze degree 416 gaze_degree[0] = left-right 417 gaze_degree[1] = top-bottom 418 */ 419 QCAMERA3_STATS_GAZE_DEGREE, 420 QCAMERA3_STATS_END, 421 422 /* Histogram */ 423 NEXUS_EXPERIMENTAL_2017_HISTOGRAM_ENABLE = NEXUS_EXPERIMENTAL_2017_START, 424 NEXUS_EXPERIMENTAL_2017_HISTOGRAM_SUPPORTED_BINS, 425 NEXUS_EXPERIMENTAL_2017_HISTOGRAM_BINS, 426 NEXUS_EXPERIMENTAL_2017_HISTOGRAM, 427 428 /* EEPROM Version Information */ 429 NEXUS_EXPERIMENTAL_2017_EEPROM_VERSION_INFO, 430 431 /* EEPROM PDAF calibration data */ 432 NEXUS_EXPERIMENTAL_2017_EEPROM_PDAF_CALIB_RIGHT_GAINS, 433 NEXUS_EXPERIMENTAL_2017_EEPROM_PDAF_CALIB_LEFT_GAINS, 434 NEXUS_EXPERIMENTAL_2017_EEPROM_PDAF_CALIB_CONV_COEFF, 435 436 /* EEPROM WB calibration data */ 437 NEXUS_EXPERIMENTAL_2017_EEPROM_WB_CALIB_NUM_LIGHTS, 438 NEXUS_EXPERIMENTAL_2017_EEPROM_WB_CALIB_R_OVER_G_RATIOS, 439 NEXUS_EXPERIMENTAL_2017_EEPROM_WB_CALIB_B_OVER_G_RATIOS, 440 NEXUS_EXPERIMENTAL_2017_EEPROM_WB_CALIB_GR_OVER_GB_RATIO, 441 442 /* Tracking AF */ 443 NEXUS_EXPERIMENTAL_2017_TRACKING_AF_TRIGGER, 444 NEXUS_EXPERIMENTAL_2017_AF_REGIONS_CONFIDENCE, 445 /* OIS data */ 446 NEXUS_EXPERIMENTAL_2017_OIS_FRAME_TIMESTAMP_VSYNC, 447 NEXUS_EXPERIMENTAL_2017_OIS_FRAME_TIMESTAMP_BOOTTIME, 448 NEXUS_EXPERIMENTAL_2017_OIS_TIMESTAMPS_BOOTTIME, 449 NEXUS_EXPERIMENTAL_2017_OIS_SHIFT_X, 450 NEXUS_EXPERIMENTAL_2017_OIS_SHIFT_Y, 451 NEXUS_EXPERIMENTAL_2017_OIS_SHIFT_PIXEL_X, 452 NEXUS_EXPERIMENTAL_2017_OIS_SHIFT_PIXEL_Y, 453 /* PD plumbing */ 454 NEXUS_EXPERIMENTAL_2017_PD_DATA_DIMENSIONS, 455 NEXUS_EXPERIMENTAL_2017_PD_DATA_ENABLE, 456 /* Exposure time boost */ 457 NEXUS_EXPERIMENTAL_2017_EXP_TIME_BOOST, 458 /* EASEL HDR+ */ 459 NEXUS_EXPERIMENTAL_2017_EXIF_MAKERNOTE, 460 NEXUS_EXPERIMENTAL_2017_NEXT_STILL_INTENT_REQUEST_READY, 461 NEXUS_EXPERIMENTAL_2017_POSTVIEW, 462 NEXUS_EXPERIMENTAL_2017_POSTVIEW_CONFIG, 463 NEXUS_EXPERIMENTAL_2017_POSTVIEW_DATA, 464 NEXUS_EXPERIMENTAL_2017_CONTINUOUS_ZSL_CAPTURE, 465 NEXUS_EXPERIMENTAL_2017_DISABLE_HDRPLUS, 466 NEXUS_EXPERIMENTAL_2017_SCENE_DISTANCE, 467 468 /* Motion detection */ 469 NEXUS_EXPERIMENTAL_2017_MOTION_DETECTION_ENABLE, 470 NEXUS_EXPERIMENTAL_2017_CAMERA_MOTION_X, 471 NEXUS_EXPERIMENTAL_2017_CAMERA_MOTION_Y, 472 NEXUS_EXPERIMENTAL_2017_SUBJECT_MOTION, 473 474 NEXUS_EXPERIMENTAL_2017_END, 475 476 /* Select sensor mode for tango */ 477 TANGO_MODE_DATA_MODE = TANGO_MODE_DATA_START, //Unused. Reserved for backward compatibility 478 TANGO_MODE_DATA_SENSOR_FULLFOV, 479 TANGO_MODE_DATA_END, 480 }; 481 482 // QCAMERA3_OPAQUE_RAW_FORMAT 483 typedef enum qcamera3_ext_opaque_raw_format { 484 QCAMERA3_OPAQUE_RAW_FORMAT_LEGACY, 485 QCAMERA3_OPAQUE_RAW_FORMAT_MIPI 486 } qcamera3_ext_opaque_raw_format_t; 487 488 // QCAMERA3_VIDEO_HDR_MODE 489 typedef enum camera_metadata_enum_android_video_hdr_mode { 490 QCAMERA3_VIDEO_HDR_MODE_OFF, 491 QCAMERA3_VIDEO_HDR_MODE_ON 492 } camera_metadata_enum_android_video_hdr_mode_t; 493 494 // QCAMERA3_IR_MODE 495 typedef enum camera_metadata_enum_android_ir_mode { 496 QCAMERA3_IR_MODE_OFF, 497 QCAMERA3_IR_MODE_ON, 498 QCAMERA3_IR_MODE_AUTO 499 } camera_metadata_enum_android_ir_mode_t; 500 501 // QCAMERA3_INSTANCE_AEC_MODE 502 typedef enum qcamera3_ext_instant_aec_mode { 503 QCAMERA3_INSTANT_AEC_NORMAL_CONVERGENCE, 504 QCAMERA3_INSTANT_AEC_AGGRESSIVE_CONVERGENCE, 505 QCAMERA3_INSTANT_AEC_FAST_CONVERGENCE 506 } qcamera3_ext_instant_aec_mode_t; 507 508 // QCAMERA3_HISTOGRAM_MODE 509 typedef enum qcamera3_histogram_mode { 510 QCAMERA3_HISTOGRAM_MODE_OFF, 511 QCAMERA3_HISTOGRAM_MODE_ON 512 } histogram_mode; 513 514 // QCAMERA3_BINNING_CORRECTION_MODE 515 typedef enum camera_metadata_enum_android_binning_correction_mode { 516 QCAMERA3_BINNING_CORRECTION_MODE_OFF, 517 QCAMERA3_BINNING_CORRECTION_MODE_ON 518 } camera_metadata_enum_android_binning_correction_mode_t; 519 520 // QCAMERA3_EXPOSURE_METER 521 typedef enum qcamera3_ext_exposure_meter_mode { 522 QCAMERA3_EXP_METER_MODE_FRAME_AVERAGE, 523 QCAMERA3_EXP_METER_MODE_CENTER_WEIGHTED, 524 QCAMERA3_EXP_METER_MODE_SPOT_METERING, 525 QCAMERA3_EXP_METER_MODE_SMART_METERING, 526 QCAMERA3_EXP_METER_MODE_USER_METERING, 527 QCAMERA3_EXP_METER_MODE_SPOT_METERING_ADV, 528 QCAMERA3_EXP_METER_MODE_CENTER_WEIGHTED_ADV 529 } qcamera3_ext_exposure_meter_mode_t; 530 531 // QCAMERA3_ISO_EXP_PRIORITY 532 typedef enum qcamera3_ext_iso_mode { 533 QCAMERA3_ISO_MODE_AUTO, 534 QCAMERA3_ISO_MODE_DEBLUR, 535 QCAMERA3_ISO_MODE_100, 536 QCAMERA3_ISO_MODE_200, 537 QCAMERA3_ISO_MODE_400, 538 QCAMERA3_ISO_MODE_800, 539 QCAMERA3_ISO_MODE_1600, 540 QCAMERA3_ISO_MODE_3200, 541 } qcamera3_ext_iso_mode_t; 542 543 typedef enum { 544 /* RAW only mode for devices that will simultaneously use more than two 545 * cameras. This is required because by default the HAL will start support 546 * stream along with RAW stream. This will allocate resources which 547 * otherwise can be used for another camera. Using this mode indicates HAL 548 * that the additional functionality provided by support stream is not 549 * needed. 550 * This mode has following limitations: 551 * - Back end 3A, Face Detect or any additional functionality depending 552 * on image/sensor statistics and YUV streams will be disabled. 553 */ 554 QCAMERA3_VENDOR_STREAM_CONFIGURATION_RAW_ONLY_MODE = 0x8000, 555 } QCamera3VendorStreamConfiguration; 556 557 // NEXUS_EXPERIMENTAL_2017_TRACKING_AF 558 typedef enum nexus_experimental_2017_tracking_af_trigger { 559 NEXUS_EXPERIMENTAL_2017_TRACKING_AF_TRIGGER_IDLE, 560 NEXUS_EXPERIMENTAL_2017_TRACKING_AF_TRIGGER_START, 561 NEXUS_EXPERIMENTAL_2017_TRACKING_AF_TRIGGER_STOP, 562 } nexus_experimental_2017_tracking_af_trigger_t; 563 564 typedef enum com_google_nexus_experimental_2016_control_ae_mode { 565 NEXUS_EXPERIMENTAL_2016_CONTROL_AE_MODE_EXTERNAL_FLASH = 5 566 } com_google_nexus_experimental_2016_control_ae_mode_t; 567 568 class QCamera3VendorTags { 569 570 public: 571 static void get_vendor_tag_ops(vendor_tag_ops_t* ops); 572 static int get_tag_count( 573 const vendor_tag_ops_t *ops); 574 static void get_all_tags( 575 const vendor_tag_ops_t *ops, 576 uint32_t *tag_array); 577 static const char* get_section_name( 578 const vendor_tag_ops_t *ops, 579 uint32_t tag); 580 static const char* get_tag_name( 581 const vendor_tag_ops_t *ops, 582 uint32_t tag); 583 static int get_tag_type( 584 const vendor_tag_ops_t *ops, 585 uint32_t tag); 586 587 static const vendor_tag_ops_t *Ops; 588 }; 589 590 }; // namespace qcamera 591 592 #endif /* __QCAMERA3VENDORTAGS_H__ */ 593