QCamera3VendorTags.h revision 2896d129511c499aef15b8162df05fa299860f59
13d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel/* Copyright (c) 2014-2016, The Linux Foundation. All rights reserved.
23d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel*
33d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel* Redistribution and use in source and binary forms, with or without
43d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel* modification, are permitted provided that the following conditions are
53d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel* met:
63d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel*     * Redistributions of source code must retain the above copyright
73d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel*       notice, this list of conditions and the following disclaimer.
83d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel*     * Redistributions in binary form must reproduce the above
93d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel*       copyright notice, this list of conditions and the following
103d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel*       disclaimer in the documentation and/or other materials provided
113d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel*       with the distribution.
123d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel*     * Neither the name of The Linux Foundation nor the names of its
133d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel*       contributors may be used to endorse or promote products derived
143d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel*       from this software without specific prior written permission.
153d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel*
163d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
173d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
183d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
193d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel* ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
203d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
213d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
223d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
233d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel* BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
243d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
253d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel* OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
263d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel* IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
273d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel*
283d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel*/
293d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
303d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel#ifndef __QCAMERA3VENDORTAGS_H__
313d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel#define __QCAMERA3VENDORTAGS_H__
323d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
333d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel// Camera dependencies
343d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel#include "system/camera_metadata.h"
353d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
363d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudelnamespace qcamera {
373d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
383d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudelenum qcamera3_ext_section {
393d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    QCAMERA3_PRIVATEDATA = VENDOR_SECTION,
403d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    QCAMERA3_CDS,
413d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    QCAMERA3_OPAQUE_RAW,
423d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    QCAMERA3_CROP,
433d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    QCAMERA3_TUNING_META_DATA,
443d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    QCAMERA3_TEMPORAL_DENOISE,
45295a0ca3b68291081f46052e545d5b0dec308710Thierry Strudel    QCAMERA3_ISO_EXP_PRIORITY,
46295a0ca3b68291081f46052e545d5b0dec308710Thierry Strudel    QCAMERA3_SATURATION,
47295a0ca3b68291081f46052e545d5b0dec308710Thierry Strudel    QCAMERA3_EXPOSURE_METERING_MODE,
483d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    QCAMERA3_AV_TIMER,
493d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    QCAMERA3_SENSOR_META_DATA,
503d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    QCAMERA3_DUALCAM_LINK_META_DATA,
513d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    QCAMERA3_DUALCAM_CALIB_META_DATA,
523d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    QCAMERA3_HAL_PRIVATEDATA,
533d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    QCAMERA3_JPEG_ENCODE_CROP,
5404e026fe14f98a83811cd3a2c04b60b3b501b80cThierry Strudel    QCAMERA3_VIDEO_HDR,
5504e026fe14f98a83811cd3a2c04b60b3b501b80cThierry Strudel    QCAMERA3_IR,
56269c81ab7298bf38a22ab4376cf97297c0902b7eThierry Strudel    QCAMERA3_AEC_CONVERGENCE,
57269c81ab7298bf38a22ab4376cf97297c0902b7eThierry Strudel    QCAMERA3_AWB_CONVERGENCE,
58295a0ca3b68291081f46052e545d5b0dec308710Thierry Strudel    QCAMERA3_INSTANT_AEC,
5919463d7065fea3ccc0728e4113a9a7e297505dadShuzhen Wang    NEXUS_EXPERIMENTAL_2016,
6054dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel    QCAMERA3_SHARPNESS_DATA,
6154dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel    QCAMERA3_HISTOGRAM,
6254dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel    QCAMERA3_BINNING_CORRECTION,
6354dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel    QCAMERA3_STATS,
643d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    QCAMERA3_SECTIONS_END
653d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel};
663d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
673d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudelenum qcamera3_ext_section_ranges {
683d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    QCAMERA3_PRIVATEDATA_START = QCAMERA3_PRIVATEDATA << 16,
693d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    QCAMERA3_CDS_START = QCAMERA3_CDS << 16,
703d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    QCAMERA3_OPAQUE_RAW_START = QCAMERA3_OPAQUE_RAW << 16,
713d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    QCAMERA3_CROP_START = QCAMERA3_CROP << 16,
723d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    QCAMERA3_TUNING_META_DATA_START = QCAMERA3_TUNING_META_DATA << 16,
733d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    QCAMERA3_TEMPORAL_DENOISE_START = QCAMERA3_TEMPORAL_DENOISE << 16,
74295a0ca3b68291081f46052e545d5b0dec308710Thierry Strudel    QCAMERA3_ISO_EXP_PRIORITY_START = QCAMERA3_ISO_EXP_PRIORITY << 16,
75295a0ca3b68291081f46052e545d5b0dec308710Thierry Strudel    QCAMERA3_SATURATION_START = QCAMERA3_SATURATION << 16,
76295a0ca3b68291081f46052e545d5b0dec308710Thierry Strudel    QCAMERA3_EXPOSURE_METER_START = QCAMERA3_EXPOSURE_METERING_MODE << 16,
773d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    QCAMERA3_AV_TIMER_START = QCAMERA3_AV_TIMER << 16,
783d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    QCAMERA3_SENSOR_META_DATA_START = QCAMERA3_SENSOR_META_DATA << 16,
793d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    QCAMERA3_DUALCAM_LINK_META_DATA_START = QCAMERA3_DUALCAM_LINK_META_DATA << 16,
803d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    QCAMERA3_DUALCAM_CALIB_META_DATA_START = QCAMERA3_DUALCAM_CALIB_META_DATA << 16,
813d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    QCAMERA3_HAL_PRIVATEDATA_START = QCAMERA3_HAL_PRIVATEDATA << 16,
8204e026fe14f98a83811cd3a2c04b60b3b501b80cThierry Strudel    QCAMERA3_JPEG_ENCODE_CROP_START = QCAMERA3_JPEG_ENCODE_CROP << 16,
8304e026fe14f98a83811cd3a2c04b60b3b501b80cThierry Strudel    QCAMERA3_VIDEO_HDR_START = QCAMERA3_VIDEO_HDR << 16,
84269c81ab7298bf38a22ab4376cf97297c0902b7eThierry Strudel    QCAMERA3_IR_START = QCAMERA3_IR << 16,
85269c81ab7298bf38a22ab4376cf97297c0902b7eThierry Strudel    QCAMERA3_AEC_CONVERGENCE_SPEED_START = QCAMERA3_AEC_CONVERGENCE << 16,
86295a0ca3b68291081f46052e545d5b0dec308710Thierry Strudel    QCAMERA3_AWB_CONVERGENCE_SPEED_START = QCAMERA3_AWB_CONVERGENCE << 16,
8719463d7065fea3ccc0728e4113a9a7e297505dadShuzhen Wang    QCAMERA3_INSTANT_AEC_START = QCAMERA3_INSTANT_AEC << 16,
8854dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel    NEXUS_EXPERIMENTAL_2016_START = NEXUS_EXPERIMENTAL_2016 <<16,
8954dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel    QCAMERA3_SHARPNESS_START = QCAMERA3_SHARPNESS_DATA << 16,
9054dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel    QCAMERA3_HISTOGRAM_START = QCAMERA3_HISTOGRAM << 16,
9154dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel    QCAMERA3_BINNING_CORRECTION_START = QCAMERA3_BINNING_CORRECTION << 16,
9254dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel    QCAMERA3_STATS_START = QCAMERA3_STATS << 16
933d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel};
943d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
953d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudelenum qcamera3_ext_tags {
963d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    QCAMERA3_PRIVATEDATA_REPROCESS = QCAMERA3_PRIVATEDATA_START,
973d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    QCAMERA3_PRIVATEDATA_END,
983d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    QCAMERA3_CDS_MODE = QCAMERA3_CDS_START,
993d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    QCAMERA3_CDS_INFO,
1003d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    QCAMERA3_CDS_END,
1013d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
1023d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    //Property Name:  org.codeaurora.qcamera3.opaque_raw.opaque_raw_strides
1033d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    //
1043d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    //Type: int32 * n * 3 [public]
1053d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    //
1063d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    //Description: Distance in bytes from the beginning of one row of opaque
1073d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    //raw image data to the beginning of next row.
1083d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    //
1093d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    //Details: The strides are listed as (raw_width, raw_height, stride)
1103d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    //triplets. For each supported raw size, there will be a stride associated
1113d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    //with it.
1123d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    QCAMERA3_OPAQUE_RAW_STRIDES = QCAMERA3_OPAQUE_RAW_START,
1133d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
1143d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    //Property Name: org.codeaurora.qcamera3.opaque_raw.opaque_raw_format
1153d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    //
1163d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    //Type: byte(enum) [public]
1173d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    //  * LEGACY - The legacy raw format where 8, 10, or 12-bit
1183d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    //    raw data is packed into a 64-bit word.
1193d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    //  * MIPI - raw format matching the data packing described
1203d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    //    in MIPI CSI-2 specification. In memory, the data
1213d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    //    is constructed by packing sequentially received pixels
1223d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    //    into least significant parts of the words first.
1233d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    //    Within each pixel, the least significant bits are also
1243d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    //    placed towards the least significant part of the word.
1253d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    //
1263d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    //Details: Lay out of opaque raw data in memory is decided by two factors:
1273d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    //         opaque_raw_format and bit depth (implied by whiteLevel). Below
1283d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    //         list illustrates their relationship:
1293d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    //  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)
1303d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    //            8 pixels occupy 8 bytes, no padding needed
1313d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    //            min_stride = CEILING8(raw_width)
1323d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    // LEGACY10:  0000 P5(9:0) P4(9:0) P3(9:0) P2(9:0) P1(9:0) P0(9:0)
1333d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    //            6 pixels occupy 8 bytes, 4 bits padding at MSB
1343d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    //            min_stride = (raw_width+5)/6 * 8
1353d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    // LEGACY12:  0000 P4(11:0) P3(11:0) P2(11:0) P1(11:0) P0(11:0)
1363d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    //            5 pixels occupy 8 bytes, 4 bits padding at MSB
1373d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    //            min_stride = (raw_width+4)/5 * 8
1383d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    //    MIPI8:  P0(7:0)
1393d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    //            1 pixel occupy 1 byte
1403d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    //            min_stride = raw_width
1413d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    //   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)
1423d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    //            4 pixels occupy 5 bytes
1433d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    //            min_stride = (raw_width+3)/4 * 5
1443d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    //   MIPI12:  P1(3:0) P0(3:0) P1(11:4) P0(11:4)
1453d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    //            2 pixels occupy 3 bytes
1463d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    //            min_stride = (raw_width+1)/2 * 3
1473d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    //Note that opaque_raw_stride needs to be at least the required minimum
1483d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    //stride from the table above. ISP hardware may need more generous stride
1493d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    //setting. For example, for LEGACY8, the actual stride may be
1503d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    //CEILING16(raw_width) due to bus burst length requirement.
1513d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    QCAMERA3_OPAQUE_RAW_FORMAT,
1523d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    QCAMERA3_OPAQUE_RAW_END,
1533d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
1543d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    QCAMERA3_CROP_COUNT_REPROCESS = QCAMERA3_CROP_START,
1553d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    QCAMERA3_CROP_REPROCESS,
1563d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    QCAMERA3_CROP_ROI_MAP_REPROCESS,
1573d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    QCAMERA3_CROP_END,
1583d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
1593d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    QCAMERA3_TUNING_META_DATA_BLOB = QCAMERA3_TUNING_META_DATA_START,
1603d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    QCAMERA3_TUNING_META_DATA_END,
1613d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
1623d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    QCAMERA3_TEMPORAL_DENOISE_ENABLE = QCAMERA3_TEMPORAL_DENOISE_START,
1633d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    QCAMERA3_TEMPORAL_DENOISE_PROCESS_TYPE,
1643d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    QCAMERA3_TEMPORAL_DENOISE_END,
1653d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
166295a0ca3b68291081f46052e545d5b0dec308710Thierry Strudel    QCAMERA3_USE_ISO_EXP_PRIORITY = QCAMERA3_ISO_EXP_PRIORITY_START,
167295a0ca3b68291081f46052e545d5b0dec308710Thierry Strudel    QCAMERA3_SELECT_PRIORITY,
16854dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel    /* Property Name:  org.codeaurora.qcamera3.iso_exp_priority.iso_available_modes
16954dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel       Type: int32[8]
17054dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel       Description: Available iso mode values
17154dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel       iso_available_modes[0] = 0 (auto)
17254dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel       iso_available_modes[1] = 1 (deblur)
17354dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel       iso_available_modes[2] = 2 (100)
17454dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel       iso_available_modes[3] = 3 (200)
17554dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel       iso_available_modes[4] = 4 (400)
17654dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel       iso_available_modes[5] = 5 (800)
17754dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel       iso_available_modes[6] = 6 (1600)
17854dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel       iso_available_modes[7] = 7 (3200)
17954dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel    */
18054dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel    QCAMERA3_ISO_AVAILABLE_MODES,
18154dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel    /* Property Name:  org.codeaurora.qcamera3.iso_exp_priority.exposure_time_range
18254dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel       Type: int64[2]
18354dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel       Description: Min/max exposure time values (ns)
18454dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel       exposure_time_range[0] = min
18554dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel       exposure_time_range[1] = max
18654dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel    */
18754dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel    QCAMERA3_EXP_TIME_RANGE,
188295a0ca3b68291081f46052e545d5b0dec308710Thierry Strudel    QCAMERA3_ISO_EXP_PRIORITY_END,
189295a0ca3b68291081f46052e545d5b0dec308710Thierry Strudel
190295a0ca3b68291081f46052e545d5b0dec308710Thierry Strudel    QCAMERA3_USE_SATURATION = QCAMERA3_SATURATION_START,
19154dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel    /* Property Name:  org.codeaurora.qcamera3.saturation.range
19254dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel       Type: int32[4]
19354dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel       Description: Range of possible saturation values
19454dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel       range[0] = min
19554dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel       range[1] = max
19654dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel       range[2] = default
19754dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel       range[3] = step
19854dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel    */
19954dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel    QCAMERA3_SATURATION_RANGE,
200295a0ca3b68291081f46052e545d5b0dec308710Thierry Strudel    QCAMERA3_SATURATION_END,
201295a0ca3b68291081f46052e545d5b0dec308710Thierry Strudel
202295a0ca3b68291081f46052e545d5b0dec308710Thierry Strudel    QCAMERA3_EXPOSURE_METER = QCAMERA3_EXPOSURE_METER_START,
20354dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel    /* Property Name:  org.codeaurora.qcamera3.exposure_metering.available_modes
20454dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel       Type: int32[7]
20554dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel       Description: Available exposure metering mode values
20654dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel       available_modes[0] = 0 (FRAME_AVERAGE)
20754dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel       available_modes[1] = 1 (CENTER_WEIGHTED)
20854dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel       available_modes[2] = 2 (SPOT_METERING)
20954dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel       available_modes[3] = 3 (SMART_METERING)
21054dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel       available_modes[4] = 4 (USER_METERING)
21154dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel       available_modes[5] = 5 (SPOT_METERING_ADV)
21254dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel       available_modes[6] = 6 (CENTER_WEIGHTED_ADV)
21354dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel    */
21454dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel    QCAMERA3_EXPOSURE_METER_AVAILABLE_MODES,
215295a0ca3b68291081f46052e545d5b0dec308710Thierry Strudel    QCAMERA3_EXPOSURE_METER_END,
216295a0ca3b68291081f46052e545d5b0dec308710Thierry Strudel
2173d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    QCAMERA3_USE_AV_TIMER = QCAMERA3_AV_TIMER_START,
2183d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    QCAMERA3_AV_TIMER_END,
2193d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
2203d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    QCAMERA3_SENSOR_DYNAMIC_BLACK_LEVEL_PATTERN = QCAMERA3_SENSOR_META_DATA_START,
2213d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    QCAMERA3_SENSOR_IS_MONO_ONLY,
2223d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    QCAMERA3_SENSOR_META_DATA_END,
2233d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
2243d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    QCAMERA3_DUALCAM_LINK_ENABLE = QCAMERA3_DUALCAM_LINK_META_DATA_START,
2253d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    QCAMERA3_DUALCAM_LINK_IS_MAIN,
2263d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    QCAMERA3_DUALCAM_LINK_RELATED_CAMERA_ID,
2273d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    QCAMERA3_DUALCAM_LINK_META_DATA_END,
2283d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
2293d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    QCAMERA3_DUALCAM_CALIB_META_DATA_BLOB = QCAMERA3_DUALCAM_CALIB_META_DATA_START,
2303d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    QCAMERA3_DUALCAM_CALIB_META_DATA_END,
2313d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
2323d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    QCAMERA3_HAL_PRIVATEDATA_REPROCESS_FLAGS = QCAMERA3_HAL_PRIVATEDATA_START,
233cca4d9c3be40fe18502f3237f7993b41175ef3a7Thierry Strudel    QCAMERA3_HAL_PRIVATEDATA_REPROCESS_DATA_BLOB,
23454dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel    QCAMERA3_HAL_PRIVATEDATA_EXIF_DEBUG_DATA_BLOB,
23554dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel
2363d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    QCAMERA3_HAL_PRIVATEDATA_END,
2373d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
2383d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    /* Property Name:  org.codeaurora.qcamera3.jpeg_encode_crop.enable
2393d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel       Type: byte
2403d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel       Description: If JPEG crop is enable
2413d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    */
2423d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    QCAMERA3_JPEG_ENCODE_CROP_ENABLE = QCAMERA3_JPEG_ENCODE_CROP_START,
2433d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    /* Property Name:  org.codeaurora.qcamera3.jpeg_encode_crop.rect
2443d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel       Type: int32[4]
2453d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel       Description: Crop image into size width x height
2463d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel                    from [left, top] coordinate
2473d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel       rect[0] = left
2483d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel       rect[1] = top
2493d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel       rect[2] = width
2503d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel       rect[3] = height
2513d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    */
2523d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    QCAMERA3_JPEG_ENCODE_CROP_RECT,
2533d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    /* Property Name:  org.codeaurora.qcamera3.jpeg_encode_crop.roi
2543d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel       Type: int32[4]
2553d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel       Description: Scale the crop image into size width x height
2563d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel                    from [left, top] coordinate.
2573d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel       roi[0] = left
2583d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel       roi[1] = top
2593d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel       roi[2] = width
2603d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel       roi[3] = height
2613d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    */
2623d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    QCAMERA3_JPEG_ENCODE_CROP_ROI,
26304e026fe14f98a83811cd3a2c04b60b3b501b80cThierry Strudel    QCAMERA3_JPEG_ENCODE_CROP_END,
26404e026fe14f98a83811cd3a2c04b60b3b501b80cThierry Strudel
26504e026fe14f98a83811cd3a2c04b60b3b501b80cThierry Strudel    QCAMERA3_VIDEO_HDR_MODE = QCAMERA3_VIDEO_HDR_START,
26604e026fe14f98a83811cd3a2c04b60b3b501b80cThierry Strudel    QCAMERA3_AVAILABLE_VIDEO_HDR_MODES,
26704e026fe14f98a83811cd3a2c04b60b3b501b80cThierry Strudel    QCAMERA3_VIDEO_HDR_END,
26804e026fe14f98a83811cd3a2c04b60b3b501b80cThierry Strudel
26904e026fe14f98a83811cd3a2c04b60b3b501b80cThierry Strudel    QCAMERA3_IR_MODE = QCAMERA3_IR_START,
27004e026fe14f98a83811cd3a2c04b60b3b501b80cThierry Strudel    QCAMERA3_IR_AVAILABLE_MODES,
271269c81ab7298bf38a22ab4376cf97297c0902b7eThierry Strudel    QCAMERA3_IR_END,
272269c81ab7298bf38a22ab4376cf97297c0902b7eThierry Strudel
273269c81ab7298bf38a22ab4376cf97297c0902b7eThierry Strudel    QCAMERA3_AEC_CONVERGENCE_SPEED = QCAMERA3_AEC_CONVERGENCE_SPEED_START,
274269c81ab7298bf38a22ab4376cf97297c0902b7eThierry Strudel    QCAMERA3_AEC_CONVERGENCE_SPEED_END,
275269c81ab7298bf38a22ab4376cf97297c0902b7eThierry Strudel
276269c81ab7298bf38a22ab4376cf97297c0902b7eThierry Strudel    QCAMERA3_AWB_CONVERGENCE_SPEED = QCAMERA3_AWB_CONVERGENCE_SPEED_START,
277295a0ca3b68291081f46052e545d5b0dec308710Thierry Strudel    QCAMERA3_AWB_CONVERGENCE_SPEED_END,
278295a0ca3b68291081f46052e545d5b0dec308710Thierry Strudel
279295a0ca3b68291081f46052e545d5b0dec308710Thierry Strudel    QCAMERA3_INSTANT_AEC_MODE = QCAMERA3_INSTANT_AEC_START,
280295a0ca3b68291081f46052e545d5b0dec308710Thierry Strudel    QCAMERA3_INSTANT_AEC_AVAILABLE_MODES,
28119463d7065fea3ccc0728e4113a9a7e297505dadShuzhen Wang    QCAMERA3_INSTANT_AEC_END,
28219463d7065fea3ccc0728e4113a9a7e297505dadShuzhen Wang
28319463d7065fea3ccc0728e4113a9a7e297505dadShuzhen Wang    NEXUS_EXPERIMENTAL_2016_HYBRID_AE_ENABLE = NEXUS_EXPERIMENTAL_2016_START,
284e763e80a8b01c0f494b9eb36e5f68925af2ba104Shuzhen Wang    NEXUS_EXPERIMENTAL_2016_AF_SCENE_CHANGE,
28568ba5179c1049e7451c4c1f19aed4927ac3da437Samuel Ha    // DEVCAMDEBUG
28668ba5179c1049e7451c4c1f19aed4927ac3da437Samuel Ha    DEVCAMDEBUG_META_ENABLE,
28768ba5179c1049e7451c4c1f19aed4927ac3da437Samuel Ha    // DEVCAMDEBUG AF
28868ba5179c1049e7451c4c1f19aed4927ac3da437Samuel Ha    DEVCAMDEBUG_AF_LENS_POSITION,
28968ba5179c1049e7451c4c1f19aed4927ac3da437Samuel Ha    DEVCAMDEBUG_AF_TOF_CONFIDENCE,
29068ba5179c1049e7451c4c1f19aed4927ac3da437Samuel Ha    DEVCAMDEBUG_AF_TOF_DISTANCE,
29168ba5179c1049e7451c4c1f19aed4927ac3da437Samuel Ha    DEVCAMDEBUG_AF_LUMA,
29268ba5179c1049e7451c4c1f19aed4927ac3da437Samuel Ha    DEVCAMDEBUG_AF_HAF_STATE,
29368ba5179c1049e7451c4c1f19aed4927ac3da437Samuel Ha    DEVCAMDEBUG_AF_MONITOR_PDAF_TARGET_POS,
29468ba5179c1049e7451c4c1f19aed4927ac3da437Samuel Ha    DEVCAMDEBUG_AF_MONITOR_PDAF_CONFIDENCE,
29568ba5179c1049e7451c4c1f19aed4927ac3da437Samuel Ha    DEVCAMDEBUG_AF_MONITOR_PDAF_REFOCUS,
29668ba5179c1049e7451c4c1f19aed4927ac3da437Samuel Ha    DEVCAMDEBUG_AF_MONITOR_TOF_TARGET_POS,
29768ba5179c1049e7451c4c1f19aed4927ac3da437Samuel Ha    DEVCAMDEBUG_AF_MONITOR_TOF_CONFIDENCE,
29868ba5179c1049e7451c4c1f19aed4927ac3da437Samuel Ha    DEVCAMDEBUG_AF_MONITOR_TOF_REFOCUS,
29968ba5179c1049e7451c4c1f19aed4927ac3da437Samuel Ha    DEVCAMDEBUG_AF_MONITOR_TYPE_SELECT,
30068ba5179c1049e7451c4c1f19aed4927ac3da437Samuel Ha    DEVCAMDEBUG_AF_MONITOR_REFOCUS,
30168ba5179c1049e7451c4c1f19aed4927ac3da437Samuel Ha    DEVCAMDEBUG_AF_MONITOR_TARGET_POS,
30268ba5179c1049e7451c4c1f19aed4927ac3da437Samuel Ha    DEVCAMDEBUG_AF_SEARCH_PDAF_TARGET_POS,
30368ba5179c1049e7451c4c1f19aed4927ac3da437Samuel Ha    DEVCAMDEBUG_AF_SEARCH_PDAF_NEXT_POS,
30468ba5179c1049e7451c4c1f19aed4927ac3da437Samuel Ha    DEVCAMDEBUG_AF_SEARCH_PDAF_NEAR_POS,
30568ba5179c1049e7451c4c1f19aed4927ac3da437Samuel Ha    DEVCAMDEBUG_AF_SEARCH_PDAF_FAR_POS,
30668ba5179c1049e7451c4c1f19aed4927ac3da437Samuel Ha    DEVCAMDEBUG_AF_SEARCH_PDAF_CONFIDENCE,
30768ba5179c1049e7451c4c1f19aed4927ac3da437Samuel Ha    DEVCAMDEBUG_AF_SEARCH_TOF_TARGET_POS,
30868ba5179c1049e7451c4c1f19aed4927ac3da437Samuel Ha    DEVCAMDEBUG_AF_SEARCH_TOF_NEXT_POS,
30968ba5179c1049e7451c4c1f19aed4927ac3da437Samuel Ha    DEVCAMDEBUG_AF_SEARCH_TOF_NEAR_POS,
31068ba5179c1049e7451c4c1f19aed4927ac3da437Samuel Ha    DEVCAMDEBUG_AF_SEARCH_TOF_FAR_POS,
31168ba5179c1049e7451c4c1f19aed4927ac3da437Samuel Ha    DEVCAMDEBUG_AF_SEARCH_TOF_CONFIDENCE,
31268ba5179c1049e7451c4c1f19aed4927ac3da437Samuel Ha    DEVCAMDEBUG_AF_SEARCH_TYPE_SELECT,
31368ba5179c1049e7451c4c1f19aed4927ac3da437Samuel Ha    DEVCAMDEBUG_AF_SEARCH_NEXT_POS,
31468ba5179c1049e7451c4c1f19aed4927ac3da437Samuel Ha    DEVCAMDEBUG_AF_SEARCH_TARGET_POS,
31568ba5179c1049e7451c4c1f19aed4927ac3da437Samuel Ha    // DEVCAMDEBUG AEC
31668ba5179c1049e7451c4c1f19aed4927ac3da437Samuel Ha    DEVCAMDEBUG_AEC_TARGET_LUMA,
31768ba5179c1049e7451c4c1f19aed4927ac3da437Samuel Ha    DEVCAMDEBUG_AEC_COMP_LUMA,
31868ba5179c1049e7451c4c1f19aed4927ac3da437Samuel Ha    DEVCAMDEBUG_AEC_AVG_LUMA,
31968ba5179c1049e7451c4c1f19aed4927ac3da437Samuel Ha    DEVCAMDEBUG_AEC_CUR_LUMA,
32068ba5179c1049e7451c4c1f19aed4927ac3da437Samuel Ha    DEVCAMDEBUG_AEC_LINECOUNT,
32168ba5179c1049e7451c4c1f19aed4927ac3da437Samuel Ha    DEVCAMDEBUG_AEC_REAL_GAIN,
32268ba5179c1049e7451c4c1f19aed4927ac3da437Samuel Ha    DEVCAMDEBUG_AEC_EXP_INDEX,
32368ba5179c1049e7451c4c1f19aed4927ac3da437Samuel Ha    DEVCAMDEBUG_AEC_LUX_IDX,
32434229981689f8f63f734a49bf124ee0d43da5671Samuel Ha    // DEVCAMDEBUG zzHDR
32534229981689f8f63f734a49bf124ee0d43da5671Samuel Ha    DEVCAMDEBUG_AEC_L_REAL_GAIN,
32634229981689f8f63f734a49bf124ee0d43da5671Samuel Ha    DEVCAMDEBUG_AEC_L_LINECOUNT,
32734229981689f8f63f734a49bf124ee0d43da5671Samuel Ha    DEVCAMDEBUG_AEC_S_REAL_GAIN,
32834229981689f8f63f734a49bf124ee0d43da5671Samuel Ha    DEVCAMDEBUG_AEC_S_LINECOUNT,
32934229981689f8f63f734a49bf124ee0d43da5671Samuel Ha    DEVCAMDEBUG_AEC_HDR_SENSITIVITY_RATIO,
33034229981689f8f63f734a49bf124ee0d43da5671Samuel Ha    DEVCAMDEBUG_AEC_HDR_EXP_TIME_RATIO,
33134229981689f8f63f734a49bf124ee0d43da5671Samuel Ha    // DEVCAMDEBUG ADRC
33234229981689f8f63f734a49bf124ee0d43da5671Samuel Ha    DEVCAMDEBUG_AEC_TOTAL_DRC_GAIN,
33334229981689f8f63f734a49bf124ee0d43da5671Samuel Ha    DEVCAMDEBUG_AEC_COLOR_DRC_GAIN,
33434229981689f8f63f734a49bf124ee0d43da5671Samuel Ha    DEVCAMDEBUG_AEC_GTM_RATIO,
33534229981689f8f63f734a49bf124ee0d43da5671Samuel Ha    DEVCAMDEBUG_AEC_LTM_RATIO,
33634229981689f8f63f734a49bf124ee0d43da5671Samuel Ha    DEVCAMDEBUG_AEC_LA_RATIO,
33734229981689f8f63f734a49bf124ee0d43da5671Samuel Ha    DEVCAMDEBUG_AEC_GAMMA_RATIO,
33868ba5179c1049e7451c4c1f19aed4927ac3da437Samuel Ha    // DEVCAMDEBUG AWB
33968ba5179c1049e7451c4c1f19aed4927ac3da437Samuel Ha    DEVCAMDEBUG_AWB_R_GAIN,
34068ba5179c1049e7451c4c1f19aed4927ac3da437Samuel Ha    DEVCAMDEBUG_AWB_G_GAIN,
34168ba5179c1049e7451c4c1f19aed4927ac3da437Samuel Ha    DEVCAMDEBUG_AWB_B_GAIN,
34268ba5179c1049e7451c4c1f19aed4927ac3da437Samuel Ha    DEVCAMDEBUG_AWB_CCT,
34368ba5179c1049e7451c4c1f19aed4927ac3da437Samuel Ha    DEVCAMDEBUG_AWB_DECISION,
34468ba5179c1049e7451c4c1f19aed4927ac3da437Samuel Ha    // DEVCAMDEBUG END
34519463d7065fea3ccc0728e4113a9a7e297505dadShuzhen Wang    NEXUS_EXPERIMENTAL_2016_END,
34654dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel
34754dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel    QCAMERA3_SHARPNESS_STRENGTH = QCAMERA3_SHARPNESS_START,
34854dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel    QCAMERA3_SHARPNESS_RANGE,
34954dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel    QCAMERA3_SHARPNESS_END,
35054dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel
35154dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel    QCAMERA3_HISTOGRAM_MODE = QCAMERA3_HISTOGRAM_START,
35254dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel    QCAMERA3_HISTOGRAM_BUCKETS,
35354dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel    QCAMERA3_HISTOGRAM_MAX_COUNT,
35454dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel    QCAMERA3_HISTOGRAM_STATS,
35554dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel    QCAMERA3_HISTOGRAM_END,
35654dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel
35754dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel    QCAMERA3_BINNING_CORRECTION_MODE = QCAMERA3_BINNING_CORRECTION_START,
35854dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel    QCAMERA3_AVAILABLE_BINNING_CORRECTION_MODES,
35954dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel    QCAMERA3_BINNING_CORRECTION_END,
36054dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel
36154dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel    QCAMERA3_STATS_IS_HDR_SCENE = QCAMERA3_STATS_START,
36254dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel    /* Property Name:  org.codeaurora.qcamera3.stats.is_hdr_scene_values
36354dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel       Type: byte[2]
36454dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel       Description: Possible values for is_hdr_scene
36554dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel       roi[0] = 0 (false)
36654dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel       roi[1] = 1 (true)
36754dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel    */
36854dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel    QCAMERA3_STATS_IS_HDR_SCENE_VALUES,
36954dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel    QCAMERA3_STATS_IS_HDR_SCENE_CONFIDENCE,
37054dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel    /* Property Name:  org.codeaurora.qcamera3.stats.is_hdr_scene_confidence_range
37154dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel       Type: float[2]
37254dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel       Description: Range of values for is_hdr_scene_confidence
37354dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel       roi[0] = 0.0 (min)
37454dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel       roi[1] = 1.0 (max)
37554dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel    */
37654dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel    QCAMERA3_STATS_IS_HDR_SCENE_CONFIDENCE_RANGE,
37754dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel    QCAMERA3_STATS_BSGC_AVAILABLE,
37854dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel    QCAMERA3_STATS_BLINK_DETECTED,
37954dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel    /* Property Name:  org.codeaurora.qcamera3.stats.blink_degree
38054dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel       Type: int8[2]
38154dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel       Description: Blink degree
38254dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel       blink_degree[0] = left
38354dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel       blink_degree[1] = right
38454dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel    */
38554dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel    QCAMERA3_STATS_BLINK_DEGREE,
38654dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel    QCAMERA3_STATS_SMILE_DEGREE,
38754dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel    QCAMERA3_STATS_SMILE_CONFIDENCE,
38854dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel    QCAMERA3_STATS_GAZE_ANGLE,
38954dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel    /* Property Name:  org.codeaurora.qcamera3.stats.gaze_direction
39054dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel       Type: int32[3]
39154dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel       Description: Gaze direction
39254dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel       gaze_direction[0] = up-down
39354dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel       gaze_direction[1] = left-right
39454dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel       gaze_direction[2] = roll
39554dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel    */
39654dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel    QCAMERA3_STATS_GAZE_DIRECTION,
39754dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel    /* Property Name:  org.codeaurora.qcamera3.stats.gaze_degree
39854dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel       Type: int8[2]
39954dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel       Description: Gaze degree
40054dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel       gaze_degree[0] = left-right
40154dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel       gaze_degree[1] = top-bottom
40254dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel    */
40354dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel    QCAMERA3_STATS_GAZE_DEGREE,
40454dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel    QCAMERA3_STATS_END
4053d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel};
4063d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
4073d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel// QCAMERA3_OPAQUE_RAW_FORMAT
4083d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudeltypedef enum qcamera3_ext_opaque_raw_format {
4093d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    QCAMERA3_OPAQUE_RAW_FORMAT_LEGACY,
4103d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    QCAMERA3_OPAQUE_RAW_FORMAT_MIPI
4113d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel} qcamera3_ext_opaque_raw_format_t;
4123d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
41304e026fe14f98a83811cd3a2c04b60b3b501b80cThierry Strudel
41404e026fe14f98a83811cd3a2c04b60b3b501b80cThierry Strudel// QCAMERA3_VIDEO_HDR_MODE
41504e026fe14f98a83811cd3a2c04b60b3b501b80cThierry Strudeltypedef enum camera_metadata_enum_android_video_hdr_mode {
41604e026fe14f98a83811cd3a2c04b60b3b501b80cThierry Strudel    QCAMERA3_VIDEO_HDR_MODE_OFF,
41704e026fe14f98a83811cd3a2c04b60b3b501b80cThierry Strudel    QCAMERA3_VIDEO_HDR_MODE_ON
41804e026fe14f98a83811cd3a2c04b60b3b501b80cThierry Strudel} camera_metadata_enum_android_video_hdr_mode_t;
41904e026fe14f98a83811cd3a2c04b60b3b501b80cThierry Strudel
42004e026fe14f98a83811cd3a2c04b60b3b501b80cThierry Strudel// QCAMERA3_IR_MODE
42104e026fe14f98a83811cd3a2c04b60b3b501b80cThierry Strudeltypedef enum camera_metadata_enum_android_ir_mode {
42204e026fe14f98a83811cd3a2c04b60b3b501b80cThierry Strudel    QCAMERA3_IR_MODE_OFF,
42304e026fe14f98a83811cd3a2c04b60b3b501b80cThierry Strudel    QCAMERA3_IR_MODE_ON,
42404e026fe14f98a83811cd3a2c04b60b3b501b80cThierry Strudel    QCAMERA3_IR_MODE_AUTO
42504e026fe14f98a83811cd3a2c04b60b3b501b80cThierry Strudel} camera_metadata_enum_android_ir_mode_t;
42604e026fe14f98a83811cd3a2c04b60b3b501b80cThierry Strudel
427295a0ca3b68291081f46052e545d5b0dec308710Thierry Strudel// QCAMERA3_INSTANCE_AEC_MODE
428295a0ca3b68291081f46052e545d5b0dec308710Thierry Strudeltypedef enum qcamera3_ext_instant_aec_mode {
429295a0ca3b68291081f46052e545d5b0dec308710Thierry Strudel    QCAMERA3_INSTANT_AEC_NORMAL_CONVERGENCE,
430295a0ca3b68291081f46052e545d5b0dec308710Thierry Strudel    QCAMERA3_INSTANT_AEC_AGGRESSIVE_CONVERGENCE,
431295a0ca3b68291081f46052e545d5b0dec308710Thierry Strudel    QCAMERA3_INSTANT_AEC_FAST_CONVERGENCE
432295a0ca3b68291081f46052e545d5b0dec308710Thierry Strudel} qcamera3_ext_instant_aec_mode_t;
433295a0ca3b68291081f46052e545d5b0dec308710Thierry Strudel
43454dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel// QCAMERA3_HISTOGRAM_MODE
43554dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudeltypedef enum qcamera3_histogram_mode {
43654dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel    QCAMERA3_HISTOGRAM_MODE_OFF,
43754dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel    QCAMERA3_HISTOGRAM_MODE_ON
43854dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel} histogram_mode;
43954dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel
44054dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel// QCAMERA3_BINNING_CORRECTION_MODE
44154dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudeltypedef enum camera_metadata_enum_android_binning_correction_mode {
44254dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel    QCAMERA3_BINNING_CORRECTION_MODE_OFF,
44354dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel    QCAMERA3_BINNING_CORRECTION_MODE_ON
44454dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel} camera_metadata_enum_android_binning_correction_mode_t;
44554dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel
44654dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel// QCAMERA3_EXPOSURE_METER
44754dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudeltypedef enum qcamera3_ext_exposure_meter_mode {
44854dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel    QCAMERA3_EXP_METER_MODE_FRAME_AVERAGE,
44954dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel    QCAMERA3_EXP_METER_MODE_CENTER_WEIGHTED,
45054dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel    QCAMERA3_EXP_METER_MODE_SPOT_METERING,
45154dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel    QCAMERA3_EXP_METER_MODE_SMART_METERING,
45254dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel    QCAMERA3_EXP_METER_MODE_USER_METERING,
45354dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel    QCAMERA3_EXP_METER_MODE_SPOT_METERING_ADV,
45454dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel    QCAMERA3_EXP_METER_MODE_CENTER_WEIGHTED_ADV
45554dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel} qcamera3_ext_exposure_meter_mode_t;
45654dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel
45754dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel// QCAMERA3_ISO_EXP_PRIORITY
45854dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudeltypedef enum qcamera3_ext_iso_mode {
45954dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel    QCAMERA3_ISO_MODE_AUTO,
46054dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel    QCAMERA3_ISO_MODE_DEBLUR,
46154dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel    QCAMERA3_ISO_MODE_100,
46254dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel    QCAMERA3_ISO_MODE_200,
46354dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel    QCAMERA3_ISO_MODE_400,
46454dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel    QCAMERA3_ISO_MODE_800,
46554dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel    QCAMERA3_ISO_MODE_1600,
46654dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel    QCAMERA3_ISO_MODE_3200,
46754dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel} qcamera3_ext_iso_mode_t;
46854dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel
4692896d129511c499aef15b8162df05fa299860f59Thierry Strudeltypedef enum {
4702896d129511c499aef15b8162df05fa299860f59Thierry Strudel    /* RAW only mode for devices that will simultaneously use more than two
4712896d129511c499aef15b8162df05fa299860f59Thierry Strudel     * cameras. This is required because by default the HAL will start support
4722896d129511c499aef15b8162df05fa299860f59Thierry Strudel     * stream along with RAW stream. This will allocate resources which
4732896d129511c499aef15b8162df05fa299860f59Thierry Strudel     * otherwise can be used for another camera. Using this mode indicates HAL
4742896d129511c499aef15b8162df05fa299860f59Thierry Strudel     * that the additional functionality provided by support stream is not
4752896d129511c499aef15b8162df05fa299860f59Thierry Strudel     * needed.
4762896d129511c499aef15b8162df05fa299860f59Thierry Strudel     * This mode has following limitations:
4772896d129511c499aef15b8162df05fa299860f59Thierry Strudel     *    - Back end 3A, Face Detect or any additional functionality depending
4782896d129511c499aef15b8162df05fa299860f59Thierry Strudel     *   on image/sensor statistics and YUV streams will be disabled.
4792896d129511c499aef15b8162df05fa299860f59Thierry Strudel     */
4802896d129511c499aef15b8162df05fa299860f59Thierry Strudel    QCAMERA3_VENDOR_STREAM_CONFIGURATION_RAW_ONLY_MODE = 0x8000,
4812896d129511c499aef15b8162df05fa299860f59Thierry Strudel} QCamera3VendorStreamConfiguration;
4822896d129511c499aef15b8162df05fa299860f59Thierry Strudel
4833d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudelclass QCamera3VendorTags {
4843d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
4853d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudelpublic:
4863d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static void get_vendor_tag_ops(vendor_tag_ops_t* ops);
4873d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static int get_tag_count(
4883d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel            const vendor_tag_ops_t *ops);
4893d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static void get_all_tags(
4903d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel            const vendor_tag_ops_t *ops,
4913d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel            uint32_t *tag_array);
4923d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char* get_section_name(
4933d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel            const vendor_tag_ops_t *ops,
4943d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel            uint32_t tag);
4953d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char* get_tag_name(
4963d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel            const vendor_tag_ops_t *ops,
4973d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel            uint32_t tag);
4983d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static int get_tag_type(
4993d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel            const vendor_tag_ops_t *ops,
5003d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel            uint32_t tag);
5013d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
5023d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const vendor_tag_ops_t *Ops;
5033d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel};
5043d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
5053d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel}; // namespace qcamera
5063d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
5073d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel#endif /* __QCAMERA3VENDORTAGS_H__ */
508