166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin/* Copyright (c) 2012-2016, The Linux Foundation. All rights reserved. 266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * 366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * Redistribution and use in source and binary forms, with or without 466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * modification, are permitted provided that the following conditions are 566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * met: 666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * * Redistributions of source code must retain the above copyright 766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * notice, this list of conditions and the following disclaimer. 866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * * Redistributions in binary form must reproduce the above 966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * copyright notice, this list of conditions and the following 1066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * disclaimer in the documentation and/or other materials provided 1166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * with the distribution. 1266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * * Neither the name of The Linux Foundation nor the names of its 1366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * contributors may be used to endorse or promote products derived 1466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * from this software without specific prior written permission. 1566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * 1666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED 1766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 1866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT 1966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS 2066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 2166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 2266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR 2366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 2466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE 2566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN 2666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 2766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * 2866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin */ 2966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 3066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#ifndef __QCAMERA_TYPES_H__ 3166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define __QCAMERA_TYPES_H__ 3266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 3366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin// System dependencies 3466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#include <stdint.h> 3566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#include <media/msmb_camera.h> 3666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 3766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define CAM_MAX_NUM_BUFS_PER_STREAM 64 3866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define MAX_METADATA_PRIVATE_PAYLOAD_SIZE_IN_BYTES 8096 3966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define AWB_DEBUG_DATA_SIZE (45000) 4066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define AEC_DEBUG_DATA_SIZE (5000) 4166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define AF_DEBUG_DATA_SIZE (10000) 4266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define AF_STATS_DEBUG_DATA_SIZE (40000) 4366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define ASD_DEBUG_DATA_SIZE (100) 4466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define STATS_BUFFER_DEBUG_DATA_SIZE (75000) 4566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 4666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define CEILING64(X) (((X) + 0x0003F) & 0xFFFFFFC0) 4766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define CEILING32(X) (((X) + 0x0001F) & 0xFFFFFFE0) 4866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define CEILING16(X) (((X) + 0x000F) & 0xFFF0) 4966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define CEILING4(X) (((X) + 0x0003) & 0xFFFC) 5066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define CEILING2(X) (((X) + 0x0001) & 0xFFFE) 5166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 5266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define MAX_ZOOMS_CNT 91 5366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define MAX_SIZES_CNT 40 5466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define MAX_EXP_BRACKETING_LENGTH 32 5566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define MAX_ROI 10 5666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define MAX_STREAM_NUM_IN_BUNDLE 8 5766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define MAX_NUM_STREAMS 8 5866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define CHROMATIX_SIZE 60000 5966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define COMMONCHROMATIX_SIZE 45000 6066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define CPPCHROMATIX_SIZE 36000 6166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define SWPOSTPROCCHROMATIX_SIZE 36000 6266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define AFTUNE_SIZE 32768 6366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define A3CHROMATIX_SIZE 30000 6466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define MAX_SCALE_SIZES_CNT 8 6566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define MAX_SAMP_DECISION_CNT 64 6666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define SENSOR_PHYSICAL_SIZE_CNT 2 6766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define EXPOSURE_TIME_RANGE_CNT 2 6866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define BLACK_LEVEL_PATTERN_CNT 4 6966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define FORWARD_MATRIX_COLS 3 7066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define FORWARD_MATRIX_ROWS 3 7166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define COLOR_TRANSFORM_COLS 3 7266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define COLOR_TRANSFORM_ROWS 3 7366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define CAL_TRANSFORM_COLS 3 7466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define CAL_TRANSFORM_ROWS 3 7566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 7666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define MAX_ISP_DATA_SIZE (20*1024) 7766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define MAX_PP_DATA_SIZE 16384 7866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define MAX_AE_STATS_DATA_SIZE 1000 7966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define MAX_AWB_STATS_DATA_SIZE 1000 8066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define MAX_AF_STATS_DATA_SIZE 1000 8166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define MAX_ASD_STATS_DATA_SIZE 1000 8266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 8366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define MAX_CAPTURE_BATCH_NUM 32 8466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 85d59d4ae1e81b3b4f85c59b75636580830b3f0833Steve Pfetsch#define TUNING_DATA_VERSION 6 8666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define TUNING_SENSOR_DATA_MAX 0x10000 /*(need value from sensor team)*/ 8766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define TUNING_VFE_DATA_MAX 0x10000 /*(need value from vfe team)*/ 8866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define TUNING_CPP_DATA_MAX 0x10000 /*(need value from pproc team)*/ 8966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define TUNING_CAC_DATA_MAX 0x10000 /*(need value from imglib team)*/ 9066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define TUNING_DATA_MAX (TUNING_SENSOR_DATA_MAX + \ 9166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin TUNING_VFE_DATA_MAX + TUNING_CPP_DATA_MAX + \ 9266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin TUNING_CAC_DATA_MAX) 9366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 9466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define TUNING_SENSOR_DATA_OFFSET 0 9566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define TUNING_VFE_DATA_OFFSET TUNING_SENSOR_DATA_MAX 9666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define TUNING_CPP_DATA_OFFSET (TUNING_SENSOR_DATA_MAX + TUNING_VFE_DATA_MAX) 9766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define TUNING_CAC_DATA_OFFSET (TUNING_SENSOR_DATA_MAX + \ 9866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin TUNING_VFE_DATA_MAX + TUNING_CPP_DATA_MAX) 9966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define MAX_STATS_DATA_SIZE 4000 10066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 10166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define MAX_AF_BRACKETING_VALUES 5 10266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define MAX_TEST_PATTERN_CNT 8 10366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 10466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define GPS_PROCESSING_METHOD_SIZE 33 10566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define EXIF_IMAGE_DESCRIPTION_SIZE 100 10666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 10766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define MAX_INFLIGHT_REQUESTS 6 10866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define MAX_INFLIGHT_BLOB 3 10966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define MIN_INFLIGHT_REQUESTS 3 11066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define MAX_INFLIGHT_REPROCESS_REQUESTS 1 11166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define MAX_INFLIGHT_HFR_REQUESTS (48) 11266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define MIN_INFLIGHT_HFR_REQUESTS (40) 11366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 11466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define QCAMERA_DUMP_FRM_LOCATION "/data/misc/camera/" 11566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define QCAMERA_MAX_FILEPATH_LENGTH 64 11666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 11766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define LIKELY(x) __builtin_expect((x), true) 11866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define UNLIKELY(x) __builtin_expect((x), false) 11966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 12066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define RELCAM_CALIB_ROT_MATRIX_MAX 9 12166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define RELCAM_CALIB_SURFACE_PARMS_MAX 32 12266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define RELCAM_CALIB_RESERVED_MAX 62 12366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 12466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define MAX_NUM_CAMERA_PER_BUNDLE 2 /* Max number of cameras per bundle */ 12566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define EXTRA_FRAME_SYNC_BUFFERS 4 /* Extra frame sync buffers in dc mode*/ 12666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define MM_CAMERA_FRAME_SYNC_NODES EXTRA_FRAME_SYNC_BUFFERS 12766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 12866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define MAX_REPROCESS_STALL 2 12966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 13066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define QCAMERA_MAX_FILEPATH_LENGTH 64 13166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 13266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define MAX_EEPROM_VERSION_INFO_LEN 32 13366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 13466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define MAX_OPTICAL_BLACK_REGIONS 5 13566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 13666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin/*reprocess pipeline stages are pproc and jpeg */ 13766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define MAX_REPROCESS_PIPELINE_STAGES 2 13866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 1391687b440bcda598006d1950f74915f0cea3b66a3Mekala Natarajan/* Defines the number of rows in the color correction matrix (CCM) */ 1401687b440bcda598006d1950f74915f0cea3b66a3Mekala Natarajan#define AWB_NUM_CCM_ROWS (3) 1411687b440bcda598006d1950f74915f0cea3b66a3Mekala Natarajan 1421687b440bcda598006d1950f74915f0cea3b66a3Mekala Natarajan/* Defines the number of columns in the color correction matrix (CCM) */ 1431687b440bcda598006d1950f74915f0cea3b66a3Mekala Natarajan#define AWB_NUM_CCM_COLS (3) 1441687b440bcda598006d1950f74915f0cea3b66a3Mekala Natarajan 14566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef enum { 14666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_HAL_V1 = 1, 14766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_HAL_V3 = 3 14866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_hal_version_t; 14966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 15066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef enum { 15166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_STATUS_SUCCESS, /* Operation Succeded */ 15266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_STATUS_FAILED, /* Failure in doing operation */ 15366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_STATUS_INVALID_PARM, /* Inavlid parameter provided */ 15466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_STATUS_NOT_SUPPORTED, /* Parameter/operation not supported */ 15566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_STATUS_ACCEPTED, /* Parameter accepted */ 15666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_STATUS_MAX, 15766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_status_t; 15866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 15966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef enum { 16066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* back main camera */ 16166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_POSITION_BACK, 16266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* front main camera */ 16366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_POSITION_FRONT, 16466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* back aux camera */ 16566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_POSITION_BACK_AUX, 16666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* front aux camera */ 16766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_POSITION_FRONT_AUX 16866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_position_t; 16966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 17066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef enum { 17166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FLICKER_NONE, 17266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FLICKER_50_HZ, 17366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FLICKER_60_HZ 17466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_flicker_t; 17566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 17666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef enum { 17766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FORMAT_JPEG = 0, 17866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FORMAT_YUV_420_NV12 = 1, 17966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FORMAT_YUV_420_NV21, 18066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FORMAT_YUV_420_NV21_ADRENO, 18166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FORMAT_YUV_420_YV12, 18266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FORMAT_YUV_422_NV16, 18366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FORMAT_YUV_422_NV61, 18466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FORMAT_YUV_420_NV12_VENUS, 18566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* Note: For all raw formats, each scanline needs to be 16 bytes aligned */ 18666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 18766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* Packed YUV/YVU raw format, 16 bpp: 8 bits Y and 8 bits UV. 18866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * U and V are interleaved with Y: YUYV or YVYV */ 18966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FORMAT_YUV_RAW_8BIT_YUYV, 19066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FORMAT_YUV_RAW_8BIT_YVYU, 1911687b440bcda598006d1950f74915f0cea3b66a3Mekala Natarajan CAM_FORMAT_YUV_RAW_8BIT_UYVY, //10 19266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FORMAT_YUV_RAW_8BIT_VYUY, 19366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 19466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* QCOM RAW formats where data is packed into 64bit word. 19566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * 8BPP: 1 64-bit word contains 8 pixels p0 - p7, where p0 is 19666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * stored at LSB. 19766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * 10BPP: 1 64-bit word contains 6 pixels p0 - p5, where most 19866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * significant 4 bits are set to 0. P0 is stored at LSB. 19966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * 12BPP: 1 64-bit word contains 5 pixels p0 - p4, where most 20066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * significant 4 bits are set to 0. P0 is stored at LSB. */ 20166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FORMAT_BAYER_QCOM_RAW_8BPP_GBRG, 20266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FORMAT_BAYER_QCOM_RAW_8BPP_GRBG, 20366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FORMAT_BAYER_QCOM_RAW_8BPP_RGGB, 20466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FORMAT_BAYER_QCOM_RAW_8BPP_BGGR, 20566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FORMAT_BAYER_QCOM_RAW_10BPP_GBRG, 20666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FORMAT_BAYER_QCOM_RAW_10BPP_GRBG, 20766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FORMAT_BAYER_QCOM_RAW_10BPP_RGGB, 20866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FORMAT_BAYER_QCOM_RAW_10BPP_BGGR, 2091687b440bcda598006d1950f74915f0cea3b66a3Mekala Natarajan CAM_FORMAT_BAYER_QCOM_RAW_12BPP_GBRG, //20 21066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FORMAT_BAYER_QCOM_RAW_12BPP_GRBG, 21166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FORMAT_BAYER_QCOM_RAW_12BPP_RGGB, 21266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FORMAT_BAYER_QCOM_RAW_12BPP_BGGR, 21366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* MIPI RAW formats based on MIPI CSI-2 specifiction. 21466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * 8BPP: Each pixel occupies one bytes, starting at LSB. 21566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * Output with of image has no restrictons. 21666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * 10BPP: Four pixels are held in every 5 bytes. The output 21766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * with of image must be a multiple of 4 pixels. 21866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * 12BPP: Two pixels are held in every 3 bytes. The output 21966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * width of image must be a multiple of 2 pixels. */ 22066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FORMAT_BAYER_MIPI_RAW_8BPP_GBRG, 22166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FORMAT_BAYER_MIPI_RAW_8BPP_GRBG, 22266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FORMAT_BAYER_MIPI_RAW_8BPP_RGGB, 22366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FORMAT_BAYER_MIPI_RAW_8BPP_BGGR, 22466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FORMAT_BAYER_MIPI_RAW_10BPP_GBRG, 22566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FORMAT_BAYER_MIPI_RAW_10BPP_GRBG, 2261687b440bcda598006d1950f74915f0cea3b66a3Mekala Natarajan CAM_FORMAT_BAYER_MIPI_RAW_10BPP_RGGB, //30 22766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FORMAT_BAYER_MIPI_RAW_10BPP_BGGR, 22866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FORMAT_BAYER_MIPI_RAW_12BPP_GBRG, 22966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FORMAT_BAYER_MIPI_RAW_12BPP_GRBG, 23066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FORMAT_BAYER_MIPI_RAW_12BPP_RGGB, 23166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FORMAT_BAYER_MIPI_RAW_12BPP_BGGR, 23266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* Ideal raw formats where image data has gone through black 23366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * correction, lens rolloff, demux/channel gain, bad pixel 23466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * correction, and ABF. 23566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * Ideal raw formats could output any of QCOM_RAW and MIPI_RAW 23666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * formats, plus plain8 8bbp, plain16 800, plain16 10bpp, and 23766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * plain 16 12bpp */ 23866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FORMAT_BAYER_IDEAL_RAW_QCOM_8BPP_GBRG, 23966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FORMAT_BAYER_IDEAL_RAW_QCOM_8BPP_GRBG, 24066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FORMAT_BAYER_IDEAL_RAW_QCOM_8BPP_RGGB, 24166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FORMAT_BAYER_IDEAL_RAW_QCOM_8BPP_BGGR, 2421687b440bcda598006d1950f74915f0cea3b66a3Mekala Natarajan CAM_FORMAT_BAYER_IDEAL_RAW_QCOM_10BPP_GBRG, //40 24366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FORMAT_BAYER_IDEAL_RAW_QCOM_10BPP_GRBG, 24466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FORMAT_BAYER_IDEAL_RAW_QCOM_10BPP_RGGB, 24566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FORMAT_BAYER_IDEAL_RAW_QCOM_10BPP_BGGR, 24666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FORMAT_BAYER_IDEAL_RAW_QCOM_12BPP_GBRG, 24766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FORMAT_BAYER_IDEAL_RAW_QCOM_12BPP_GRBG, 24866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FORMAT_BAYER_IDEAL_RAW_QCOM_12BPP_RGGB, 24966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FORMAT_BAYER_IDEAL_RAW_QCOM_12BPP_BGGR, 25066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FORMAT_BAYER_IDEAL_RAW_MIPI_8BPP_GBRG, 25166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FORMAT_BAYER_IDEAL_RAW_MIPI_8BPP_GRBG, 2521687b440bcda598006d1950f74915f0cea3b66a3Mekala Natarajan CAM_FORMAT_BAYER_IDEAL_RAW_MIPI_8BPP_RGGB, //50 25366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FORMAT_BAYER_IDEAL_RAW_MIPI_8BPP_BGGR, 25466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FORMAT_BAYER_IDEAL_RAW_MIPI_10BPP_GBRG, 25566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FORMAT_BAYER_IDEAL_RAW_MIPI_10BPP_GRBG, 25666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FORMAT_BAYER_IDEAL_RAW_MIPI_10BPP_RGGB, 25766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FORMAT_BAYER_IDEAL_RAW_MIPI_10BPP_BGGR, 25866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FORMAT_BAYER_IDEAL_RAW_MIPI_12BPP_GBRG, 25966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FORMAT_BAYER_IDEAL_RAW_MIPI_12BPP_GRBG, 26066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FORMAT_BAYER_IDEAL_RAW_MIPI_12BPP_RGGB, 26166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FORMAT_BAYER_IDEAL_RAW_MIPI_12BPP_BGGR, 2621687b440bcda598006d1950f74915f0cea3b66a3Mekala Natarajan CAM_FORMAT_BAYER_IDEAL_RAW_PLAIN8_8BPP_GBRG, //60 26366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FORMAT_BAYER_IDEAL_RAW_PLAIN8_8BPP_GRBG, 26466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FORMAT_BAYER_IDEAL_RAW_PLAIN8_8BPP_RGGB, 26566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FORMAT_BAYER_IDEAL_RAW_PLAIN8_8BPP_BGGR, 26666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FORMAT_BAYER_IDEAL_RAW_PLAIN16_8BPP_GBRG, 26766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FORMAT_BAYER_IDEAL_RAW_PLAIN16_8BPP_GRBG, 26866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FORMAT_BAYER_IDEAL_RAW_PLAIN16_8BPP_RGGB, 26966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FORMAT_BAYER_IDEAL_RAW_PLAIN16_8BPP_BGGR, 27066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FORMAT_BAYER_IDEAL_RAW_PLAIN16_10BPP_GBRG, 27166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FORMAT_BAYER_IDEAL_RAW_PLAIN16_10BPP_GRBG, 2721687b440bcda598006d1950f74915f0cea3b66a3Mekala Natarajan CAM_FORMAT_BAYER_IDEAL_RAW_PLAIN16_10BPP_RGGB, //70 27366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FORMAT_BAYER_IDEAL_RAW_PLAIN16_10BPP_BGGR, 27466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FORMAT_BAYER_IDEAL_RAW_PLAIN16_12BPP_GBRG, 27566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FORMAT_BAYER_IDEAL_RAW_PLAIN16_12BPP_GRBG, 27666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FORMAT_BAYER_IDEAL_RAW_PLAIN16_12BPP_RGGB, 27766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FORMAT_BAYER_IDEAL_RAW_PLAIN16_12BPP_BGGR, 27866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 27966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* generic 8-bit raw */ 28066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FORMAT_JPEG_RAW_8BIT, 28166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FORMAT_META_RAW_8BIT, 28266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 28366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* QCOM RAW formats where data is packed into 64bit word. 28466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * 14BPP: 1 64-bit word contains 4 pixels p0 - p3, where most 28566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * significant 4 bits are set to 0. P0 is stored at LSB. 28666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin */ 28766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FORMAT_BAYER_QCOM_RAW_14BPP_GBRG, 28866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FORMAT_BAYER_QCOM_RAW_14BPP_GRBG, 2891687b440bcda598006d1950f74915f0cea3b66a3Mekala Natarajan CAM_FORMAT_BAYER_QCOM_RAW_14BPP_RGGB, //80 29066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FORMAT_BAYER_QCOM_RAW_14BPP_BGGR, 29166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* MIPI RAW formats based on MIPI CSI-2 specifiction. 29266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * 14 BPPP: 1st byte: P0 [13:6] 29366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * 2nd byte: P1 [13:6] 29466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * 3rd byte: P2 [13:6] 29566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * 4th byte: P3 [13:6] 29666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * 5th byte: P0 [5:0] 29766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * 7th byte: P1 [5:0] 29866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * 8th byte: P2 [5:0] 29966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * 9th byte: P3 [5:0] 30066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin */ 30166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FORMAT_BAYER_MIPI_RAW_14BPP_GBRG, 30266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FORMAT_BAYER_MIPI_RAW_14BPP_GRBG, 30366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FORMAT_BAYER_MIPI_RAW_14BPP_RGGB, 30466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FORMAT_BAYER_MIPI_RAW_14BPP_BGGR, 30566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FORMAT_BAYER_IDEAL_RAW_QCOM_14BPP_GBRG, 30666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FORMAT_BAYER_IDEAL_RAW_QCOM_14BPP_GRBG, 30766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FORMAT_BAYER_IDEAL_RAW_QCOM_14BPP_RGGB, 30866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FORMAT_BAYER_IDEAL_RAW_QCOM_14BPP_BGGR, 3091687b440bcda598006d1950f74915f0cea3b66a3Mekala Natarajan CAM_FORMAT_BAYER_IDEAL_RAW_MIPI_14BPP_GBRG, //90 31066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FORMAT_BAYER_IDEAL_RAW_MIPI_14BPP_GRBG, 31166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FORMAT_BAYER_IDEAL_RAW_MIPI_14BPP_RGGB, 31266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FORMAT_BAYER_IDEAL_RAW_MIPI_14BPP_BGGR, 31366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* 14BPP: 1st byte: P0 [8:0] 31466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * 2nd byte: P0 [13:9] 31566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * 3rd byte: P1 [8:0] 31666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * 4th byte: P1 [13:9] 31766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin */ 31866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FORMAT_BAYER_IDEAL_RAW_PLAIN16_14BPP_GBRG, 31966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FORMAT_BAYER_IDEAL_RAW_PLAIN16_14BPP_GRBG, 32066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FORMAT_BAYER_IDEAL_RAW_PLAIN16_14BPP_RGGB, 32166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FORMAT_BAYER_IDEAL_RAW_PLAIN16_14BPP_BGGR, 32266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 32366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FORMAT_YUV_444_NV24, 32466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FORMAT_YUV_444_NV42, 32566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 326d59d4ae1e81b3b4f85c59b75636580830b3f0833Steve Pfetsch /* Y plane only, used for FD, 8BPP */ 3271687b440bcda598006d1950f74915f0cea3b66a3Mekala Natarajan CAM_FORMAT_Y_ONLY, //100 32866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 32966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* UBWC format */ 33066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FORMAT_YUV_420_NV12_UBWC, 33166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 33266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FORMAT_YUV_420_NV21_VENUS, 33366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 33466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* RGB formats */ 33566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FORMAT_8888_ARGB, 33666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 337d59d4ae1e81b3b4f85c59b75636580830b3f0833Steve Pfetsch /* Y plane only */ 338d59d4ae1e81b3b4f85c59b75636580830b3f0833Steve Pfetsch CAM_FORMAT_Y_ONLY_10_BPP, 339d59d4ae1e81b3b4f85c59b75636580830b3f0833Steve Pfetsch CAM_FORMAT_Y_ONLY_12_BPP, 340d59d4ae1e81b3b4f85c59b75636580830b3f0833Steve Pfetsch CAM_FORMAT_Y_ONLY_14_BPP, 341d59d4ae1e81b3b4f85c59b75636580830b3f0833Steve Pfetsch CAM_FORMAT_BAYER_QCOM_RAW_8BPP_GREY, 342d59d4ae1e81b3b4f85c59b75636580830b3f0833Steve Pfetsch CAM_FORMAT_BAYER_QCOM_RAW_10BPP_GREY, 343d59d4ae1e81b3b4f85c59b75636580830b3f0833Steve Pfetsch CAM_FORMAT_BAYER_QCOM_RAW_12BPP_GREY, 344d59d4ae1e81b3b4f85c59b75636580830b3f0833Steve Pfetsch CAM_FORMAT_BAYER_QCOM_RAW_14BPP_GREY, 345d59d4ae1e81b3b4f85c59b75636580830b3f0833Steve Pfetsch CAM_FORMAT_BAYER_MIPI_RAW_8BPP_GREY, 346d59d4ae1e81b3b4f85c59b75636580830b3f0833Steve Pfetsch CAM_FORMAT_BAYER_MIPI_RAW_10BPP_GREY, 347d59d4ae1e81b3b4f85c59b75636580830b3f0833Steve Pfetsch CAM_FORMAT_BAYER_MIPI_RAW_12BPP_GREY, 348d59d4ae1e81b3b4f85c59b75636580830b3f0833Steve Pfetsch CAM_FORMAT_BAYER_MIPI_RAW_14BPP_GREY, 349d59d4ae1e81b3b4f85c59b75636580830b3f0833Steve Pfetsch CAM_FORMAT_BAYER_IDEAL_RAW_QCOM_8BPP_GREY, 350d59d4ae1e81b3b4f85c59b75636580830b3f0833Steve Pfetsch CAM_FORMAT_BAYER_IDEAL_RAW_QCOM_10BPP_GREY, 351d59d4ae1e81b3b4f85c59b75636580830b3f0833Steve Pfetsch CAM_FORMAT_BAYER_IDEAL_RAW_QCOM_12BPP_GREY, 352d59d4ae1e81b3b4f85c59b75636580830b3f0833Steve Pfetsch CAM_FORMAT_BAYER_IDEAL_RAW_QCOM_14BPP_GREY, 353d59d4ae1e81b3b4f85c59b75636580830b3f0833Steve Pfetsch CAM_FORMAT_BAYER_IDEAL_RAW_MIPI_8BPP_GREY, 354d59d4ae1e81b3b4f85c59b75636580830b3f0833Steve Pfetsch CAM_FORMAT_BAYER_IDEAL_RAW_MIPI_10BPP_GREY, 355d59d4ae1e81b3b4f85c59b75636580830b3f0833Steve Pfetsch CAM_FORMAT_BAYER_IDEAL_RAW_MIPI_12BPP_GREY, 356d59d4ae1e81b3b4f85c59b75636580830b3f0833Steve Pfetsch CAM_FORMAT_BAYER_IDEAL_RAW_MIPI_14BPP_GREY, 357d59d4ae1e81b3b4f85c59b75636580830b3f0833Steve Pfetsch 35866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FORMAT_MAX 35966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_format_t; 36066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 36166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef enum { 36266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_STREAM_TYPE_DEFAULT, /* default stream type */ 36366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_STREAM_TYPE_PREVIEW, /* preview */ 36466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_STREAM_TYPE_POSTVIEW, /* postview */ 36566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_STREAM_TYPE_SNAPSHOT, /* snapshot */ 36666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_STREAM_TYPE_VIDEO, /* video */ 36766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_STREAM_TYPE_CALLBACK, /* app requested callback */ 36866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_STREAM_TYPE_IMPL_DEFINED, /* opaque format: could be display, video enc, ZSL YUV */ 36966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_STREAM_TYPE_METADATA, /* meta data */ 37066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_STREAM_TYPE_RAW, /* raw dump from camif */ 37166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_STREAM_TYPE_OFFLINE_PROC, /* offline process */ 37266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_STREAM_TYPE_PARM, /* mct internal stream */ 37366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_STREAM_TYPE_ANALYSIS, /* analysis stream */ 37466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_STREAM_TYPE_MAX, 37566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_stream_type_t; 37666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 37766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef enum { 37866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_PAD_NONE = 1, 37966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_PAD_TO_2 = 2, 38066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_PAD_TO_4 = 4, 38166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_PAD_TO_WORD = CAM_PAD_TO_4, 38266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_PAD_TO_8 = 8, 38366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_PAD_TO_16 = 16, 38466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_PAD_TO_32 = 32, 38566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_PAD_TO_64 = 64, 38666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_PAD_TO_128 = 128, 38766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_PAD_TO_256 = 256, 38866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_PAD_TO_512 = 512, 38966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_PAD_TO_1K = 1024, 39066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_PAD_TO_2K = 2048, 39166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_PAD_TO_4K = 4096, 39266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_PAD_TO_8K = 8192 39366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_pad_format_t; 39466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 39566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef enum { 39666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* followings are per camera */ 39766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_MAPPING_BUF_TYPE_CAPABILITY, /* mapping camera capability buffer */ 39866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_MAPPING_BUF_TYPE_PARM_BUF, /* mapping parameters buffer */ 39966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* this buffer is needed for the payload to be sent with bundling related cameras cmd */ 40066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_MAPPING_BUF_TYPE_SYNC_RELATED_SENSORS_BUF, /* mapping sync buffer.*/ 40166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 40266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* followings are per stream */ 40366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_MAPPING_BUF_TYPE_STREAM_BUF, /* mapping stream buffers */ 40466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_MAPPING_BUF_TYPE_STREAM_INFO, /* mapping stream information buffer */ 40566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_MAPPING_BUF_TYPE_OFFLINE_INPUT_BUF, /* mapping offline process input buffer */ 40666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_MAPPING_BUF_TYPE_OFFLINE_META_BUF, /* mapping offline meta buffer */ 40766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_MAPPING_BUF_TYPE_MISC_BUF, /* mapping offline miscellaneous buffer */ 40866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_MAPPING_BUF_TYPE_STREAM_USER_BUF, /* mapping user ptr stream buffers */ 40966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_MAPPING_BUF_TYPE_MAX 41066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_mapping_buf_type; 41166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 41266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef enum { 41366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_STREAM_BUF_TYPE_MPLANE, /* Multiplanar Buffer type */ 41466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_STREAM_BUF_TYPE_USERPTR, /* User specific structure pointer*/ 41566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_STREAM_BUF_TYPE_MAX 41666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_stream_buf_type; 41766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 41866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct { 41966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_mapping_buf_type type; 42066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint32_t stream_id; /* stream id: valid if STREAM_BUF */ 42166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint32_t frame_idx; /* frame index: valid if type is STREAM_BUF */ 42266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin int32_t plane_idx; /* planner index. valid if type is STREAM_BUF. 42366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * -1 means all planners shanre the same fd; 42466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * otherwise, each planner has its own fd */ 42566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint32_t cookie; /* could be job_id(uint32_t) to identify mapping job */ 42666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin int32_t fd; /* origin fd */ 42766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin size_t size; /* size of the buffer */ 42866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_buf_map_type; 42966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 43066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct { 43166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint32_t length; 43266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_buf_map_type buf_maps[CAM_MAX_NUM_BUFS_PER_STREAM]; 43366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_buf_map_type_list; 43466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 43566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct { 43666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_mapping_buf_type type; 43766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint32_t stream_id; /* stream id: valid if STREAM_BUF */ 43866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint32_t frame_idx; /* frame index: valid if STREAM_BUF or HIST_BUF */ 43966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin int32_t plane_idx; /* planner index. valid if type is STREAM_BUF. 44066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * -1 means all planners shanre the same fd; 44166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * otherwise, each planner has its own fd */ 44266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint32_t cookie; /* could be job_id(uint32_t) to identify unmapping job */ 44366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_buf_unmap_type; 44466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 44566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct { 44666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint32_t length; 44766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_buf_unmap_type buf_unmaps[CAM_MAX_NUM_BUFS_PER_STREAM]; 44866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_buf_unmap_type_list; 44966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 45066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef enum { 45166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_MAPPING_TYPE_FD_MAPPING, 45266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_MAPPING_TYPE_FD_UNMAPPING, 45366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_MAPPING_TYPE_FD_BUNDLED_MAPPING, 45466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_MAPPING_TYPE_FD_BUNDLED_UNMAPPING, 45566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_MAPPING_TYPE_MAX 45666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_mapping_type; 45766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 45866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct { 45966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_mapping_type msg_type; 46066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin union { 46166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_buf_map_type buf_map; 46266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_buf_unmap_type buf_unmap; 46366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_buf_map_type_list buf_map_list; 46466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_buf_unmap_type_list buf_unmap_list; 46566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin } payload; 46666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_sock_packet_t; 46766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 46866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef enum { 46966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_MODE_2D = (1<<0), 47066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_MODE_3D = (1<<1) 47166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_mode_t; 47266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 47366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct { 47466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint32_t len; 47566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint32_t y_offset; 47666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint32_t cbcr_offset; 47766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_sp_len_offset_t; 47866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 47966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct{ 48066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint32_t len; 48166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint32_t offset; 48266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin int32_t offset_x; 48366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin int32_t offset_y; 48466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin int32_t stride; 48566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin int32_t stride_in_bytes; 48666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin int32_t scanline; 48766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin int32_t width; /* width without padding */ 48866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin int32_t height; /* height without padding */ 48966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin int32_t meta_stride; /*Meta stride*/ 49066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin int32_t meta_scanline; /*Meta Scanline*/ 49166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin int32_t meta_len; /*Meta plane length including 4k padding*/ 49266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_mp_len_offset_t; 49366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 49466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct { 49566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint32_t offset_x; 49666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint32_t offset_y; 49766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_offset_info_t; 49866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 49966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct { 50066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint32_t width_padding; 50166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint32_t height_padding; 50266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint32_t plane_padding; 50366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint32_t min_stride; 50466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint32_t min_scanline; 50566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_offset_info_t offset_info; 50666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_padding_info_t; 50766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 50866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct { 50966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint32_t num_planes; /*Number of planes in planar buffer*/ 51066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin union { 51166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_sp_len_offset_t sp; 51266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_mp_len_offset_t mp[VIDEO_MAX_PLANES]; 51366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin }; 51466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint32_t frame_len; 51566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_frame_len_offset_t; 51666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 51766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct { 51866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint8_t frame_buf_cnt; /*Total plane frames present in 1 batch*/ 51966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint32_t size; /*Size of 1 batch buffer. Kernel structure size*/ 52066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin long frameInterval; /*frame interval between each frame*/ 52166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_stream_user_buf_info_t; 52266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 52366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct { 52466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin int32_t width; 52566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin int32_t height; 52666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_dimension_t; 52766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 52866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct { 52966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_frame_len_offset_t plane_info; 53066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_stream_buf_plane_info_t; 53166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 53266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct { 53366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin float min_fps; 53466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin float max_fps; 53566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin float video_min_fps; 53666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin float video_max_fps; 53766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_fps_range_t; 53866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 53966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct { 54066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin int32_t min_sensitivity; 54166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin int32_t max_sensitivity; 54266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_sensitivity_range_t; 54366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 54466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef enum { 54566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_HFR_MODE_OFF, 54666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_HFR_MODE_60FPS, 54766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_HFR_MODE_90FPS, 54866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_HFR_MODE_120FPS, 54966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_HFR_MODE_150FPS, 55066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_HFR_MODE_180FPS, 55166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_HFR_MODE_210FPS, 55266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_HFR_MODE_240FPS, 55366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_HFR_MODE_480FPS, 55466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_HFR_MODE_MAX 55566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_hfr_mode_t; 55666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 55766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct { 55866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_hfr_mode_t mode; 55966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_dimension_t dim; 56066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint8_t frame_skip; 56166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint8_t livesnapshot_sizes_tbl_cnt; /* livesnapshot sizes table size */ 56266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_dimension_t livesnapshot_sizes_tbl[MAX_SIZES_CNT]; /* livesnapshot sizes table */ 56366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_hfr_info_t; 56466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 56566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef enum { 56666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_WB_MODE_AUTO, 56766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_WB_MODE_CUSTOM, 56866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_WB_MODE_INCANDESCENT, 56966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_WB_MODE_FLUORESCENT, 57066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_WB_MODE_WARM_FLUORESCENT, 57166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_WB_MODE_DAYLIGHT, 57266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_WB_MODE_CLOUDY_DAYLIGHT, 57366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_WB_MODE_TWILIGHT, 57466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_WB_MODE_SHADE, 57566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_WB_MODE_MANUAL, 57666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_WB_MODE_OFF, 57766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_WB_MODE_MAX 57866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_wb_mode_type; 57966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 58066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef enum { 58166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_ANTIBANDING_MODE_OFF, 58266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_ANTIBANDING_MODE_60HZ, 58366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_ANTIBANDING_MODE_50HZ, 58466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_ANTIBANDING_MODE_AUTO, 58566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_ANTIBANDING_MODE_AUTO_50HZ, 58666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_ANTIBANDING_MODE_AUTO_60HZ, 58766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_ANTIBANDING_MODE_MAX, 58866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_antibanding_mode_type; 58966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 59066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin/* Enum Type for different ISO Mode supported */ 59166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef enum { 59266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_ISO_MODE_AUTO, 59366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_ISO_MODE_DEBLUR, 59466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_ISO_MODE_100, 59566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_ISO_MODE_200, 59666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_ISO_MODE_400, 59766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_ISO_MODE_800, 59866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_ISO_MODE_1600, 59966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_ISO_MODE_3200, 60066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_ISO_MODE_MAX 60166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_iso_mode_type; 60266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 60366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef enum { 60466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_AEC_MODE_FRAME_AVERAGE, 60566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_AEC_MODE_CENTER_WEIGHTED, 60666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_AEC_MODE_SPOT_METERING, 60766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_AEC_MODE_SMART_METERING, 60866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_AEC_MODE_USER_METERING, 60966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_AEC_MODE_SPOT_METERING_ADV, 61066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_AEC_MODE_CENTER_WEIGHTED_ADV, 61166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_AEC_MODE_MAX 61266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_auto_exposure_mode_type; 61366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 614d59d4ae1e81b3b4f85c59b75636580830b3f0833Steve Pfetsch/* enum to select AEC convergence type */ 615d59d4ae1e81b3b4f85c59b75636580830b3f0833Steve Pfetschtypedef enum { 616d59d4ae1e81b3b4f85c59b75636580830b3f0833Steve Pfetsch /* Normal AEC connvergence */ 617d59d4ae1e81b3b4f85c59b75636580830b3f0833Steve Pfetsch CAM_AEC_NORMAL_CONVERGENCE = 0, 618d59d4ae1e81b3b4f85c59b75636580830b3f0833Steve Pfetsch /* Aggressive AEC connvergence */ 619d59d4ae1e81b3b4f85c59b75636580830b3f0833Steve Pfetsch CAM_AEC_AGGRESSIVE_CONVERGENCE, 620d59d4ae1e81b3b4f85c59b75636580830b3f0833Steve Pfetsch /* Fast AEC convergence */ 621d59d4ae1e81b3b4f85c59b75636580830b3f0833Steve Pfetsch CAM_AEC_FAST_CONVERGENCE, 622d59d4ae1e81b3b4f85c59b75636580830b3f0833Steve Pfetsch CAM_AEC_CONVERGENCE_MAX 623d59d4ae1e81b3b4f85c59b75636580830b3f0833Steve Pfetsch} cam_aec_convergence_type; 624d59d4ae1e81b3b4f85c59b75636580830b3f0833Steve Pfetsch 62566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef enum { 62666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_AE_MODE_OFF, 62766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_AE_MODE_ON, 62866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_AE_MODE_MAX 62966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_ae_mode_type; 63066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 63166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef enum { 63266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FOCUS_ALGO_AUTO, 63366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FOCUS_ALGO_SPOT, 63466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FOCUS_ALGO_CENTER_WEIGHTED, 63566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FOCUS_ALGO_AVERAGE, 63666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FOCUS_ALGO_MAX 63766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_focus_algorithm_type; 63866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 63966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin/* Auto focus mode */ 64066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef enum { 64166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FOCUS_MODE_OFF, 64266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FOCUS_MODE_AUTO, 64366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FOCUS_MODE_INFINITY, 64466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FOCUS_MODE_MACRO, 64566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FOCUS_MODE_FIXED, 64666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FOCUS_MODE_EDOF, 64766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FOCUS_MODE_CONTINOUS_VIDEO, 64866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FOCUS_MODE_CONTINOUS_PICTURE, 64966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FOCUS_MODE_MANUAL, 65066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FOCUS_MODE_MAX 65166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_focus_mode_type; 65266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 65366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef enum { 65466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_MANUAL_FOCUS_MODE_INDEX, 65566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_MANUAL_FOCUS_MODE_DAC_CODE, 65666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_MANUAL_FOCUS_MODE_RATIO, 65766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_MANUAL_FOCUS_MODE_DIOPTER, 65866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_MANUAL_FOCUS_MODE_MAX 65966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_manual_focus_mode_type; 66066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 66166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct { 66266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_manual_focus_mode_type flag; 66366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin union{ 66466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin int32_t af_manual_lens_position_index; 66566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin int32_t af_manual_lens_position_dac; 66666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin int32_t af_manual_lens_position_ratio; 66766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin float af_manual_diopter; 66866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin }; 66966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_manual_focus_parm_t; 67066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 67166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef enum { 67266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_MANUAL_WB_MODE_CCT, 67366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_MANUAL_WB_MODE_GAIN, 67466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_MANUAL_WB_MODE_MAX 67566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_manual_wb_mode_type; 67666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 67766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct { 67866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin float r_gain; 67966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin float g_gain; 68066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin float b_gain; 68166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_awb_gain_t; 68266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 68366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct { 68466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_manual_wb_mode_type type; 68566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin union{ 68666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin int32_t cct; 68766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_awb_gain_t gains; 68866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin }; 68966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_manual_wb_parm_t; 69066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 69166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef enum { 69266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_SCENE_MODE_OFF, 69366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_SCENE_MODE_AUTO, 69466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_SCENE_MODE_LANDSCAPE, 69566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_SCENE_MODE_SNOW, 69666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_SCENE_MODE_BEACH, 69766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_SCENE_MODE_SUNSET, 69866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_SCENE_MODE_NIGHT, 69966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_SCENE_MODE_PORTRAIT, 70066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_SCENE_MODE_BACKLIGHT, 70166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_SCENE_MODE_SPORTS, 70266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_SCENE_MODE_ANTISHAKE, 70366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_SCENE_MODE_FLOWERS, 70466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_SCENE_MODE_CANDLELIGHT, 70566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_SCENE_MODE_FIREWORKS, 70666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_SCENE_MODE_PARTY, 70766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_SCENE_MODE_NIGHT_PORTRAIT, 70866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_SCENE_MODE_THEATRE, 70966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_SCENE_MODE_ACTION, 71066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_SCENE_MODE_AR, 71166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_SCENE_MODE_FACE_PRIORITY, 71266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_SCENE_MODE_BARCODE, 71366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_SCENE_MODE_HDR, 71466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_SCENE_MODE_AQUA, 71566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_SCENE_MODE_MAX 71666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_scene_mode_type; 71766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 71866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef enum { 71966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_EFFECT_MODE_OFF, 72066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_EFFECT_MODE_MONO, 72166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_EFFECT_MODE_NEGATIVE, 72266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_EFFECT_MODE_SOLARIZE, 72366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_EFFECT_MODE_SEPIA, 72466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_EFFECT_MODE_POSTERIZE, 72566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_EFFECT_MODE_WHITEBOARD, 72666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_EFFECT_MODE_BLACKBOARD, 72766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_EFFECT_MODE_AQUA, 72866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_EFFECT_MODE_EMBOSS, 72966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_EFFECT_MODE_SKETCH, 73066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_EFFECT_MODE_NEON, 73166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_EFFECT_MODE_BEAUTY, 73266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_EFFECT_MODE_MAX 73366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_effect_mode_type; 73466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 73566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef enum { 73666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FLASH_MODE_OFF, 73766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FLASH_MODE_AUTO, 73866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FLASH_MODE_ON, 73966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FLASH_MODE_TORCH, 74066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FLASH_MODE_SINGLE, 74166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FLASH_MODE_MAX 74266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_flash_mode_t; 74366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 74466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin// Flash States 74566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef enum { 74666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FLASH_STATE_UNAVAILABLE, 74766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FLASH_STATE_CHARGING, 74866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FLASH_STATE_READY, 74966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FLASH_STATE_FIRED, 75066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FLASH_STATE_PARTIAL, 75166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FLASH_STATE_MAX 75266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_flash_state_t; 75366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 75466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef enum { 75566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FLASH_FIRING_LEVEL_0, 75666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FLASH_FIRING_LEVEL_1, 75766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FLASH_FIRING_LEVEL_2, 75866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FLASH_FIRING_LEVEL_3, 75966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FLASH_FIRING_LEVEL_4, 76066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FLASH_FIRING_LEVEL_5, 76166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FLASH_FIRING_LEVEL_6, 76266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FLASH_FIRING_LEVEL_7, 76366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FLASH_FIRING_LEVEL_8, 76466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FLASH_FIRING_LEVEL_9, 76566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FLASH_FIRING_LEVEL_10, 76666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FLASH_FIRING_LEVEL_MAX 76766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_flash_firing_level_t; 76866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 76966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 77066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef enum { 77166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_AEC_TRIGGER_IDLE, 77266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_AEC_TRIGGER_START 77366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_aec_trigger_type_t; 77466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 77566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef enum { 77666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_AF_TRIGGER_IDLE, 77766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_AF_TRIGGER_START, 77866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_AF_TRIGGER_CANCEL 77966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_af_trigger_type_t; 78066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 78166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef enum { 78266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_AE_STATE_INACTIVE, 78366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_AE_STATE_SEARCHING, 78466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_AE_STATE_CONVERGED, 78566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_AE_STATE_LOCKED, 78666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_AE_STATE_FLASH_REQUIRED, 78766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_AE_STATE_PRECAPTURE 78866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_ae_state_t; 78966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 79066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef enum { 79166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_NOISE_REDUCTION_MODE_OFF, 79266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_NOISE_REDUCTION_MODE_FAST, 79366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_NOISE_REDUCTION_MODE_HIGH_QUALITY, 79466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_NOISE_REDUCTION_MODE_MINIMAL, 79566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_NOISE_REDUCTION_MODE_ZERO_SHUTTER_LAG 79666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_noise_reduction_mode_t; 79766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 79866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef enum { 79966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_EDGE_MODE_OFF, 80066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_EDGE_MODE_FAST, 80166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_EDGE_MODE_HIGH_QUALITY, 80266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_EDGE_MODE_ZERO_SHUTTER_LAG, 80366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_edge_mode_t; 80466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 80566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct { 80666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint8_t edge_mode; 80766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin int32_t sharpness; 80866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_edge_application_t; 80966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 81066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef enum { 81166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_BLACK_LEVEL_LOCK_OFF, 81266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_BLACK_LEVEL_LOCK_ON, 81366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_black_level_lock_t; 81466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 81566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef enum { 81666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_HOTPIXEL_MODE_OFF, 81766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_HOTPIXEL_MODE_FAST, 81866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_HOTPIXEL_MODE_HIGH_QUALITY, 81966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_hotpixel_mode_t; 82066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 82166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef enum { 82266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_LENS_SHADING_MAP_MODE_OFF, 82366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_LENS_SHADING_MAP_MODE_ON, 82466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_lens_shading_map_mode_t; 82566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 82666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef enum { 82766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_LENS_SHADING_MODE_OFF, 82866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_LENS_SHADING_MODE_FAST, 82966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_LENS_SHADING_MODE_HIGH_QUALITY, 83066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_lens_shading_mode_t; 83166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 83266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef enum { 83366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FACE_DETECT_MODE_OFF, 83466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FACE_DETECT_MODE_SIMPLE, 83566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FACE_DETECT_MODE_FULL, 83666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_face_detect_mode_t; 83766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 83866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef enum { 83966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_TONEMAP_MODE_CONTRAST_CURVE, 84066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_TONEMAP_MODE_FAST, 84166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_TONEMAP_MODE_HIGH_QUALITY, 84266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_tonemap_mode_t; 84366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 84466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef enum { 84566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_CDS_MODE_OFF, 84666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_CDS_MODE_ON, 84766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_CDS_MODE_AUTO, 84866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_CDS_MODE_LOCK, 84966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_CDS_MODE_MAX 85066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_cds_mode_type_t; 85166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 85266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef enum { 85366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_SENSOR_HDR_OFF, 85466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_SENSOR_HDR_IN_SENSOR = 1, 85566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_SENSOR_HDR_ZIGZAG, 85666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_SENSOR_HDR_MAX, 85766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_sensor_hdr_type_t; 85866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 85966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct { 86066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin int32_t left; 86166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin int32_t top; 86266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin int32_t width; 86366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin int32_t height; 86466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_rect_t; 86566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 86666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct { 86766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_rect_t rect; 86866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin int32_t weight; /* weight of the area, valid for focusing/metering areas */ 86966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_area_t; 87066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 87166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef enum { 87266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_STREAMING_MODE_CONTINUOUS, /* continous streaming */ 87366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_STREAMING_MODE_BURST, /* burst streaming */ 87466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_STREAMING_MODE_BATCH, /* stream frames in batches */ 87566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_STREAMING_MODE_MAX 87666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_streaming_mode_t; 87766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 87866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef enum { 87966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin IS_TYPE_NONE, 88066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin IS_TYPE_DIS, 88166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin IS_TYPE_GA_DIS, 88266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin IS_TYPE_EIS_1_0, 88366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin IS_TYPE_EIS_2_0, 88466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin IS_TYPE_MAX 88566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_is_type_t; 88666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 88766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef enum { 88866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin DIS_DISABLE, 88966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin DIS_ENABLE 89066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_dis_mode_t; 89166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 89266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef enum { 89366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin NON_SECURE, 89466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin SECURE 89566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_stream_secure_t; 89666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 89766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define CAM_REPROCESS_MASK_TYPE_WNR (1<<0) 89866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 89966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin/* event from server */ 90066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef enum { 90166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_EVENT_TYPE_MAP_UNMAP_DONE = (1<<0), 90266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_EVENT_TYPE_AUTO_FOCUS_DONE = (1<<1), 90366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_EVENT_TYPE_ZOOM_DONE = (1<<2), 90466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_EVENT_TYPE_DAEMON_DIED = (1<<3), 90566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_EVENT_TYPE_INT_TAKE_JPEG = (1<<4), 90666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_EVENT_TYPE_INT_TAKE_RAW = (1<<5), 90766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_EVENT_TYPE_DAEMON_PULL_REQ = (1<<6), 90866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_EVENT_TYPE_CAC_DONE = (1<<7), 90966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_EVENT_TYPE_MAX 91066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_event_type_t; 91166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 91266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef enum { 91366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_EXP_BRACKETING_OFF, 91466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_EXP_BRACKETING_ON 91566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_bracket_mode; 91666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 91766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef enum { 91866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_LOW_LIGHT_OFF = 0, 91966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_LOW_LIGHT_ON, 92066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_low_light_mode_t; 92166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 92266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct { 92366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_bracket_mode mode; 92466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin char values[MAX_EXP_BRACKETING_LENGTH]; /* user defined values */ 92566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_exp_bracketing_t; 92666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 92766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct { 92866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint32_t num_frames; 92966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_exp_bracketing_t exp_val; 93066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_hdr_bracketing_info_t; 93166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 93266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin typedef struct { 93366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_bracket_mode mode; 93466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin int32_t values; /* user defined values */ 93566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_capture_bracketing_t; 93666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 93766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef enum { 93866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_SETTINGS_TYPE_OFF, 93966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_SETTINGS_TYPE_ON, 94066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_SETTINGS_TYPE_AUTO 94166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_manual_setting_mode; 94266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 94366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct { 94466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_manual_setting_mode exp_mode; 94566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin int64_t exp_time; 94666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_manual_setting_mode iso_mode; 94766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin int32_t iso_value; 94866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_capture_manual_3A_t; 94966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 95066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef enum { 95166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_CAPTURE_NORMAL, 95266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_CAPTURE_FLASH, 95366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_CAPTURE_BRACKETING, 95466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_CAPTURE_LOW_LIGHT, 95566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_CAPTURE_RESET, 95666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_CAPTURE_MANUAL_3A, 95766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_CAPTURE_MAX 95866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_capture_type; 95966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 96066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct { 96166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin int32_t num_frames; /*Num of frames requested on this quality*/ 96266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_capture_type type; /*type of the capture request*/ 96366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 96466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /*union to strore values of capture type*/ 96566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin union { 96666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_flash_mode_t flash_mode; 96766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_capture_bracketing_t hdr_mode; 96866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_low_light_mode_t low_light_mode; 96966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_capture_manual_3A_t manual_3A_mode; 97066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin }; 97166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_capture_settings_t; 97266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 97366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct { 97466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint32_t num_batch; /*Number of frames batch requested*/ 97566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_capture_settings_t configs[MAX_CAPTURE_BATCH_NUM]; 97666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_capture_frame_config_t; 97766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 97866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct { 97966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint8_t stepsize; 98066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint8_t direction; 98166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin int32_t num_steps; 98266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint8_t ttype; 98366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} tune_actuator_t; 98466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 98566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct { 98666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint8_t module; 98766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint8_t type; 98866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin int32_t value; 98966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} tune_cmd_t; 99066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 99166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef enum { 99266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_AEC_ROI_OFF, 99366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_AEC_ROI_ON 99466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_aec_roi_ctrl_t; 99566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 99666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef enum { 99766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_AEC_ROI_BY_INDEX, 99866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_AEC_ROI_BY_COORDINATE, 99966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_aec_roi_type_t; 100066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 100166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct { 100266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint32_t x; 100366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint32_t y; 100466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_coordinate_type_t; 100566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 100666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct { 100766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin int32_t numerator; 100866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin int32_t denominator; 100966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_rational_type_t; 101066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 101166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct { 101266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_aec_roi_ctrl_t aec_roi_enable; 101366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_aec_roi_type_t aec_roi_type; 101466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin union { 101566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_coordinate_type_t coordinate[MAX_ROI]; 101666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint32_t aec_roi_idx[MAX_ROI]; 101766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin } cam_aec_roi_position; 101866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_set_aec_roi_t; 101966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 102066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct { 102166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint32_t frm_id; 102266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint8_t num_roi; 102366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_rect_t roi[MAX_ROI]; 102466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin int32_t weight[MAX_ROI]; 102566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint8_t is_multiwindow; 102666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_roi_info_t; 102766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 102866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef enum { 102966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_WAVELET_DENOISE_YCBCR_PLANE, 103066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_WAVELET_DENOISE_CBCR_ONLY, 103166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_WAVELET_DENOISE_STREAMLINE_YCBCR, 103266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_WAVELET_DENOISE_STREAMLINED_CBCR 103366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_denoise_process_type_t; 103466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 103566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct { 103666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint8_t denoise_enable; 103766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_denoise_process_type_t process_plates; 103866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_denoise_param_t; 103966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 10401687b440bcda598006d1950f74915f0cea3b66a3Mekala Natarajan#define CAM_FACE_PROCESS_MASK_DETECTION (1U<<0) 10411687b440bcda598006d1950f74915f0cea3b66a3Mekala Natarajan#define CAM_FACE_PROCESS_MASK_RECOGNITION (1U<<1) 10421687b440bcda598006d1950f74915f0cea3b66a3Mekala Natarajan#define CAM_FACE_PROCESS_MASK_FOCUS (1U<<2) 10431687b440bcda598006d1950f74915f0cea3b66a3Mekala Natarajan#define CAM_FACE_PROCESS_MASK_BLINK (1U<<3) 10441687b440bcda598006d1950f74915f0cea3b66a3Mekala Natarajan#define CAM_FACE_PROCESS_MASK_SMILE (1U<<4) 10451687b440bcda598006d1950f74915f0cea3b66a3Mekala Natarajan#define CAM_FACE_PROCESS_MASK_GAZE (1U<<5) 104666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 104766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct { 104866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint32_t fd_mode; /* mask of face process */ 104966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint32_t num_fd; 105066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_fd_set_parm_t; 105166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 105266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef enum { 105366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin QCAMERA_FD_PREVIEW, 105466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin QCAMERA_FD_SNAPSHOT 105566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin}qcamera_face_detect_type_t; 105666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 105766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef enum { 105866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FACE_CT_POINT_EYE_L_PUPIL, 105966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FACE_CT_POINT_EYE_L_IN, 106066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FACE_CT_POINT_EYE_L_OUT, 106166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FACE_CT_POINT_EYE_L_UP, 106266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FACE_CT_POINT_EYE_L_DOWN, 106366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FACE_CT_POINT_EYE_R_PUPIL, 106466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FACE_CT_POINT_EYE_R_IN, 106566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FACE_CT_POINT_EYE_R_OUT, 106666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FACE_CT_POINT_EYE_R_UP, 106766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FACE_CT_POINT_EYE_R_DOWN, 106866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FACE_CT_POINT_EYE_MAX 106966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_face_ct_point_eye_t; 107066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 107166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef enum { 107266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FACE_CT_POINT_FOREHEAD, 107366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FACE_CT_POINT_FOREHEAD_MAX 107466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_face_ct_point_forh_t; 107566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 107666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef enum { 107766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FACE_CT_POINT_NOSE, 107866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FACE_CT_POINT_NOSE_TIP, 107966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FACE_CT_POINT_NOSE_L, 108066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FACE_CT_POINT_NOSE_R, 108166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FACE_CT_POINT_NOSE_L_0, 108266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FACE_CT_POINT_NOSE_R_0, 108366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FACE_CT_POINT_NOSE_L_1, 108466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FACE_CT_POINT_NOSE_R_1, 108566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FACE_CT_POINT_NOSE_MAX 108666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_face_ct_point_nose_t; 108766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 108866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef enum { 108966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FACE_CT_POINT_MOUTH_L, 109066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FACE_CT_POINT_MOUTH_R, 109166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FACE_CT_POINT_MOUTH_UP, 109266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FACE_CT_POINT_MOUTH_DOWN, 109366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FACE_CT_POINT_MOUTH_MAX 109466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_face_ct_point_mouth_t; 109566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 109666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef enum { 109766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FACE_CT_POINT_LIP_UP, 109866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FACE_CT_POINT_LIP_DOWN, 109966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FACE_CT_POINT_LIP_MAX 110066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_face_ct_point_lip_t; 110166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 110266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef enum { 110366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FACE_CT_POINT_BROW_L_UP, 110466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FACE_CT_POINT_BROW_L_DOWN, 110566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FACE_CT_POINT_BROW_L_IN, 110666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FACE_CT_POINT_BROW_L_OUT, 110766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FACE_CT_POINT_BROW_R_UP, 110866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FACE_CT_POINT_BROW_R_DOWN, 110966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FACE_CT_POINT_BROW_R_IN, 111066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FACE_CT_POINT_BROW_R_OUT, 111166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FACE_CT_POINT_BROW_MAX 111266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_face_ct_point_brow_t; 111366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 111466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef enum { 111566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FACE_CT_POINT_CHIN, 111666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FACE_CT_POINT_CHIN_L, 111766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FACE_CT_POINT_CHIN_R, 111866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FACE_CT_POINT_CHIN_MAX 111966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_face_ct_point_chin_t; 112066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 112166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef enum { 112266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FACE_CT_POINT_EAR_L_DOWN, 112366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FACE_CT_POINT_EAR_R_DOWN, 112466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FACE_CT_POINT_EAR_L_UP, 112566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FACE_CT_POINT_EAR_R_UP, 112666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FACE_CT_POINT_EAR_MAX 112766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_face_ct_point_ear_t; 112866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 112966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct { 113066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint8_t is_eye_valid; 113166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_coordinate_type_t contour_eye_pt[CAM_FACE_CT_POINT_EYE_MAX]; 113266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint8_t is_forehead_valid; 113366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_coordinate_type_t contour_forh_pt[CAM_FACE_CT_POINT_FOREHEAD_MAX]; 113466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint8_t is_nose_valid; 113566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_coordinate_type_t contour_nose_pt[CAM_FACE_CT_POINT_NOSE_MAX]; 113666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint8_t is_mouth_valid; 113766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_coordinate_type_t contour_mouth_pt[CAM_FACE_CT_POINT_MOUTH_MAX]; 113866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint8_t is_lip_valid; 113966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_coordinate_type_t contour_lip_pt[CAM_FACE_CT_POINT_LIP_MAX]; 114066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint8_t is_brow_valid; 114166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_coordinate_type_t contour_brow_pt[CAM_FACE_CT_POINT_BROW_MAX]; 114266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint8_t is_chin_valid; 114366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_coordinate_type_t contour_chin_pt[CAM_FACE_CT_POINT_CHIN_MAX]; 114466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint8_t is_ear_valid; 114566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_coordinate_type_t contour_ear_pt[CAM_FACE_CT_POINT_EAR_MAX]; 114666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_face_contour_info_t; 114766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 114866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct { 114966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_face_contour_info_t face_contour[MAX_ROI]; 115066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_face_contour_data_t; 115166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 115266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct { 115366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_coordinate_type_t left_eye_center; /* coordinate of center of left eye */ 115466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_coordinate_type_t right_eye_center; /* coordinate of center of right eye */ 115566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_coordinate_type_t mouth_center; /* coordinate of center of mouth */ 115666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_face_landmarks_info_t; 115766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 115866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct { 115966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_face_landmarks_info_t face_landmarks[MAX_ROI]; 116066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_face_landmarks_data_t; 116166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 116266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct { 116366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint8_t smile_degree; /* smile degree (0, -100) */ 116466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint8_t smile_confidence; /* smile confidence (0, 100) */ 116566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_face_smile_info_t; 116666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 116766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct { 116866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_face_smile_info_t smile[MAX_ROI]; 116966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_face_smile_data_t; 117066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 117166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct { 117266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin int8_t gaze_angle; /* -90 -45 0 45 90 for head left to rigth tilt */ 117366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin int32_t updown_dir; /* up down direction (-180, 179) */ 117466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin int32_t leftright_dir; /* left right direction (-180, 179) */ 117566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin int32_t roll_dir; /* roll direction (-180, 179) */ 117666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin int8_t left_right_gaze; /* left right gaze degree (-50, 50) */ 117766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin int8_t top_bottom_gaze; /* up down gaze degree (-50, 50) */ 117866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_face_gaze_info_t; 117966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 118066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct { 118166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_face_gaze_info_t gaze[MAX_ROI]; 118266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_face_gaze_data_t; 118366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 118466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct { 118566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint8_t blink_detected; /* if blink is detected */ 118666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint8_t left_blink; /* left eye blink degeree (0, -100) */ 118766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint8_t right_blink; /* right eye blink degree (0, - 100) */ 118866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_face_blink_info_t; 118966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 119066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct { 119166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_face_blink_info_t blink[MAX_ROI]; 119266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_face_blink_data_t; 119366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 119466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct { 119566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint8_t face_recognised; /* if face is recognised */ 119666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint32_t unique_id; /* if face is recognised */ 119766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_face_recog_info_t; 119866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 119966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct { 120066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_face_recog_info_t face_rec[MAX_ROI]; 120166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_face_recog_data_t; 120266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 120366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct { 120466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin int32_t face_id; /* unique id for face tracking within view unless view changes */ 120566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin int8_t score; /* score of confidence (0, -100) */ 120666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_rect_t face_boundary; /* boundary of face detected */ 120766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_face_detection_info_t; 120866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 120966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct { 121066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint32_t frame_id; /* frame index of which faces are detected */ 121166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint8_t num_faces_detected; /* number of faces detected */ 121266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_face_detection_info_t faces[MAX_ROI]; /* detailed information of faces detected */ 121366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin qcamera_face_detect_type_t fd_type; /* face detect for preview or snapshot frame*/ 121466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_dimension_t fd_frame_dim; /* frame dims on which fd is applied */ 121566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint8_t update_flag; /* flag to inform whether HAL needs to send cb 121666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * to app or not */ 121766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_face_detection_data_t; 121866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 121966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin// definition of composite face detection data 122066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct { 122166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_face_detection_data_t detection_data; 122266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 122366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin int8_t recog_valid; 122466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_face_recog_data_t recog_data; 122566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 122666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin int8_t blink_valid; 122766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_face_blink_data_t blink_data; 122866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 122966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin int8_t gaze_valid; 123066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_face_gaze_data_t gaze_data; 123166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 123266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin int8_t smile_valid; 123366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_face_smile_data_t smile_data; 123466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 123566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin int8_t landmark_valid; 123666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_face_landmarks_data_t landmark_data; 123766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 123866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin int8_t contour_valid; 123966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_face_contour_data_t contour_data; 124066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_faces_data_t; 124166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 124266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define CAM_HISTOGRAM_STATS_SIZE 256 124366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct { 124466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint32_t max_hist_value; 124566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint32_t hist_buf[CAM_HISTOGRAM_STATS_SIZE]; /* buf holding histogram stats data */ 124666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_histogram_data_t; 124766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 124866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct { 124966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_histogram_data_t r_stats; 125066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_histogram_data_t b_stats; 125166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_histogram_data_t gr_stats; 125266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_histogram_data_t gb_stats; 125366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_bayer_hist_stats_t; 125466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 125566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef enum { 125666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_HISTOGRAM_TYPE_BAYER, 125766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_HISTOGRAM_TYPE_YUV 125866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_histogram_type_t; 125966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 126066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct { 126166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_histogram_type_t type; 126266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin union { 126366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_bayer_hist_stats_t bayer_stats; 126466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_histogram_data_t yuv_stats; 126566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin }; 126666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_hist_stats_t; 126766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 126866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjinenum cam_focus_distance_index{ 126966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FOCUS_DISTANCE_NEAR_INDEX, /* 0 */ 127066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FOCUS_DISTANCE_OPTIMAL_INDEX, 127166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FOCUS_DISTANCE_FAR_INDEX, 127266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FOCUS_DISTANCE_MAX_INDEX 127366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin}; 127466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 127566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct { 127666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin float focus_distance[CAM_FOCUS_DISTANCE_MAX_INDEX]; 127766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_focus_distances_info_t; 127866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 127966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct { 128066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint32_t scale; 128166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin float diopter; 128266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_focus_pos_info_t ; 128366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 128466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct { 128566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin float focalLengthRatio; 128666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_focal_length_ratio_t; 128766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 12881687b440bcda598006d1950f74915f0cea3b66a3Mekala Natarajantypedef struct { 12891687b440bcda598006d1950f74915f0cea3b66a3Mekala Natarajan uint8_t needFlush; 12901687b440bcda598006d1950f74915f0cea3b66a3Mekala Natarajan uint32_t focused_frame_idx; 12911687b440bcda598006d1950f74915f0cea3b66a3Mekala Natarajan} cam_af_flush_info_t; 12921687b440bcda598006d1950f74915f0cea3b66a3Mekala Natarajan 129366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin/* Different autofocus cycle when calling do_autoFocus 129466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * CAM_AF_COMPLETE_EXISTING_SWEEP: Complete existing sweep 129566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * if one is ongoing, and lock. 129666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * CAM_AF_DO_ONE_FULL_SWEEP: Do one full sweep, regardless 129766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * of the current state, and lock. 129866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * CAM_AF_START_CONTINUOUS_SWEEP: Start continous sweep. 129966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * After do_autoFocus, HAL receives an event: CAM_AF_FOCUSED, 130066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * or CAM_AF_NOT_FOCUSED. 130166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * cancel_autoFocus stops any lens movement. 130266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * Each do_autoFocus call only produces 1 FOCUSED/NOT_FOCUSED 130366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * event, not both. 130466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin */ 130566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef enum { 130666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_AF_COMPLETE_EXISTING_SWEEP, 130766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_AF_DO_ONE_FULL_SWEEP, 130866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_AF_START_CONTINUOUS_SWEEP 130966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_autofocus_cycle_t; 131066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 131166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef enum { 131266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_AF_SCANNING, 131366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_AF_FOCUSED, 131466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_AF_NOT_FOCUSED, 131566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_CAF_SCANNING, 131666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_CAF_FOCUSED, 131766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_CAF_NOT_FOCUSED, 131866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_AF_INACTIVE 131966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_autofocus_state_t; 132066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 132166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin//Don't change the order of the AF states below. It should match 132266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin//with the corresponding enum in frameworks (camera3.h and 132366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin//CameraMetadata.java) 132466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef enum { 132566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_AF_STATE_INACTIVE, 132666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_AF_STATE_PASSIVE_SCAN, 132766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_AF_STATE_PASSIVE_FOCUSED, 132866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_AF_STATE_ACTIVE_SCAN, 132966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_AF_STATE_FOCUSED_LOCKED, 133066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_AF_STATE_NOT_FOCUSED_LOCKED, 133166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_AF_STATE_PASSIVE_UNFOCUSED 133266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_af_state_t; 133366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 133466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct { 133566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_af_state_t focus_state; /* state of focus */ 133666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_focus_distances_info_t focus_dist; /* focus distance */ 133766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_focus_mode_type focus_mode; /* focus mode from backend */ 133866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin int32_t focus_pos; 13391687b440bcda598006d1950f74915f0cea3b66a3Mekala Natarajan cam_af_flush_info_t flush_info; 134066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_auto_focus_data_t; 134166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 134266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct { 134366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint32_t stream_id; 134466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_rect_t crop; 134566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_rect_t roi_map; 134666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_stream_crop_info_t; 134766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 134866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct { 134966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint8_t num_of_streams; 135066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_stream_crop_info_t crop_info[MAX_NUM_STREAMS]; 135166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_crop_data_t; 135266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 135366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct { 135466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint32_t stream_id; 135566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint32_t cds_enable; 135666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_stream_cds_info_t; 135766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 135866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct { 135966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint8_t session_cds_enable; 136066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint8_t num_of_streams; 136166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_stream_cds_info_t cds_info[MAX_NUM_STREAMS]; 136266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_cds_data_t; 136366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 136466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef enum { 136566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin DO_NOT_NEED_FUTURE_FRAME, 136666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin NEED_FUTURE_FRAME, 136766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_prep_snapshot_state_t; 136866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 136966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define CC_GAINS_COUNT 4 137066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 137166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct { 137266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin float gains[CC_GAINS_COUNT]; 137366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_color_correct_gains_t; 137466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 137566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct { 137666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin // If LED is ON and Burst Num > 1, this is first LED ON frame 137766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint32_t min_frame_idx; 137866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin // If LED is ON and Burst Num > 1, this is first LED Off frame after ON 137966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint32_t max_frame_idx; 138066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin // Used only when LED Is ON and burst num > 1 138166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint32_t num_led_on_frames; 138266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin // Skip count after LED is turned OFF 138366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint32_t frame_skip_count; 138466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin // Batch id for each picture request 138566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint32_t config_batch_idx; 138666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_frame_idx_range_t; 138766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 138866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef enum { 138966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin S_NORMAL = 0, 139066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin S_SCENERY, 139166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin S_PORTRAIT, 139266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin S_PORTRAIT_BACKLIGHT, 139366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin S_SCENERY_BACKLIGHT, 139466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin S_BACKLIGHT, 1395d59d4ae1e81b3b4f85c59b75636580830b3f0833Steve Pfetsch S_HDR, 1396d59d4ae1e81b3b4f85c59b75636580830b3f0833Steve Pfetsch S_MAX_DEFAULT, 1397d59d4ae1e81b3b4f85c59b75636580830b3f0833Steve Pfetsch S_CUSTOM0 = S_MAX_DEFAULT, 1398d59d4ae1e81b3b4f85c59b75636580830b3f0833Steve Pfetsch S_CUSTOM1, 1399d59d4ae1e81b3b4f85c59b75636580830b3f0833Steve Pfetsch S_CUSTOM2, 1400d59d4ae1e81b3b4f85c59b75636580830b3f0833Steve Pfetsch S_CUSTOM3, 1401d59d4ae1e81b3b4f85c59b75636580830b3f0833Steve Pfetsch S_CUSTOM4, 1402d59d4ae1e81b3b4f85c59b75636580830b3f0833Steve Pfetsch S_CUSTOM5, 1403d59d4ae1e81b3b4f85c59b75636580830b3f0833Steve Pfetsch S_CUSTOM6, 1404d59d4ae1e81b3b4f85c59b75636580830b3f0833Steve Pfetsch S_CUSTOM7, 1405d59d4ae1e81b3b4f85c59b75636580830b3f0833Steve Pfetsch S_CUSTOM8, 1406d59d4ae1e81b3b4f85c59b75636580830b3f0833Steve Pfetsch S_CUSTOM9, 140766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin S_MAX, 140866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_auto_scene_t; 140966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 141066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct { 1411d59d4ae1e81b3b4f85c59b75636580830b3f0833Steve Pfetsch uint32_t is_hdr_scene; 1412d59d4ae1e81b3b4f85c59b75636580830b3f0833Steve Pfetsch float hdr_confidence; 1413d59d4ae1e81b3b4f85c59b75636580830b3f0833Steve Pfetsch} cam_asd_hdr_scene_data_t; 1414d59d4ae1e81b3b4f85c59b75636580830b3f0833Steve Pfetsch 1415d59d4ae1e81b3b4f85c59b75636580830b3f0833Steve Pfetschtypedef struct { 1416d59d4ae1e81b3b4f85c59b75636580830b3f0833Steve Pfetsch uint32_t detected; 1417d59d4ae1e81b3b4f85c59b75636580830b3f0833Steve Pfetsch float confidence; 1418d59d4ae1e81b3b4f85c59b75636580830b3f0833Steve Pfetsch uint32_t auto_compensation; 1419d59d4ae1e81b3b4f85c59b75636580830b3f0833Steve Pfetsch} cam_asd_scene_info_t; 1420d59d4ae1e81b3b4f85c59b75636580830b3f0833Steve Pfetsch 1421d59d4ae1e81b3b4f85c59b75636580830b3f0833Steve Pfetschtypedef struct { 1422d59d4ae1e81b3b4f85c59b75636580830b3f0833Steve Pfetsch cam_auto_scene_t detected_scene; 1423d59d4ae1e81b3b4f85c59b75636580830b3f0833Steve Pfetsch uint8_t max_n_scenes; 1424d59d4ae1e81b3b4f85c59b75636580830b3f0833Steve Pfetsch cam_asd_scene_info_t scene_info[S_MAX]; 1425d59d4ae1e81b3b4f85c59b75636580830b3f0833Steve Pfetsch} cam_asd_decision_t; 1426d59d4ae1e81b3b4f85c59b75636580830b3f0833Steve Pfetsch 1427d59d4ae1e81b3b4f85c59b75636580830b3f0833Steve Pfetsch 1428d59d4ae1e81b3b4f85c59b75636580830b3f0833Steve Pfetschtypedef struct { 142966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint32_t meta_frame_id; 143066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_meta_valid_t; 143166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 143266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef enum { 143366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_SENSOR_RAW, 1434d59d4ae1e81b3b4f85c59b75636580830b3f0833Steve Pfetsch CAM_SENSOR_YUV, 1435d59d4ae1e81b3b4f85c59b75636580830b3f0833Steve Pfetsch CAM_SENSOR_MONO 143666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_sensor_t; 143766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 143866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct { 143966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_flash_mode_t flash_mode; 144066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin float aperture_value; 144166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_flash_state_t flash_state; 144266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin float focal_length; 144366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin float f_number; 144466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin int32_t sensing_method; 144566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin float crop_factor; 144666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_sensor_t sens_type; 144766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_sensor_params_t; 144866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 144966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef enum { 145066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_METERING_MODE_UNKNOWN = 0, 145166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_METERING_MODE_AVERAGE = 1, 145266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_METERING_MODE_CENTER_WEIGHTED_AVERAGE = 2, 145366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_METERING_MODE_SPOT = 3, 145466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_METERING_MODE_MULTI_SPOT = 4, 145566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_METERING_MODE_PATTERN = 5, 145666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_METERING_MODE_PARTIAL = 6, 145766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_METERING_MODE_OTHER = 255, 145866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_metering_mode_t; 145966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 146066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct { 146166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin float exp_time; 146266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin int32_t iso_value; 146366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint32_t flash_needed; 146466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint32_t settled; 146566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_wb_mode_type wb_mode; 146666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint32_t metering_mode; 146766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint32_t exposure_program; 146866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint32_t exposure_mode; 146966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint32_t scenetype; 147066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin float brightness; 147166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin float est_snap_exp_time; 147266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin int32_t est_snap_iso_value; 147366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint32_t est_snap_luma; 147466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint32_t est_snap_target; 147566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_3a_params_t; 147666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 147766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct { 147866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint64_t sw_version_number; 147966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin int32_t aec_debug_data_size; 148066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin char aec_private_debug_data[AEC_DEBUG_DATA_SIZE]; 148166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_ae_exif_debug_t; 148266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 148366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct { 14841687b440bcda598006d1950f74915f0cea3b66a3Mekala Natarajan int8_t awb_ccm_enable; 14851687b440bcda598006d1950f74915f0cea3b66a3Mekala Natarajan int8_t hard_awb_ccm_flag; 14861687b440bcda598006d1950f74915f0cea3b66a3Mekala Natarajan int8_t ccm_update_flag; 14871687b440bcda598006d1950f74915f0cea3b66a3Mekala Natarajan float ccm[AWB_NUM_CCM_ROWS][AWB_NUM_CCM_COLS]; 14881687b440bcda598006d1950f74915f0cea3b66a3Mekala Natarajan float ccm_offset[AWB_NUM_CCM_ROWS]; 14891687b440bcda598006d1950f74915f0cea3b66a3Mekala Natarajan} cam_awb_ccm_update_t; 14901687b440bcda598006d1950f74915f0cea3b66a3Mekala Natarajan 14911687b440bcda598006d1950f74915f0cea3b66a3Mekala Natarajantypedef struct { 149266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin int32_t cct_value; 149366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_awb_gain_t rgb_gains; 14941687b440bcda598006d1950f74915f0cea3b66a3Mekala Natarajan cam_awb_ccm_update_t ccm_update; 149566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_awb_params_t; 149666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 149766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct { 149866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin int32_t awb_debug_data_size; 149966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin char awb_private_debug_data[AWB_DEBUG_DATA_SIZE]; 150066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_awb_exif_debug_t; 150166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 150266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct { 150366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin int32_t af_debug_data_size; 150466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin int32_t haf_debug_data_size; 150566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin int32_t tof_debug_data_size; 150666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin int32_t dciaf_debug_data_size; 150766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin int32_t pdaf_debug_data_size; 150866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin char af_private_debug_data[AF_DEBUG_DATA_SIZE]; 150966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin int32_t af_stats_buffer_size; 151066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin char af_stats_private_debug_data[AF_STATS_DEBUG_DATA_SIZE]; 151166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_af_exif_debug_t; 151266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 151366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct { 151466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin int32_t asd_debug_data_size; 151566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin char asd_private_debug_data[ASD_DEBUG_DATA_SIZE]; 151666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_asd_exif_debug_t; 151766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 151866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct { 151966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin int32_t bg_stats_buffer_size; 152066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin int32_t bhist_stats_buffer_size; 152166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin int32_t bg_config_buffer_size; 152266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin char stats_buffer_private_debug_data[STATS_BUFFER_DEBUG_DATA_SIZE]; 152366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_stats_buffer_exif_debug_t; 152466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 152566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin/* 3A version*/ 152666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct { 152766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint16_t major_version; 152866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint16_t minor_version; 152966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint16_t patch_version; 153066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint16_t new_feature_des; 153166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_q3a_version_t; 153266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 153366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct { 153466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint32_t tuning_data_version; 153566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin size_t tuning_sensor_data_size; 153666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin size_t tuning_vfe_data_size; 153766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin size_t tuning_cpp_data_size; 153866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin size_t tuning_cac_data_size; 153966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin size_t tuning_cac_data_size2; 154066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin size_t tuning_mod3_data_size; 154166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint8_t data[TUNING_DATA_MAX]; 154266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin}tuning_params_t; 154366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 154466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct { 154566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin int32_t event_type; 154666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_dimension_t dim; 154766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin size_t size; 154866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin char path[QCAMERA_MAX_FILEPATH_LENGTH]; 154966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_format_t picture_format; 155066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_int_evt_params_t; 155166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 155266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct { 155366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint8_t private_isp_data[MAX_ISP_DATA_SIZE]; 155466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_chromatix_lite_isp_t; 155566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 155666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct { 155766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint8_t private_pp_data[MAX_PP_DATA_SIZE]; 155866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_chromatix_lite_pp_t; 155966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 156066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct { 156166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint8_t private_stats_data[MAX_AE_STATS_DATA_SIZE]; 156266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_chromatix_lite_ae_stats_t; 156366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 156466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct { 156566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint8_t private_stats_data[MAX_AWB_STATS_DATA_SIZE]; 156666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_chromatix_lite_awb_stats_t; 156766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 156866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct { 156966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint8_t private_stats_data[MAX_AF_STATS_DATA_SIZE]; 157066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_chromatix_lite_af_stats_t; 157166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 157266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct { 157366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint8_t private_stats_data[MAX_ASD_STATS_DATA_SIZE]; 157466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_chromatix_lite_asd_stats_t; 157566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 157666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct { 157766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint32_t min_buffers; 157866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint32_t max_buffers; 157966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_buffer_info_t; 158066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 158166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct { 158266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_dimension_t stream_sizes[MAX_NUM_STREAMS]; 158366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint32_t num_streams; 158466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_stream_type_t type[MAX_NUM_STREAMS]; 158566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint32_t postprocess_mask[MAX_NUM_STREAMS]; 158666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_buffer_info_t buffer_info; 158766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_is_type_t is_type; 158866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_hfr_mode_t hfr_mode; 158966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_format_t format[MAX_NUM_STREAMS]; 159066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint32_t buf_alignment; 159166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint32_t min_stride; 159266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint32_t min_scanline; 159366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint8_t batch_size; 159466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_stream_size_info_t; 159566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 159666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 159766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef enum { 159866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_OVERWRITE_MINI_CHROMATIX_OFFLINE, 159966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_OVERWRITE_ISP_HW_DATA_OFFLINE, 160066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_OVERWRITE_MINI_CHROMATIX_ONLINE, 160166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_OVERWRITE_ISP_HW_DATA_ONLINE, 160266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_OVERWRITE_MAX, 160366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_intf_overwrite_type_t; 160466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 160566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct { 160666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint8_t lds_enabled; 160766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin float rnr_sampling_factor; 160866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_img_hysterisis_info_t; 160966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 161066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct { 161166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* dynamic feature enablement */ 161266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint64_t dyn_feature_mask; 161366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* input frame count for stacking */ 161466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint32_t input_count; 161566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* reserved for future use */ 161666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint8_t reserved[32]; 161766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_dyn_img_data_t; 161866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 161966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct { 162066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_intf_overwrite_type_t overwrite_type; 162166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin char isp_hw_data_list[4096]; /*add upper bound memory, customer to fill*/ 162266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin char chromatix_data_overwrite[4096]; /*add bound memory, customer fill*/ 162366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_hw_data_overwrite_t; 162466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 162566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct { 162666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint32_t num_streams; 162766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint32_t streamID[MAX_NUM_STREAMS]; 162866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_stream_ID_t; 162966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 163066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin/*CAC Message posted during pipeline*/ 163166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct { 163266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint32_t frame_id; 163366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin int32_t buf_idx; 163466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_cac_info_t; 163566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 163666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct 163766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin{ 163866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint32_t id; /* Frame ID */ 163966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint64_t timestamp; /* Time stamp */ 164066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint32_t distance_in_mm; /* Distance of object in ROI's in milimeters */ 164166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint32_t confidence; /* Confidence on distance from 0(No confidence)to 1024(max) */ 164266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint32_t status; /* Status of DCRF library execution call */ 164366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_rect_t focused_roi; /* ROI's for which distance is estimated */ 164466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint32_t focused_x; /* Focus location X inside ROI with distance estimation */ 164566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint32_t focused_y; /* Focus location Y inside ROI with distance estimation */ 164666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_dcrf_result_t; 164766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 164866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct { 164966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint32_t frame_id; 165066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint32_t num_streams; 165166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint32_t stream_id[MAX_NUM_STREAMS]; 165266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_buf_divert_info_t; 165366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 165466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct { 165566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint8_t is_stats_valid; /* if histgram data is valid */ 165666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_hist_stats_t stats_data; /* histogram data */ 165766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 165866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint8_t is_faces_valid; /* if face detection data is valid */ 165966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_face_detection_data_t faces_data; /* face detection result */ 166066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 166166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint8_t is_focus_valid; /* if focus data is valid */ 166266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_auto_focus_data_t focus_data; /* focus data */ 166366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 166466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint8_t is_crop_valid; /* if crop data is valid */ 166566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_crop_data_t crop_data; /* crop data */ 166666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 166766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint8_t is_prep_snapshot_done_valid; /* if prep snapshot done is valid */ 166866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_prep_snapshot_state_t prep_snapshot_done_state; /* prepare snapshot done state */ 166966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 167066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint8_t is_cac_valid; /* if cac info is valid */ 167166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_cac_info_t cac_info; /* cac info */ 167266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 167366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* Hysterisis data from Img modules */ 167466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint8_t is_hyst_info_valid; /* if hyst info is valid */ 167566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_img_hysterisis_info_t img_hyst_info; /* hyst info */ 167666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 167766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* if good frame idx range is valid */ 167866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint8_t is_good_frame_idx_range_valid; 167966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* good frame idx range, make sure: 168066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * 1. good_frame_idx_range.min_frame_idx > current_frame_idx 168166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * 2. good_frame_idx_range.min_frame_idx - current_frame_idx < 100 */ 168266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_frame_idx_range_t good_frame_idx_range; 168366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 1684d59d4ae1e81b3b4f85c59b75636580830b3f0833Steve Pfetsch cam_asd_decision_t cam_asd_info; 168566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 168666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin char private_metadata[MAX_METADATA_PRIVATE_PAYLOAD_SIZE_IN_BYTES]; 168766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 168866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* AE parameters */ 168966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint8_t is_3a_params_valid; 169066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_3a_params_t cam_3a_params; 169166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 169266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* AE exif debug parameters */ 169366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint8_t is_ae_exif_debug_valid; 169466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_ae_exif_debug_t ae_exif_debug_params; 169566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 169666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* AWB exif debug parameters */ 169766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint8_t is_awb_exif_debug_valid; 169866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_awb_exif_debug_t awb_exif_debug_params; 169966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 170066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* AF exif debug parameters */ 170166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint8_t is_af_exif_debug_valid; 170266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_af_exif_debug_t af_exif_debug_params; 170366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 170466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* ASD exif debug parameters */ 170566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint8_t is_asd_exif_debug_valid; 170666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_asd_exif_debug_t asd_exif_debug_params; 170766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 170866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* Stats buffer exif debug parameters */ 170966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint8_t is_stats_buffer_exif_debug_valid; 171066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_stats_buffer_exif_debug_t stats_buffer_exif_debug_params; 171166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 171266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* AWB parameters */ 171366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint8_t is_awb_params_valid; 171466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_awb_params_t awb_params; 171566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 171666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* sensor parameters */ 171766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint8_t is_sensor_params_valid; 171866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_sensor_params_t sensor_params; 171966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 172066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* Meta valid params */ 172166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint8_t is_meta_valid; 172266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_meta_valid_t meta_valid_params; 172366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 172466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /*Tuning Data*/ 172566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint8_t is_tuning_params_valid; 172666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin tuning_params_t tuning_params; 172766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 172866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint8_t is_chromatix_lite_isp_valid; 172966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_chromatix_lite_isp_t chromatix_lite_isp_data; 173066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 173166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint8_t is_chromatix_lite_pp_valid; 173266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_chromatix_lite_pp_t chromatix_lite_pp_data; 173366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 173466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint8_t is_chromatix_lite_ae_stats_valid; 173566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_chromatix_lite_ae_stats_t chromatix_lite_ae_stats_data; 173666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 173766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint8_t is_chromatix_lite_awb_stats_valid; 173866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_chromatix_lite_awb_stats_t chromatix_lite_awb_stats_data; 173966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 174066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint8_t is_chromatix_lite_af_stats_valid; 174166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_chromatix_lite_af_stats_t chromatix_lite_af_stats_data; 174266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 174366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint8_t is_dcrf_result_valid; 174466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_dcrf_result_t dcrf_result; 174566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 174666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* Dynamic feature enablement from postprocessing modules */ 174766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint8_t is_dyn_img_data_valid; 174866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_dyn_img_data_t dyn_img_data; 174966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 175066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_metadata_info_t; 175166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 175266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef enum { 175366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_PARM_HAL_VERSION = 0x1, 175466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 175566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* Overall mode of 3A control routines. We need to have this parameter 175666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * because not all android.control.* have an OFF option, for example, 175766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * AE_FPS_Range, aePrecaptureTrigger */ 175866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_META_MODE, 175966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* Whether AE is currently updating the sensor exposure and sensitivity 176066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * fields */ 176166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_META_AEC_MODE, 176266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_PARM_WHITE_BALANCE, 176366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_PARM_FOCUS_MODE, 176466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 176566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* common between HAL1 and HAL3 */ 176666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_PARM_ANTIBANDING, 176766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_PARM_EXPOSURE_COMPENSATION, 176866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_PARM_EV_STEP, 176966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_PARM_AEC_LOCK, 177066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_PARM_FPS_RANGE, /* 10 */ 177166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_PARM_AWB_LOCK, 177266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_PARM_EFFECT, 177366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_PARM_BESTSHOT_MODE, 177466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_PARM_DIS_ENABLE, 177566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_PARM_LED_MODE, 177666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_META_HISTOGRAM, 177766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_META_FACE_DETECTION, 177866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* Whether optical image stabilization is enabled. */ 177966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_META_LENS_OPT_STAB_MODE, 178066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* specific to HAl1 */ 178166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_META_AUTOFOCUS_DATA, 178266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_PARM_QUERY_FLASH4SNAP, /* 20 */ 178366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_PARM_EXPOSURE, 178466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_PARM_SHARPNESS, 178566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_PARM_CONTRAST, 178666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_PARM_SATURATION, 178766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_PARM_BRIGHTNESS, 178866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_PARM_ISO, 178966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_PARM_ZOOM, 179066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_PARM_ROLLOFF, 179166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_PARM_MODE, /* camera mode */ 179266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_PARM_AEC_ALGO_TYPE, /* 30 */ /* auto exposure algorithm */ 179366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_PARM_FOCUS_ALGO_TYPE, /* focus algorithm */ 179466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_PARM_AEC_ROI, 179566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_PARM_AF_ROI, 179666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_PARM_SCE_FACTOR, 179766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_PARM_FD, 179866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_PARM_MCE, 179966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_PARM_HFR, 180066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_PARM_REDEYE_REDUCTION, 180166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_PARM_WAVELET_DENOISE, 180266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_PARM_TEMPORAL_DENOISE, /* 40 */ 180366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_PARM_HISTOGRAM, 180466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_PARM_ASD_ENABLE, 180566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_PARM_RECORDING_HINT, 180666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_PARM_HDR, 180766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_PARM_MAX_DIMENSION, 180866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_PARM_RAW_DIMENSION, 180966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_PARM_FRAMESKIP, 181066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_PARM_ZSL_MODE, /* indicating if it's running in ZSL mode */ 181166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_PARM_BURST_NUM, 181266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_PARM_RETRO_BURST_NUM, /* 50 */ 181366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_PARM_BURST_LED_ON_PERIOD, 181466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_PARM_HDR_NEED_1X, /* if HDR needs 1x output */ 181566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_PARM_LOCK_CAF, 181666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_PARM_VIDEO_HDR, 181766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_PARM_SENSOR_HDR, 181866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_PARM_ROTATION, 181966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_PARM_SCALE, 182066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_PARM_VT, /* indicating if it's a Video Call Apllication */ 182166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_META_CROP_DATA, 182266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_META_PREP_SNAPSHOT_DONE, /* 60 */ 182366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_META_GOOD_FRAME_IDX_RANGE, 182466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_META_ASD_HDR_SCENE_DATA, 1825d59d4ae1e81b3b4f85c59b75636580830b3f0833Steve Pfetsch CAM_INTF_META_ASD_SCENE_INFO, 182666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_META_CURRENT_SCENE, 182766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_META_AEC_INFO, 182866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_META_SENSOR_INFO, 182966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_META_CHROMATIX_LITE_ISP, 183066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_META_CHROMATIX_LITE_PP, 1831d59d4ae1e81b3b4f85c59b75636580830b3f0833Steve Pfetsch CAM_INTF_META_CHROMATIX_LITE_AE, 1832d59d4ae1e81b3b4f85c59b75636580830b3f0833Steve Pfetsch CAM_INTF_META_CHROMATIX_LITE_AWB, /* 70 */ 183366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_META_CHROMATIX_LITE_AF, 183466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_META_CHROMATIX_LITE_ASD, 183566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_META_EXIF_DEBUG_AE, 183666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_META_EXIF_DEBUG_AWB, 183766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_META_EXIF_DEBUG_AF, 183866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_META_EXIF_DEBUG_ASD, 183966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_META_EXIF_DEBUG_STATS, 184066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_PARM_GET_CHROMATIX, 1841d59d4ae1e81b3b4f85c59b75636580830b3f0833Steve Pfetsch CAM_INTF_PARM_SET_RELOAD_CHROMATIX, 1842d59d4ae1e81b3b4f85c59b75636580830b3f0833Steve Pfetsch CAM_INTF_PARM_SET_AUTOFOCUSTUNING, /* 80 */ 184366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_PARM_GET_AFTUNE, 184466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_PARM_SET_RELOAD_AFTUNE, 184566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_PARM_SET_VFE_COMMAND, 184666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_PARM_SET_PP_COMMAND, 184766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_PARM_TINTLESS, 184866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_PARM_LONGSHOT_ENABLE, 184966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_PARM_RDI_MODE, 185066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_PARM_CDS_MODE, 1851d59d4ae1e81b3b4f85c59b75636580830b3f0833Steve Pfetsch CAM_INTF_PARM_TONE_MAP_MODE, 1852d59d4ae1e81b3b4f85c59b75636580830b3f0833Steve Pfetsch CAM_INTF_PARM_CAPTURE_FRAME_CONFIG, /* 90 */ 185366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_PARM_DUAL_LED_CALIBRATION, 1854d59d4ae1e81b3b4f85c59b75636580830b3f0833Steve Pfetsch CAM_INTF_PARM_ADV_CAPTURE_MODE, 185566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 185666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* stream based parameters */ 185766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_PARM_DO_REPROCESS, 185866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_PARM_SET_BUNDLE, 185966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_PARM_STREAM_FLIP, 186066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_PARM_GET_OUTPUT_CROP, 186166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 186266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_PARM_EZTUNE_CMD, 186366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_PARM_INT_EVT, 186466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 186566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* specific to HAL3 */ 186666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* Whether the metadata maps to a valid frame number */ 186766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_META_FRAME_NUMBER_VALID, 186866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* Whether the urgent metadata maps to a valid frame number */ 186966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_META_URGENT_FRAME_NUMBER_VALID, 187066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* Whether the stream buffer corresponding this frame is dropped or not */ 187166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_META_FRAME_DROPPED, /* 100 */ 187266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* COLOR CORRECTION.*/ 187366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_META_COLOR_CORRECT_MODE, 187466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* A transform matrix to chromatically adapt pixels in the CIE XYZ (1931) 187566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * color space from the scene illuminant to the sRGB-standard D65-illuminant. */ 187666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_META_COLOR_CORRECT_TRANSFORM, 187766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /*Color channel gains in the Bayer raw domain in the order [RGeGoB]*/ 187866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_META_COLOR_CORRECT_GAINS, 187966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /*The best fit color transform matrix calculated by the stats*/ 188066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_META_PRED_COLOR_CORRECT_TRANSFORM, 188166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /*The best fit color channels gains calculated by the stats*/ 188266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_META_PRED_COLOR_CORRECT_GAINS, 188366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* CONTROL */ 188466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* A frame counter set by the framework. Must be maintained unchanged in 188566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * output frame. */ 188666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_META_FRAME_NUMBER, 188766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* A frame counter set by the framework. Must be maintained unchanged in 188866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * output frame. */ 188966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_META_URGENT_FRAME_NUMBER, 189066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /*Number of streams and size of streams in current configuration*/ 189166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_META_STREAM_INFO, 189266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* List of areas to use for metering */ 189366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_META_AEC_ROI, 189466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* Whether the HAL must trigger precapture metering.*/ 189566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_META_AEC_PRECAPTURE_TRIGGER, /* 110 */ 189666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* The ID sent with the latest CAMERA2_TRIGGER_PRECAPTURE_METERING call */ 189766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* Current state of AE algorithm */ 189866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_META_AEC_STATE, 189966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* List of areas to use for focus estimation */ 190066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_META_AF_ROI, 190166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* Whether the HAL must trigger autofocus. */ 190266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_META_AF_TRIGGER, 190366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* Current state of AF algorithm */ 190466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_META_AF_STATE, 190566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* List of areas to use for illuminant estimation */ 190666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_META_AWB_REGIONS, 190766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* Current state of AWB algorithm */ 190866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_META_AWB_STATE, 190966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /*Whether black level compensation is frozen or free to vary*/ 191066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_META_BLACK_LEVEL_LOCK, 191166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* Information to 3A routines about the purpose of this capture, to help 191266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * decide optimal 3A strategy */ 191366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_META_CAPTURE_INTENT, 191466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* DEMOSAIC */ 191566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* Controls the quality of the demosaicing processing */ 191666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_META_DEMOSAIC, 191766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* EDGE */ 191866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* Operation mode for edge enhancement */ 191966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_META_EDGE_MODE, /* 120 */ 192066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* Control the amount of edge enhancement applied to the images.*/ 192166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* 1-10; 10 is maximum sharpening */ 192266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_META_SHARPNESS_STRENGTH, 192366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* FLASH */ 192466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* Power for flash firing/torch, 10 is max power; 0 is no flash. Linear */ 192566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_META_FLASH_POWER, 192666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* Firing time of flash relative to start of exposure, in nanoseconds*/ 192766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_META_FLASH_FIRING_TIME, 192866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* Current state of the flash unit */ 192966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_META_FLASH_STATE, 193066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* GEOMETRIC */ 193166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* Operating mode of geometric correction */ 193266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_META_GEOMETRIC_MODE, 193366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* Control the amount of shading correction applied to the images */ 193466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_META_GEOMETRIC_STRENGTH, 193566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* HOT PIXEL */ 193666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* Set operational mode for hot pixel correction */ 193766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_META_HOTPIXEL_MODE, 193866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* LENS */ 193966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* Size of the lens aperture */ 194066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_META_LENS_APERTURE, 194166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* State of lens neutral density filter(s) */ 194266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_META_LENS_FILTERDENSITY, 194366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* Lens optical zoom setting */ 194466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_META_LENS_FOCAL_LENGTH, /* 130 */ 194566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* Distance to plane of sharpest focus, measured from frontmost surface 194666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * of the lens */ 194766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_META_LENS_FOCUS_DISTANCE, 194866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* The range of scene distances that are in sharp focus (depth of field) */ 194966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_META_LENS_FOCUS_RANGE, 195066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /*Whether the hal needs to output the lens shading map*/ 195166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_META_LENS_SHADING_MAP_MODE, 195266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* Current lens status */ 195366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_META_LENS_STATE, 195466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* NOISE REDUCTION */ 195566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* Mode of operation for the noise reduction algorithm */ 195666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_META_NOISE_REDUCTION_MODE, 195766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* Control the amount of noise reduction applied to the images. 195866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * 1-10; 10 is max noise reduction */ 195966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_META_NOISE_REDUCTION_STRENGTH, 196066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* SCALER */ 196166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* Top-left corner and width of the output region to select from the active 196266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * pixel array */ 196366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_META_SCALER_CROP_REGION, 196466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* The estimated scene illumination lighting frequency */ 196566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_META_SCENE_FLICKER, 196666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* SENSOR */ 196766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* Duration each pixel is exposed to light, in nanoseconds */ 196866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_META_SENSOR_EXPOSURE_TIME, 196966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* Duration from start of frame exposure to start of next frame exposure, 197066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * in nanoseconds */ 197166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_META_SENSOR_FRAME_DURATION, /* 140 */ 197266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* Gain applied to image data. Must be implemented through analog gain only 197366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * if set to values below 'maximum analog sensitivity'. */ 197466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_META_SENSOR_SENSITIVITY, 197566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* Time at start of exposure of first row */ 197666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_META_SENSOR_TIMESTAMP, 197766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* Duration b/w start of first row exposure and the start of last 197866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin row exposure in nanoseconds */ 197966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_META_SENSOR_ROLLING_SHUTTER_SKEW, 198066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* SHADING */ 198166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* Quality of lens shading correction applied to the image data */ 198266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_META_SHADING_MODE, 198366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* Control the amount of shading correction applied to the images. 198466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * unitless: 1-10; 10 is full shading compensation */ 198566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_META_SHADING_STRENGTH, 198666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* STATISTICS */ 198766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* State of the face detector unit */ 198866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_META_STATS_FACEDETECT_MODE, 198966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* Operating mode for histogram generation */ 199066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_META_STATS_HISTOGRAM_MODE, 199166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* Operating mode for sharpness map generation */ 199266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_META_STATS_SHARPNESS_MAP_MODE, 199366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* A 3-channel sharpness map, based on the raw sensor data, 199466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * If only a monochrome sharpness map is supported, all channels 199566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * should have the same data 199666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin */ 199766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_META_STATS_SHARPNESS_MAP, 199866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 199966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* TONEMAP */ 200066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* Tone map mode */ 200166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_META_TONEMAP_MODE, /* 150 */ 200266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* Table mapping RGB input values to output values */ 200366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_META_TONEMAP_CURVES, 200466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 200566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_META_FLASH_MODE, 200666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* 2D array of gain factors for each color channel that was used to 200766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * compensate for lens shading for this frame */ 200866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_META_LENS_SHADING_MAP, 200966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_META_PRIVATE_DATA, 201066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_PARM_STATS_DEBUG_MASK, 201166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_PARM_STATS_AF_PAAF, 201266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* Indicates streams ID of all the requested buffers */ 201366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_META_STREAM_ID, 201466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_PARM_FOCUS_BRACKETING, 201566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_PARM_FLASH_BRACKETING, 201666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_PARM_GET_IMG_PROP, /* 160 */ 201766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_META_JPEG_GPS_COORDINATES, 201866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_META_JPEG_GPS_PROC_METHODS, 201966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_META_JPEG_GPS_TIMESTAMP, 202066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_META_JPEG_ORIENTATION, 202166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_META_JPEG_QUALITY, 202266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_META_JPEG_THUMB_QUALITY, 202366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_META_JPEG_THUMB_SIZE, 202466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 202566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_META_TEST_PATTERN_DATA, 202666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* DNG file support */ 202766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_META_PROFILE_TONE_CURVE, 202866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_META_NEUTRAL_COL_POINT, /* 170 */ 202966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 203066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* CAC */ 203166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_META_CAC_INFO, 203266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_PARM_CAC, 203366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_META_IMG_HYST_INFO, 203466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 203566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* trigger for all modules to read the debug/log level properties */ 203666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_PARM_UPDATE_DEBUG_LEVEL, 203766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 203866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* OTP : WB gr/gb */ 203966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_META_OTP_WB_GRGB, 204066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* LED override for EZTUNE */ 204166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_META_LED_MODE_OVERRIDE, 204266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* auto lens position info */ 204366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_META_FOCUS_POSITION, 204466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* Manual exposure time */ 204566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_PARM_EXPOSURE_TIME, 204666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* AWB meta data info */ 204766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_META_AWB_INFO, 204866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* Manual lens position info */ 204966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_PARM_MANUAL_FOCUS_POS, /* 180 */ 205066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* Manual White balance gains */ 205166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_PARM_WB_MANUAL, 205266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* Offline Data Overwrite */ 205366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_PARM_HW_DATA_OVERWRITE, 205466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* IMG LIB reprocess debug section */ 205566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_META_IMGLIB, /* cam_intf_meta_imglib_t */ 205666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* OEM specific parameters */ 205766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_PARM_CUSTOM, 205866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* parameters added for related cameras */ 205966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* fetch calibration info for related cam subsystem */ 206066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_PARM_RELATED_SENSORS_CALIBRATION, 206166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* focal length ratio info */ 206266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_META_AF_FOCAL_LENGTH_RATIO, 206366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* crop for binning & FOV adjust */ 206466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_META_SNAP_CROP_INFO_SENSOR, 206566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* crop for trimming edge pixels */ 206666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_META_SNAP_CROP_INFO_CAMIF, 206766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* crop for FOV adjust and zoom */ 206866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_META_SNAP_CROP_INFO_ISP, 206966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* crop for image-stabilization and zoom */ 207066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_META_SNAP_CROP_INFO_CPP, /* 190 */ 207166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* parameter for enabling DCRF */ 207266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_PARM_DCRF, 207366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* metadata tag for DCRF info */ 207466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_META_DCRF, 207566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* FLIP mode parameter*/ 207666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_PARM_FLIP, 207766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /*Frame divert info from ISP*/ 207866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_BUF_DIVERT_INFO, 207966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* Use AV timer */ 208066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_META_USE_AV_TIMER, 208166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_META_EFFECTIVE_EXPOSURE_FACTOR, 208266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* Special event to request stream frames*/ 208366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_PARM_REQUEST_FRAMES, 208466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* Special event to request operational mode*/ 208566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_PARM_REQUEST_OPS_MODE, 208666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /*Black level parameters*/ 208766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_META_LDAF_EXIF, 208866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_META_BLACK_LEVEL_SOURCE_PATTERN, 208966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_META_BLACK_LEVEL_APPLIED_PATTERN, /* 200 */ 209066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_META_CDS_DATA, 209166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /*3A low light level information*/ 209266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_META_LOW_LIGHT, 209366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* dynamic feature detection */ 209466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_META_IMG_DYN_FEAT, /* 200 */ 209566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /*Parameter entry to communicate manual 209666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin capture type*/ 209766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_PARM_MANUAL_CAPTURE_TYPE, 209866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /*AF state change detected by AF module*/ 209966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_AF_STATE_TRANSITION, 210066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* face recognition */ 210166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_META_FACE_RECOG, 210266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* face blink detection */ 210366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_META_FACE_BLINK, 210466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* face gaze detection */ 210566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_META_FACE_GAZE, 210666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* face smile detection */ 210766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_META_FACE_SMILE, 210866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* face landmark detection */ 210966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_META_FACE_LANDMARK, /* 210 */ 211066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* face contour detection */ 211166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_META_FACE_CONTOUR, 211266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* Whether EIS is enabled */ 211366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_META_VIDEO_STAB_MODE, 211466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* Touch exposure compensation (EV) status */ 211566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_META_TOUCH_AE_RESULT, 211666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* Param for updating initial exposure index value*/ 211766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_PARM_INITIAL_EXPOSURE_INDEX, 2118b9ca3356110780d1f0a29cc09e8e7558837afe45Ranjith Kagathi Ananda /* Gain applied post raw captrue. 2119b9ca3356110780d1f0a29cc09e8e7558837afe45Ranjith Kagathi Ananda ISP digital gain */ 2120b9ca3356110780d1f0a29cc09e8e7558837afe45Ranjith Kagathi Ananda CAM_INTF_META_ISP_SENSITIVITY, 2121d59d4ae1e81b3b4f85c59b75636580830b3f0833Steve Pfetsch /* Param for enabling instant aec*/ 2122d59d4ae1e81b3b4f85c59b75636580830b3f0833Steve Pfetsch CAM_INTF_PARM_INSTANT_AEC, 212366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_PARM_MAX 212466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_intf_parm_type_t; 212566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 212666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct { 212766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint32_t forced; 212866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin union { 212966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint32_t force_linecount_value; 213066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin float force_gain_value; 213166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin float force_snap_exp_value; 213266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin float force_exp_value; 213366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint32_t force_snap_linecount_value; 213466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin float force_snap_gain_value; 213566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin } u; 213666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_ez_force_params_t; 213766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 213866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct { 213966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin float cam_black_level[4]; 214066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_black_level_metadata_t; 214166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 214266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef enum { 214366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_EZTUNE_CMD_STATUS, 214466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_EZTUNE_CMD_AEC_ENABLE, 214566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_EZTUNE_CMD_AWB_ENABLE, 214666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_EZTUNE_CMD_AF_ENABLE, 214766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_EZTUNE_CMD_AEC_FORCE_LINECOUNT, 214866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_EZTUNE_CMD_AEC_FORCE_GAIN, 214966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_EZTUNE_CMD_AEC_FORCE_EXP, 215066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_EZTUNE_CMD_AEC_FORCE_SNAP_LC, 215166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_EZTUNE_CMD_AEC_FORCE_SNAP_GAIN, 215266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_EZTUNE_CMD_AEC_FORCE_SNAP_EXP, 215366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_EZTUNE_CMD_AWB_MODE, 215466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_EZTUNE_CMD_AWB_FORCE_DUAL_LED_IDX, 215566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_eztune_cmd_type_t; 215666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 215766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct { 215866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_eztune_cmd_type_t cmd; 215966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin union { 216066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin int32_t running; 216166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin int32_t aec_enable; 216266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin int32_t awb_enable; 216366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin int32_t af_enable; 216466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_ez_force_params_t ez_force_param; 216566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin int32_t awb_mode; 216666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin int32_t ez_force_dual_led_idx; 216766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin } u; 216866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_eztune_cmd_data_t; 216966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 217066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 217166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin/***************************************************************************** 217266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * Code for HAL3 data types * 217366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin ****************************************************************************/ 217466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef enum { 217566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTF_METADATA_MAX 217666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_intf_metadata_type_t; 217766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 217866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef enum { 217966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTENT_CUSTOM, 218066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTENT_PREVIEW, 218166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTENT_STILL_CAPTURE, 218266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTENT_VIDEO_RECORD, 218366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTENT_VIDEO_SNAPSHOT, 218466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTENT_ZERO_SHUTTER_LAG, 218566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_INTENT_MAX, 218666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_intent_t; 218766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 218866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef enum { 218966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* Full application control of pipeline. All 3A routines are disabled, 219066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * no other settings in android.control.* have any effect */ 219166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_CONTROL_OFF, 219266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* Use settings for each individual 3A routine. Manual control of capture 219366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * parameters is disabled. All controls in android.control.* besides sceneMode 219466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * take effect */ 219566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_CONTROL_AUTO, 219666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* Use specific scene mode. Enabling this disables control.aeMode, 219766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * control.awbMode and control.afMode controls; the HAL must ignore those 219866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * settings while USE_SCENE_MODE is active (except for FACE_PRIORITY scene mode). 219966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * Other control entries are still active. This setting can only be used if 220066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * availableSceneModes != UNSUPPORTED. TODO: Should we remove this and handle this 220166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * in HAL ?*/ 220266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_CONTROL_USE_SCENE_MODE, 220366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_CONTROL_MAX 220466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_control_mode_t; 220566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 220666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef enum { 220766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* Use the android.colorCorrection.transform matrix to do color conversion */ 220866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_COLOR_CORRECTION_TRANSFORM_MATRIX, 220966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* Must not slow down frame rate relative to raw bayer output */ 221066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_COLOR_CORRECTION_FAST, 221166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* Frame rate may be reduced by high quality */ 221266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_COLOR_CORRECTION_HIGH_QUALITY, 221366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_color_correct_mode_t; 221466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 221566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef enum { 221666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_COLOR_CORRECTION_ABERRATION_OFF, 221766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_COLOR_CORRECTION_ABERRATION_FAST, 221866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_COLOR_CORRECTION_ABERRATION_HIGH_QUALITY, 221966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_COLOR_CORRECTION_ABERRATION_MAX 222066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_aberration_mode_t; 222166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 222266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define CC_MATRIX_ROWS 3 222366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define CC_MATRIX_COLS 3 222466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 222566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct { 222666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* 3x3 float matrix in row-major order. each element is in range of (0, 1) */ 222766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_rational_type_t transform_matrix[CC_MATRIX_ROWS][CC_MATRIX_COLS]; 222866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_color_correct_matrix_t; 222966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 223066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define CAM_FOCAL_LENGTHS_MAX 1 223166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define CAM_APERTURES_MAX 1 223266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define CAM_FILTER_DENSITIES_MAX 1 223366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define CAM_MAX_MAP_HEIGHT 6 223466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define CAM_MAX_MAP_WIDTH 6 223566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define CAM_MAX_SHADING_MAP_WIDTH 17 223666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define CAM_MAX_SHADING_MAP_HEIGHT 13 223766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define CAM_MAX_TONEMAP_CURVE_SIZE 512 223866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define CAM_MAX_FLASH_BRACKETING 5 223966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 224066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct { 224166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* A 1D array of pairs of floats. 224266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * Mapping a 0-1 input range to a 0-1 output range. 224366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * The input range must be monotonically increasing with N, 224466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * and values between entries should be linearly interpolated. 224566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * For example, if the array is: [0.0, 0.0, 0.3, 0.5, 1.0, 1.0], 224666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * then the input->output mapping for a few sample points would be: 224766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * 0 -> 0, 0.15 -> 0.25, 0.3 -> 0.5, 0.5 -> 0.64 */ 224866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin float tonemap_points[CAM_MAX_TONEMAP_CURVE_SIZE][2]; 224966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_tonemap_curve_t; 225066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 225166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct { 225266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin size_t tonemap_points_cnt; 225366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_tonemap_curve_t curves[3]; 225466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_rgb_tonemap_curves; 225566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 225666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct { 225766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin size_t tonemap_points_cnt; 225866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_tonemap_curve_t curve; 225966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_profile_tone_curve; 226066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 226166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define NEUTRAL_COL_POINTS 3 226266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 226366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct { 226466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_rational_type_t neutral_col_point[NEUTRAL_COL_POINTS]; 226566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_neutral_col_point_t; 226666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 226766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef enum { 226866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin OFF, 226966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin FAST, 227066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin QUALITY, 227166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_quality_preference_t; 227266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 227366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef enum { 227466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FLASH_CTRL_OFF, 227566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FLASH_CTRL_SINGLE, 227666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FLASH_CTRL_TORCH 227766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_flash_ctrl_t; 227866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 227966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct { 228066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint8_t frame_dropped; /* This flag indicates whether any stream buffer is dropped or not */ 228166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_stream_ID_t cam_stream_ID; /* if dropped, Stream ID of dropped streams */ 228266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_frame_dropped_t; 228366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 228466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct { 228566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint8_t ae_mode; 228666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint8_t awb_mode; 228766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint8_t af_mode; 228866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_scene_mode_overrides_t; 228966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 229066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct { 229166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin int32_t left; 229266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin int32_t top; 229366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin int32_t width; 229466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin int32_t height; 229566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_crop_region_t; 229666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 229766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct { 229866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* Estimated sharpness for each region of the input image. 229966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * Normalized to be between 0 and maxSharpnessMapValue. 230066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * Higher values mean sharper (better focused) */ 230166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin int32_t sharpness[CAM_MAX_MAP_WIDTH][CAM_MAX_MAP_HEIGHT]; 230266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_sharpness_map_t; 230366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 230466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct { 230566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin float lens_shading[4*CAM_MAX_SHADING_MAP_HEIGHT*CAM_MAX_SHADING_MAP_WIDTH]; 230666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_lens_shading_map_t; 230766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 230866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct { 230966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin int32_t min_value; 231066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin int32_t max_value; 231166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin int32_t def_value; 231266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin int32_t step; 231366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_control_range_t; 231466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 231566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define CAM_QCOM_FEATURE_NONE 0U 231666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define CAM_QCOM_FEATURE_FACE_DETECTION (1U<<0) 231766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define CAM_QCOM_FEATURE_DENOISE2D (1U<<1) 231866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define CAM_QCOM_FEATURE_CROP (1U<<2) 231966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define CAM_QCOM_FEATURE_ROTATION (1U<<3) 232066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define CAM_QCOM_FEATURE_FLIP (1U<<4) 232166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define CAM_QCOM_FEATURE_HDR (1U<<5) 232266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define CAM_QCOM_FEATURE_REGISTER_FACE (1U<<6) 232366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define CAM_QCOM_FEATURE_SHARPNESS (1U<<7) 232466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define CAM_QCOM_FEATURE_VIDEO_HDR (1U<<8) 232566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define CAM_QCOM_FEATURE_CAC (1U<<9) 232666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define CAM_QCOM_FEATURE_SCALE (1U<<10) 232766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define CAM_QCOM_FEATURE_EFFECT (1U<<11) 232866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define CAM_QCOM_FEATURE_UBIFOCUS (1U<<12) 232966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define CAM_QCOM_FEATURE_CHROMA_FLASH (1U<<13) 233066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define CAM_QCOM_FEATURE_OPTIZOOM (1U<<14) 233166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define CAM_QCOM_FEATURE_SENSOR_HDR (1U<<15) 233266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define CAM_QCOM_FEATURE_REFOCUS (1U<<16) 233366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define CAM_QCOM_FEATURE_CPP_TNR (1U<<17) 233466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define CAM_QCOM_FEATURE_RAW_PROCESSING (1U<<18) 233566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define CAM_QCOM_FEATURE_TRUEPORTRAIT (1U<<19) 233666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define CAM_QCOM_FEATURE_LLVD (1U<<20) 233766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define CAM_QCOM_FEATURE_DIS20 (1U<<21) 233866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define CAM_QCOM_FEATURE_STILLMORE (1U<<22) 233966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define CAM_QCOM_FEATURE_DCRF (1U<<23) 234066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define CAM_QCOM_FEATURE_CDS (1U<<24) 234166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define CAM_QCOM_FEATURE_EZTUNE (1U<<25) 234266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define CAM_QCOM_FEATURE_DSDN (1U<<26) //Special CDS in CPP block 234366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define CAM_QCOM_FEATURE_SW2D (1U<<27) 234466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define CAM_OEM_FEATURE_1 (1U<<28) 234566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define CAM_OEM_FEATURE_2 (1U<<29) 234666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define CAM_QTI_FEATURE_SW_TNR (1U<<30) 234766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define CAM_QCOM_FEATURE_METADATA_PROCESSING (1U<<31) 234866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define CAM_QCOM_FEATURE_MAX 32 234966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define CAM_QCOM_FEATURE_PP_SUPERSET (CAM_QCOM_FEATURE_DENOISE2D|CAM_QCOM_FEATURE_CROP|\ 235066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_QCOM_FEATURE_ROTATION|CAM_QCOM_FEATURE_SHARPNESS|\ 235166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_QCOM_FEATURE_SCALE|CAM_QCOM_FEATURE_CAC|\ 235266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_QCOM_FEATURE_EZTUNE|CAM_QCOM_FEATURE_CPP_TNR|\ 235366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_QCOM_FEATURE_LLVD) 235466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 235566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define CAM_QCOM_FEATURE_PP_PASS_1 CAM_QCOM_FEATURE_PP_SUPERSET 235666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define CAM_QCOM_FEATURE_PP_PASS_2 CAM_QCOM_FEATURE_SCALE | CAM_QCOM_FEATURE_CROP; 235766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 235866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin// Counter clock wise 235966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef enum { 236066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin ROTATE_0 = 1<<0, 236166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin ROTATE_90 = 1<<1, 236266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin ROTATE_180 = 1<<2, 236366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin ROTATE_270 = 1<<3, 236466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_rotation_t; 236566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 236666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct { 236766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_rotation_t rotation; /* jpeg rotation */ 236866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_rotation_t device_rotation; /* device rotation */ 236966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint32_t streamId; 237066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_rotation_info_t; 237166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 237266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef enum { 237366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin FLIP_NONE = 0, /* 00b */ 237466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin FLIP_H = 1, /* 01b */ 237566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin FLIP_V = 2, /* 10b */ 237666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin FLIP_V_H = 3, /* 11b */ 237766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_flip_t; 237866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 237966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct { 238066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint32_t bundle_id; /* bundle id */ 238166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint8_t num_of_streams; /* number of streams in the bundle */ 238266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint32_t stream_ids[MAX_STREAM_NUM_IN_BUNDLE]; /* array of stream ids to be bundled */ 238366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_bundle_config_t; 238466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 238566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef enum { 238666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_ONLINE_REPROCESS_TYPE, /* online reprocess, frames from running streams */ 238766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_OFFLINE_REPROCESS_TYPE, /* offline reprocess, frames from external source */ 238866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_reprocess_type_enum_t; 238966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 239066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct { 239166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint8_t burst_count; 239266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint8_t min_burst_count; 239366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint8_t max_burst_count; 239466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_still_more_t; 239566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 239666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct { 239766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint8_t burst_count; 239866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint8_t output_count; 239966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint8_t flash_bracketing[CAM_MAX_FLASH_BRACKETING]; 240066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint8_t metadata_index; 240166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_chroma_flash_t; 240266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 240366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef enum { 240466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_HDR_MODE_SINGLEFRAME, /* Single frame HDR mode which does only tone mapping */ 240566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_HDR_MODE_MULTIFRAME, /* Multi frame HDR mode which needs two frames with 0.5x and 2x exposure respectively */ 240666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_hdr_mode_enum_t; 240766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 240866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct { 240966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint32_t hdr_enable; 241066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint32_t hdr_need_1x; /* when CAM_QCOM_FEATURE_HDR enabled, indicate if 1x is needed for output */ 241166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_hdr_mode_enum_t hdr_mode; 241266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_hdr_param_t; 241366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 241466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct { 241566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin int32_t output_width; 241666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin int32_t output_height; 241766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_scale_param_t; 241866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 241966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct { 242066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint8_t enable; 242166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint8_t burst_count; 242266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint8_t focus_steps[MAX_AF_BRACKETING_VALUES]; 242366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint8_t output_count; 242466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint32_t meta_max_size; 242566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_af_bracketing_t; 242666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 242766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct { 242866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint8_t enable; 242966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint8_t burst_count; 243066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_flash_bracketing_t; 243166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 243266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct { 243366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint8_t enable; 243466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint8_t burst_count; 243566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint8_t zoom_threshold; 243666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_opti_zoom_t; 243766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 243866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct { 243966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin size_t meta_max_size; 244066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_true_portrait_t; 244166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 244266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef enum { 244366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FLASH_OFF, 244466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FLASH_ON 244566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_flash_value_t; 244666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 244766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct { 244866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_sensor_t sens_type; 244966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_format_t native_format; 245066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_sensor_type_t; 245166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 245266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct { 245366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint32_t result; 245466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint32_t header_size; 245566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint32_t width; 245666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint32_t height; 245766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint8_t data[0]; 245866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_misc_buf_t; 245966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 246066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct { 246166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint32_t misc_buffer_index; 246266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_misc_buf_param_t; 246366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 246466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct { 246566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* reprocess feature mask */ 246666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint32_t feature_mask; 246766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 246866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* individual setting for features to be reprocessed */ 246966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_denoise_param_t denoise2d; 247066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_rect_t input_crop; 247166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_rotation_t rotation; 247266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint32_t flip; 247366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin int32_t sharpness; 247466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin int32_t effect; 247566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_hdr_param_t hdr_param; 247666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_scale_param_t scale_param; 247766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 247866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint8_t zoom_level; 247966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_flash_value_t flash_value; 248066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_misc_buf_param_t misc_buf_param; 248166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint32_t burst_cnt; 248266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint8_t cur_reproc_count; 248366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint8_t total_reproc_count; 248466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_pp_feature_config_t; 248566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 248666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct { 248766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint32_t input_stream_id; 248866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* input source stream type */ 248966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_stream_type_t input_stream_type; 249066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_pp_online_src_config_t; 249166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 249266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct { 249366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* image format */ 249466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_format_t input_fmt; 249566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 249666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* image dimension */ 249766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_dimension_t input_dim; 249866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 249966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* buffer plane information, will be calc based on stream_type, fmt, 250066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin dim, and padding_info(from stream config). Info including: 250166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin offset_x, offset_y, stride, scanline, plane offset */ 250266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_stream_buf_plane_info_t input_buf_planes; 250366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 250466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* number of input reprocess buffers */ 250566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint8_t num_of_bufs; 250666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 250766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* input source type */ 250866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_stream_type_t input_type; 250966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 251066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_pp_offline_src_config_t; 251166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 251266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin/* reprocess stream input configuration */ 251366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct { 251466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* input source config */ 251566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_reprocess_type_enum_t pp_type; 251666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin union { 251766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_pp_online_src_config_t online; 251866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_pp_offline_src_config_t offline; 251966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin }; 252066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 252166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* pp feature config */ 252266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_pp_feature_config_t pp_feature_config; 252366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_stream_reproc_config_t; 252466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 252566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct { 252666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint8_t crop_enabled; 252766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_rect_t input_crop; 252866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_crop_param_t; 252966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 253066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct { 253166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint8_t trigger; 253266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin int32_t trigger_id; 253366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_trigger_t; 253466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 253566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct { 253666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_denoise_param_t denoise2d; 253766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_crop_param_t crop; 253866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint32_t flip; /* 0 means no flip */ 253966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint32_t uv_upsample; /* 0 means no chroma upsampling */ 254066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin int32_t sharpness; /* 0 means no sharpness */ 254166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin int32_t effect; 254266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_rotation_t rotation; 254366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_rotation_t device_rotation; 254466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_per_frame_pp_config_t; 254566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 254666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef enum { 254766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_OPT_STAB_OFF, 254866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_OPT_STAB_ON, 254966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_OPT_STAB_MAX 255066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_optical_stab_modes_t; 255166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 255266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef enum { 255366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FILTER_ARRANGEMENT_RGGB, 255466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FILTER_ARRANGEMENT_GRBG, 255566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FILTER_ARRANGEMENT_GBRG, 255666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FILTER_ARRANGEMENT_BGGR, 255766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 255866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* Sensor is not Bayer; output has 3 16-bit values for each pixel, 255966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * instead of just 1 16-bit value per pixel.*/ 256066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FILTER_ARRANGEMENT_RGB, 256166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin /* Sensor is YUV; SW do not have access to actual RAW, 256266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * output is interleaved UYVY */ 256366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FILTER_ARRANGEMENT_UYVY, 256466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FILTER_ARRANGEMENT_YUYV, 2565d59d4ae1e81b3b4f85c59b75636580830b3f0833Steve Pfetsch CAM_FILTER_ARRANGEMENT_Y 256666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_color_filter_arrangement_t; 256766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 256866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef enum { 256966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_AF_LENS_STATE_STATIONARY, 257066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_AF_LENS_STATE_MOVING, 257166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_af_lens_state_t; 257266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 257366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef enum { 257466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_AWB_STATE_INACTIVE, 257566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_AWB_STATE_SEARCHING, 257666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_AWB_STATE_CONVERGED, 257766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_AWB_STATE_LOCKED 257866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_awb_state_t; 257966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 258066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef enum { 258166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FOCUS_UNCALIBRATED, 258266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FOCUS_APPROXIMATE, 258366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_FOCUS_CALIBRATED 258466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_focus_calibration_t; 258566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 258666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef enum { 258766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_TEST_PATTERN_OFF, 258866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_TEST_PATTERN_SOLID_COLOR, 258966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_TEST_PATTERN_COLOR_BARS, 259066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_TEST_PATTERN_COLOR_BARS_FADE_TO_GRAY, 259166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_TEST_PATTERN_PN9, 259266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_TEST_PATTERN_CUSTOM1 = 256 259366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_test_pattern_mode_t; 259466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 259566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct { 259666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_test_pattern_mode_t mode; 259766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin int32_t r; 259866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin int32_t gr; 259966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin int32_t gb; 260066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin int32_t b; 260166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_test_pattern_data_t; 260266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 260366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef enum { 260466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_AWB_D50, 260566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_AWB_D65, 260666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_AWB_D75, 260766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_AWB_A, 260866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_AWB_CUSTOM_A, 260966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_AWB_WARM_FLO, 261066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_AWB_COLD_FLO, 261166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_AWB_CUSTOM_FLO, 261266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_AWB_NOON, 261366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_AWB_CUSTOM_DAYLIGHT, 261466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_AWB_INVALID_ALL_LIGHT, 261566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_illuminat_t; 261666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 261766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef enum { 261866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin LEGACY_RAW, 261966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin MIPI_RAW, 262066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_opaque_raw_format_t; 262166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 262266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef enum { 262366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_PERF_NORMAL = 0, 262466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_PERF_HIGH, 262566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_PERF_HIGH_PERFORMANCE, 262666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_perf_mode_t; 262766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 262866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct { 262966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin float real_gain; 263066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin float lux_idx; 263166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin float exp_time; 263266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_intf_aec_t; 263366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 263466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define CAM_INTF_AEC_DATA_MAX (10) 263566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 263666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct { 263766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint32_t frame_count; 263866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_intf_aec_t aec_data[CAM_INTF_AEC_DATA_MAX]; 263966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_intf_meta_imglib_input_aec_t; 264066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 264166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct { 264266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin cam_intf_meta_imglib_input_aec_t meta_imglib_input_aec; 264366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_intf_meta_imglib_t; 264466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 264566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef struct { 264666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint8_t previewOnly; 264766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint64_t value; 264866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_intf_parm_manual_3a_t; 264966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 265066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef enum { 265166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_MANUAL_CAPTURE_TYPE_OFF, /*Manual capture mode disabled*/ 265266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_MANUAL_CAPTURE_TYPE_1, /*Normal ZSL capture with limited 3A settings*/ 265366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_MANUAL_CAPTURE_TYPE_2, /*Low light capture mode */ 265466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_MANUAL_CAPTURE_TYPE_3, /*Offline RAW processing */ 265566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_MANUAL_CAPTURE_TYPE_4 /*Offline RAW processing with multiple RAW*/ 265666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_manual_capture_type; 265766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 265866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin/*********************************** 265966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin* ENUM definition for custom parameter type 266066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin************************************/ 266166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjintypedef enum { 266266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_CUSTOM_PARM_EXAMPLE, 266366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin CAM_CUSTOM_PARM_MAX, 266466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} cam_custom_parm_type; 266566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#endif /* __QCAMERA_TYPES_H__ */ 2666