| /* Copyright (c) 2011 Samsung Electronics Co, Ltd. |
| * |
| * This program is free software; you can redistribute it and/or modify |
| * it under the terms of the GNU General Public License version 2 as |
| * published by the Free Software Foundation. |
| |
| * |
| |
| * Alternatively, Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| /*2012.04.18 Version 0.1 Initial Release*/ |
| /*2012.04.23 Version 0.2 Added static metadata (draft)*/ |
| /*2012.07.04 Version 0.3 Applied google's undocumented changes (draft)*/ |
| /*2012.07.11 Version 0.4 Added FD parameters */ |
| /*2012.07.27 Version 0.5 Modified HSB control and DM */ |
| /*2012.08.28 Version 0.6 Added AA_SCENE_MODE_NIGHT_CAPTURE */ |
| /*2012.10.15 Version 0.7 Added contrast in colorcorrection */ |
| /*2012.10.22 Version 0.8 Added analogGain and digitalGain in sensor control */ |
| /*2012.10.30 Version 0.9 Added disTargetAddress in camera2_scaler_uctl */ |
| /*2012.10.31 Version 0.10 Added user-defined metadata for 3A */ |
| /*2012.11.27 Version 0.11 Added image effects */ |
| /*2012.12.10 Version 0.12 Modified aa_aemode */ |
| |
| #ifndef FIMC_IS_METADATA_H_ |
| #define FIMC_IS_METADATA_H_ |
| |
| #ifndef _LINUX_TYPES_H |
| typedef unsigned char uint8_t; |
| typedef unsigned short uint16_t; |
| typedef signed short int16_t; |
| typedef signed int int32_t; |
| typedef unsigned int uint32_t; |
| /*typedef unsigned long long uint64_t;*/ |
| #endif |
| |
| struct rational { |
| int32_t num; |
| int32_t den; |
| }; |
| |
| #define CAMERA2_MAX_AVAILABLE_MODE 21 |
| #define CAMERA2_MAX_FACES 16 |
| #define CAMERA2_MAX_VENDER_LENGTH 400 |
| #define CAMERA2_MAX_IPC_VENDER_LENGTH 1056 |
| #ifdef EXYNOS7885 |
| #define CAPTURE_NODE_MAX 6 |
| #else |
| #define CAPTURE_NODE_MAX 5 |
| #endif |
| |
| #define CAMERA2_MAX_PDAF_MULTIROI_COLUMN 13 |
| #define CAMERA2_MAX_PDAF_MULTIROI_ROW 9 |
| #define CAMERA2_MAX_UCTL_VENDER_LENGTH 32 |
| |
| #define CAMERA2_MAX_UCTL_VENDOR2_LENGTH 400 |
| #define CAMERA2_MAX_UDM_VENDOR2_LENGTH 32 |
| #define OPEN_MAGIC_NUMBER 0x01020304 |
| #define SHOT_MAGIC_NUMBER 0x23456789 |
| |
| #include "ExynosCameraConfig.h" |
| |
| /* |
| *controls/dynamic metadata |
| */ |
| |
| /* android.request */ |
| |
| enum metadata_mode { |
| METADATA_MODE_NONE, |
| METADATA_MODE_FULL |
| }; |
| |
| enum is_subscenario_id { |
| ISS_SUB_SCENARIO_STILL_PREVIEW = 0, /* 0: still preview */ |
| ISS_SUB_SCENARIO_VIDEO = 1, /* 1: video */ |
| ISS_SUB_SCENARIO_DUAL_STILL = 2, /* 2: dual still preview */ |
| ISS_SUB_SCENARIO_DUAL_VIDEO = 3, /* 3: dual video */ |
| ISS_SUB_SCENARIO_VIDEO_HIGH_SPEED = 4, /* 4: video high speed */ |
| ISS_SUB_SCENARIO_DUAL_PREVIEW = ISS_SUB_SCENARIO_VIDEO_HIGH_SPEED, |
| ISS_SUB_SCENARIO_STILL_CAPTURE = 5, /* 5: still capture */ |
| ISS_SUB_SCENARIO_FHD_60FPS = 6, /* 6: video FHD 60fps */ |
| ISS_SUB_SCENARIO_UHD_30FPS = 7, /* 7: video UHD 30fps */ |
| ISS_SUB_SCENARIO_WVGA_300FPS = 8, /* 8: video WVGA 300fps */ |
| ISS_SUB_SCENARIO_STILL_PREVIEW_WDR_ON = 9, |
| ISS_SUB_SCENARIO_VIDEO_WDR_ON = 10, |
| ISS_SUB_SCENARIO_STILL_CAPTURE_WDR_ON = 11, |
| ISS_SUB_SCENARIO_UHD_30FPS_WDR_ON = 12, |
| ISS_SUB_SCENARIO_STILL_CAPTURE_ZOOM = 13, |
| ISS_SUB_SCENARIO_STILL_CAPTURE_ZOOM_INDOOR = 14, |
| ISS_SUB_SCENARIO_STILL_CAPTURE_ZOOM_OUTDOOR = 15, |
| ISS_SUB_SCENARIO_STILL_CAPTURE_WDR_ON_ZOOM = 16, |
| ISS_SUB_SCENARIO_STILL_CAPTURE_WDR_ON_ZOOM_INDOOR = 17, |
| ISS_SUB_SCENARIO_STILL_CAPTURE_WDR_ON_ZOOM_OUTDOOR = 18, |
| ISS_SUB_SCENARIO_STILL_CAPTURE_LLS = 19, |
| ISS_SUB_SCENARIO_MERGED_STILL_CAPTURE_WDR_AUTO = ISS_SUB_SCENARIO_STILL_CAPTURE_LLS, |
| ISS_SUB_SCENARIO_STILL_CAPTURE_WDR_ON_LLS = 20, |
| ISS_SUB_SCENARIO_MERGED_STILL_CAPTURE_WDR_ON = ISS_SUB_SCENARIO_STILL_CAPTURE_WDR_ON_LLS, |
| ISS_SUB_SCENARIO_STILL_CAPTURE_WDR_AUTO_ZOOM = 21, |
| ISS_SUB_SCENARIO_STILL_CAPTURE_WDR_AUTO_ZOOM_INDOOR = 22, |
| ISS_SUB_SCENARIO_STILL_CAPTURE_WDR_AUTO_ZOOM_OUTDOOR = 23, |
| ISS_SUB_SCENARIO_STILL_CAPTURE_WDR_AUTO = 24, |
| ISS_SUB_SCENARIO_VIDEO_WDR_AUTO = 25, |
| ISS_SUB_SCENARIO_STILL_PREVIEW_WDR_AUTO = 26, |
| ISS_SUB_SCENARIO_FHD_240FPS = 27, |
| ISS_SUB_SCENARIO_MERGED_STILL_CAPTURE = 28, |
| ISS_SUB_SCENARIO_STILL_CAPTURE_SHARPEN = 29, |
| ISS_SUB_SCENARIO_STILL_CAPTURE_LONG = 30, |
| ISS_SUB_SCENARIO_STILL_CAPTURE_MANUAL_ISO = 31, |
| ISS_SUB_SCENARIO_STILL_PREVIEW_BINNING = 40, /* 40: binning mode for low power */ |
| ISS_SUB_SCENARIO_STILL_CAPTURE_BDS = 41, |
| ISS_SUB_SCENARIO_STILL_PREVIEW_LLS = 42, |
| |
| ISS_SUB_SCENARIO_FRONT_VT1 = 31, /* 31: front camera VT1 */ |
| ISS_SUB_SCENARIO_FRONT_VT2 = 32, /* 32: front camera VT2 */ |
| ISS_SUB_SCENARIO_FRONT_SMART_STAY = 33, /* 33: front camera smart stay */ |
| ISS_SUB_SCENARIO_FRONT_PANORAMA = 34, /* 34: front camera front panorama */ |
| ISS_SUB_SCENARIO_FRONT_C2_OFF_STILL_PREVIEW = 35, /* 35: C2 off front still preview */ |
| ISS_SUB_SCENARIO_FRONT_C2_OFF_STILL_CAPTURE = 36, /* 36: C2 off front still capture */ |
| ISS_SUB_SCENARIO_FRONT_C2_OFF_VIDEO = 37, /* 37: C2 off front video */ |
| ISS_SUB_SCENARIO_FRONT_VT4 = 38, /* 38: front camera VT4 */ |
| ISS_SUB_SCENARIO_FRONT_VT1_STILL_CAPTURE = 39, /* 39: front camera VT1 still capture */ |
| ISS_SUB_SCENARIO_FRONT_STILL_PREVIEW_BINNING = 40, /* 40: front camera binning mode for low power */ |
| ISS_SUB_SCENARIO_FRONT_COLOR_IRIS_PREVIEW = 43, /* 43: front camera Color Iris preview */ |
| |
| ISS_SUB_SCENARIO_LIVE_OUTFOCUS_PREVIEW = 44, |
| ISS_SUB_SCENARIO_LIVE_OUTFOCUS_CAPTURE = 45, |
| ISS_SUB_SCENARIO_LIVE_OUTFOCUS_VIDEO = 46, |
| ISS_SUB_END, |
| }; |
| |
| enum is_scenario_is { |
| FIMC_IS_SCENARIO_SWVDIS = 1, |
| FIMC_IS_SCENARIO_COLOR_IRIS = 2, |
| FIMC_IS_SCENARIO_AUTO_DUAL = 3, |
| }; |
| |
| enum available_capabilities { |
| REQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLE = 0, |
| REQUEST_AVAILABLE_CAPABILITIES_MANUAL_SENSOR, |
| REQUEST_AVAILABLE_CAPABILITIES_MANUAL_POST_PROCESSING, |
| REQUEST_AVAILABLE_CAPABILITIES_RAW, |
| REQUEST_AVAILABLE_CAPABILITIES_PRIVATE_REPROCESSING, |
| REQUEST_AVAILABLE_CAPABILITIES_READ_SENSOR_SETTINGS, |
| REQUEST_AVAILABLE_CAPABILITIES_BURST_CAPTURE, |
| REQUEST_AVAILABLE_CAPABILITIES_YUV_REPROCESSING, |
| REQUEST_AVAILABLE_CAPABILITIES_DEPTH_OUTPUT, |
| REQUEST_AVAILABLE_CAPABILITIES_CONSTRAINED_HIGH_SPEED_VIDEO, |
| }; |
| |
| struct camera2_request_ctl { |
| uint32_t frameCount; |
| uint32_t id; |
| enum metadata_mode metadataMode; |
| |
| /* vendor feature */ |
| uint32_t vendor_frameCount; |
| }; |
| |
| struct camera2_request_dm { |
| uint32_t frameCount; |
| uint32_t id; |
| enum metadata_mode metadataMode; |
| uint8_t pipelineDepth; |
| uint32_t vendor_frameCount; |
| }; |
| |
| struct camera2_request_sm { |
| uint32_t maxNumOutputStreams[3]; |
| uint32_t maxNumOutputRaw; |
| uint32_t maxNumOutputProc; |
| uint32_t maxNumOutputProcStalling; |
| uint32_t maxNumInputStreams; |
| uint8_t pipelineMaxDepth; |
| uint32_t partialResultCount; |
| uint8_t availableCapabilities[CAMERA2_MAX_AVAILABLE_MODE]; |
| uint32_t availableRequestKeys[CAMERA2_MAX_AVAILABLE_MODE]; |
| uint32_t availableResultKeys[CAMERA2_MAX_AVAILABLE_MODE]; |
| uint32_t availableCharacteristicsKeys[CAMERA2_MAX_AVAILABLE_MODE]; |
| }; |
| |
| struct camera2_entry_ctl { |
| uint32_t lowIndexParam; |
| uint32_t highIndexParam; |
| uint32_t parameter[2048]; |
| }; |
| |
| struct camera2_entry_dm { |
| uint32_t lowIndexParam; |
| uint32_t highIndexParam; |
| }; |
| |
| /* android.lens */ |
| |
| enum optical_stabilization_mode { |
| OPTICAL_STABILIZATION_MODE_OFF = 0, |
| OPTICAL_STABILIZATION_MODE_ON = 1, |
| |
| /* vendor feature */ |
| OPTICAL_STABILIZATION_MODE_STILL = 100, // Still mode |
| OPTICAL_STABILIZATION_MODE_STILL_ZOOM, // Still Zoom mode |
| OPTICAL_STABILIZATION_MODE_VIDEO, // Recording mode |
| OPTICAL_STABILIZATION_MODE_SINE_X, // factory mode x |
| OPTICAL_STABILIZATION_MODE_SINE_Y, // factory mode y |
| OPTICAL_STABILIZATION_MODE_CENTERING, // Centering mode |
| OPTICAL_STABILIZATION_MODE_VDIS, // VDIS mode |
| OPTICAL_STABILIZATION_MODE_VIDEO_RATIO_4_3, // Recording mode(VGA) |
| }; |
| |
| enum lens_state { |
| LENS_STATE_STATIONARY = 0, |
| LENS_STATE_MOVING, |
| }; |
| |
| |
| enum lens_focus_distance_calibration { |
| LENS_INFO_FOCUS_DISTANCE_CALIBRATION_UNCALIBRATED = 0, |
| LENS_INFO_FOCUS_DISTANCE_CALIBRATION_APPROXIMATE, |
| LENS_INFO_FOCUS_DISTANCE_CALIBRATION_CALIBRATED, |
| }; |
| |
| enum lens_facing { |
| LENS_FACING_BACK, |
| LENS_FACING_FRONT, |
| LENS_FACING_EXTERNAL, |
| }; |
| |
| struct camera2_lens_ctl { |
| float aperture; |
| float filterDensity; |
| float focalLength; |
| float focusDistance; |
| enum optical_stabilization_mode opticalStabilizationMode; |
| }; |
| |
| struct camera2_lens_dm { |
| float aperture; |
| float filterDensity; |
| float focalLength; |
| float focusDistance; |
| float focusRange[2]; |
| enum optical_stabilization_mode opticalStabilizationMode; |
| enum lens_state state; |
| float poseRotation[4]; |
| float poseTranslation[3]; |
| float intrinsicCalibration[5]; |
| float radialDistortion[6]; |
| }; |
| |
| struct camera2_lens_sm { |
| float availableApertures[CAMERA2_MAX_AVAILABLE_MODE]; |
| float availableFilterDensities[CAMERA2_MAX_AVAILABLE_MODE]; |
| float availableFocalLength[CAMERA2_MAX_AVAILABLE_MODE]; |
| uint8_t availableOpticalStabilization[CAMERA2_MAX_AVAILABLE_MODE]; |
| float hyperfocalDistance; |
| float minimumFocusDistance; |
| uint32_t shadingMapSize[2]; |
| enum lens_focus_distance_calibration focusDistanceCalibration; |
| enum lens_facing facing; |
| float poseRotation[4]; |
| float poseTranslation[3]; |
| float intrinsicCalibration[5]; |
| float radialDistortion[6]; |
| }; |
| |
| /* android.sensor */ |
| |
| enum sensor_test_pattern_mode { |
| SENSOR_TEST_PATTERN_MODE_OFF = 1, |
| SENSOR_TEST_PATTERN_MODE_SOLID_COLOR, |
| SENSOR_TEST_PATTERN_MODE_COLOR_BARS, |
| SENSOR_TEST_PATTERN_MODE_COLOR_BARS_FADE_TO_GRAY, |
| SENSOR_TEST_PATTERN_MODE_PN9, |
| SENSOR_TEST_PATTERN_MODE_CUSTOM1 = 257, |
| }; |
| |
| enum sensor_colorfilterarrangement { |
| SENSOR_COLORFILTERARRANGEMENT_RGGB, |
| SENSOR_COLORFILTERARRANGEMENT_GRBG, |
| SENSOR_COLORFILTERARRANGEMENT_GBRG, |
| SENSOR_COLORFILTERARRANGEMENT_BGGR, |
| SENSOR_COLORFILTERARRANGEMENT_RGB |
| }; |
| |
| enum sensor_timestamp_calibration { |
| SENSOR_INFO_TIMESTAMP_CALIBRATION_UNCALIBRATED = 0, |
| SENSOR_INFO_TIMESTAMP_CALIBRATION_CALIBRATED, |
| }; |
| |
| enum sensor_lensshading_applied { |
| SENSOR_INFO_LENS_SHADING_APPLIED_FALSE = 0, |
| SENSOR_INFO_LENS_SHADING_APPLIED_TRUE, |
| }; |
| |
| enum sensor_ref_illuminant { |
| SENSOR_ILLUMINANT_DAYLIGHT = 1, |
| SENSOR_ILLUMINANT_FLUORESCENT = 2, |
| SENSOR_ILLUMINANT_TUNGSTEN = 3, |
| SENSOR_ILLUMINANT_FLASH = 4, |
| SENSOR_ILLUMINANT_FINE_WEATHER = 9, |
| SENSOR_ILLUMINANT_CLOUDY_WEATHER = 10, |
| SENSOR_ILLUMINANT_SHADE = 11, |
| SENSOR_ILLUMINANT_DAYLIGHT_FLUORESCENT = 12, |
| SENSOR_ILLUMINANT_DAY_WHITE_FLUORESCENT = 13, |
| SENSOR_ILLUMINANT_COOL_WHITE_FLUORESCENT = 14, |
| SENSOR_ILLUMINANT_WHITE_FLUORESCENT = 15, |
| SENSOR_ILLUMINANT_STANDARD_A = 17, |
| SENSOR_ILLUMINANT_STANDARD_B = 18, |
| SENSOR_ILLUMINANT_STANDARD_C = 19, |
| SENSOR_ILLUMINANT_D55 = 20, |
| SENSOR_ILLUMINANT_D65 = 21, |
| SENSOR_ILLUMINANT_D75 = 22, |
| SENSOR_ILLUMINANT_D50 = 23, |
| SENSOR_ILLUMINANT_ISO_STUDIO_TUNGSTEN = 24 |
| }; |
| |
| struct camera2_sensor_ctl { |
| uint64_t exposureTime; |
| uint64_t frameDuration; |
| uint32_t sensitivity; |
| int32_t testPatternData[4]; |
| enum sensor_test_pattern_mode testPatternMode; |
| }; |
| |
| struct camera2_sensor_dm { |
| uint64_t exposureTime; |
| uint64_t frameDuration; |
| uint32_t sensitivity; |
| uint64_t timeStamp; |
| float temperature; |
| struct rational neutralColorPoint[3]; |
| double noiseProfile[4][2]; |
| float profileHueSatMap[2][2][2][3]; |
| float profileToneCurve[32][2]; |
| float greenSplit; |
| int32_t testPatternData[4]; |
| enum sensor_test_pattern_mode testPatternMode; |
| uint64_t rollingShutterSkew; |
| }; |
| |
| struct camera2_sensor_sm { |
| uint32_t activeArraySize[4]; |
| uint32_t preCorrectionActiveArraySize[4]; |
| uint32_t sensitivityRange[2]; |
| enum sensor_colorfilterarrangement colorFilterArrangement; |
| uint64_t exposureTimeRange[2]; |
| uint64_t maxFrameDuration; |
| float physicalSize[2]; |
| uint32_t pixelArraySize[2]; |
| uint32_t whiteLevel; |
| enum sensor_timestamp_calibration timestampCalibration; |
| enum sensor_lensshading_applied lensShadingApplied; |
| enum sensor_ref_illuminant referenceIlluminant1; |
| enum sensor_ref_illuminant referenceIlluminant2; |
| struct rational calibrationTransform1[9]; |
| struct rational calibrationTransform2[9]; |
| struct rational colorTransform1[9]; |
| struct rational colorTransform2[9]; |
| struct rational forwardMatrix1[9]; |
| struct rational forwardMatrix2[9]; |
| struct rational baseGainFactor; |
| uint32_t blackLevelPattern[4]; |
| uint32_t maxAnalogSensitivity; |
| uint32_t orientation; |
| uint32_t profileHueSatMapDimensions[3]; |
| uint32_t availableTestPatternModes[CAMERA2_MAX_AVAILABLE_MODE]; |
| }; |
| |
| |
| |
| /* android.flash */ |
| |
| enum flash_mode { |
| CAM2_FLASH_MODE_NONE = 0, |
| CAM2_FLASH_MODE_OFF = 1, |
| CAM2_FLASH_MODE_SINGLE, |
| CAM2_FLASH_MODE_TORCH, |
| |
| /* vendor feature */ |
| CAM2_FLASH_MODE_BEST = 100, |
| CAM2_FLASH_MODE_LCD = 101, |
| }; |
| |
| enum flash_state { |
| FLASH_STATE_UNAVAILABLE = 0, |
| FLASH_STATE_CHARGING, |
| FLASH_STATE_READY, |
| FLASH_STATE_FIRED, |
| FLASH_STATE_PARTIAL, |
| }; |
| |
| enum capture_state { |
| CAPTURE_STATE_NONE = 0, |
| CAPTURE_STATE_FLASH = 1, |
| CAPTURE_STATE_HDR_DARK = 12, |
| CAPTURE_STATE_HDR_NORMAL = 13, |
| CAPTURE_STATE_HDR_BRIGHT = 14, |
| CAPTURE_STATE_ZSL_LIKE = 20, |
| CAPTURE_STATE_STREAM_ON_CAPTURE = 30, |
| CAPTURE_STATE_RAW_CAPTURE = 100, |
| }; /* firingStable state */ |
| |
| enum flash_info_available { |
| FLASH_INFO_AVAILABLE_FALSE = 0, |
| FLASH_INFO_AVAILABLE_TRUE, |
| }; |
| |
| struct camera2_flash_ctl { |
| uint32_t firingPower; |
| uint64_t firingTime; |
| enum flash_mode flashMode; |
| }; |
| |
| struct camera2_flash_dm { |
| uint32_t firingPower; |
| uint64_t firingTime; |
| enum flash_mode flashMode; |
| enum flash_state flashState; |
| |
| /* vendor feature */ |
| uint32_t vendor_firingStable; |
| uint32_t vendor_decision; |
| uint32_t vendor_flashReady; |
| uint32_t vendor_flashOffReady; |
| }; |
| |
| struct camera2_flash_sm { |
| enum flash_info_available available; |
| uint64_t chargeDuration; |
| uint8_t colorTemperature; |
| uint8_t maxEnergy; |
| }; |
| |
| |
| /* android.hotpixel */ |
| |
| enum processing_mode { |
| PROCESSING_MODE_OFF = 1, |
| PROCESSING_MODE_FAST, |
| PROCESSING_MODE_HIGH_QUALITY, |
| PROCESSING_MODE_MINIMAL, |
| |
| /* vendor feature */ |
| PROCESSING_MODE_MANUAL = 100, |
| }; |
| |
| |
| struct camera2_hotpixel_ctl { |
| enum processing_mode mode; |
| }; |
| |
| struct camera2_hotpixel_dm { |
| enum processing_mode mode; |
| }; |
| |
| struct camera2_hotpixel_sm { |
| uint8_t availableHotPixelModes[CAMERA2_MAX_AVAILABLE_MODE]; |
| }; |
| |
| |
| |
| /* android.demosaic */ |
| |
| enum demosaic_processing_mode { |
| DEMOSAIC_PROCESSING_MODE_FAST = 1, |
| DEMOSAIC_PROCESSING_MODE_HIGH_QUALITY |
| }; |
| |
| struct camera2_demosaic_ctl { |
| enum demosaic_processing_mode mode; |
| }; |
| |
| struct camera2_demosaic_dm { |
| enum demosaic_processing_mode mode; |
| }; |
| |
| |
| |
| /* android.noiseReduction */ |
| |
| struct camera2_noisereduction_ctl { |
| enum processing_mode mode; |
| uint8_t strength; |
| }; |
| |
| struct camera2_noisereduction_dm { |
| enum processing_mode mode; |
| uint8_t strength; |
| }; |
| |
| struct camera2_noisereduction_sm { |
| uint8_t availableNoiseReductionModes[CAMERA2_MAX_AVAILABLE_MODE]; |
| }; |
| |
| |
| |
| /* android.shading */ |
| |
| struct camera2_shading_ctl { |
| enum processing_mode mode; |
| uint8_t strength; /* Range: 1 ~ 10 */ // TODO: [API32] not implemented yet |
| }; |
| |
| struct camera2_shading_dm { |
| enum processing_mode mode; |
| uint8_t strength; /* Range: 1 ~ 10 */ // TODO: [API32] not implemented yet |
| }; |
| |
| struct camera2_shading_sm { |
| enum processing_mode availableModes[CAMERA2_MAX_AVAILABLE_MODE]; |
| }; |
| |
| |
| /* android.colorCorrection */ |
| |
| enum colorcorrection_mode { |
| COLORCORRECTION_MODE_TRANSFORM_MATRIX = 1, |
| COLORCORRECTION_MODE_FAST, |
| COLORCORRECTION_MODE_HIGH_QUALITY, |
| }; |
| |
| |
| struct camera2_colorcorrection_ctl { |
| enum colorcorrection_mode mode; |
| struct rational transform[9]; |
| float gains[4]; |
| enum processing_mode aberrationCorrectionMode; |
| |
| /* vendor feature */ |
| uint32_t vendor_hue; |
| uint32_t vendor_saturation; |
| uint32_t vendor_brightness; |
| uint32_t vendor_contrast; |
| }; |
| |
| struct camera2_colorcorrection_dm { |
| enum colorcorrection_mode mode; |
| struct rational transform[9]; |
| float gains[4]; |
| enum processing_mode aberrationCorrectionMode; |
| |
| /* vendor feature */ |
| uint32_t vendor_hue; |
| uint32_t vendor_saturation; |
| uint32_t vendor_brightness; |
| uint32_t vendor_contrast; |
| }; |
| |
| struct camera2_colorcorrection_sm { |
| uint8_t availableModes[CAMERA2_MAX_AVAILABLE_MODE]; |
| uint8_t availableAberrationCorrectionModes[CAMERA2_MAX_AVAILABLE_MODE]; |
| |
| /* vendor feature */ |
| uint32_t vendor_hueRange[2]; |
| uint32_t vendor_saturationRange[2]; |
| uint32_t vendor_brightnessRange[2]; |
| uint32_t vendor_contrastRange[2]; |
| }; |
| |
| |
| /* android.tonemap */ |
| |
| enum tonemap_mode { |
| TONEMAP_MODE_CONTRAST_CURVE = 1, |
| TONEMAP_MODE_FAST, |
| TONEMAP_MODE_HIGH_QUALITY, |
| TONEMAP_MODE_GAMMA_VALUE, |
| TONEMAP_MODE_PRESET_CURVE, |
| }; |
| |
| enum tonemap_presetCurve { |
| TONEMAP_PRESET_CURVE_SRGB, |
| TONEMAP_PRESET_CURVE_REC709, |
| }; |
| |
| struct camera2_tonemap_ctl { |
| float curveBlue[64]; |
| float curveGreen[64]; |
| float curveRed[64]; |
| float curve; |
| enum tonemap_mode mode; |
| float gamma; |
| enum tonemap_presetCurve presetCurve; |
| }; |
| |
| struct camera2_tonemap_dm { |
| float curveBlue[64]; |
| float curveGreen[64]; |
| float curveRed[64]; |
| float curve; |
| enum tonemap_mode mode; |
| float gamma; |
| enum tonemap_presetCurve presetCurve; |
| }; |
| |
| struct camera2_tonemap_sm { |
| uint32_t maxCurvePoints; |
| uint8_t availableToneMapModes[CAMERA2_MAX_AVAILABLE_MODE]; |
| }; |
| |
| /* android.edge */ |
| |
| struct camera2_edge_ctl { |
| enum processing_mode mode; |
| uint8_t strength; |
| }; |
| |
| struct camera2_edge_dm { |
| enum processing_mode mode; |
| uint8_t strength; |
| }; |
| |
| struct camera2_edge_sm { |
| uint8_t availableEdgeModes[CAMERA2_MAX_AVAILABLE_MODE]; |
| }; |
| |
| |
| |
| /* android.scaler */ |
| |
| struct camera2_scaler_ctl { |
| uint32_t cropRegion[4]; |
| }; |
| |
| struct camera2_scaler_dm { |
| uint32_t cropRegion[4]; |
| }; |
| |
| enum available_stream_configurations { |
| SCALER_AVAILABLE_STREAM_CONFIGURATIONS_OUTPUT = 0, |
| SCALER_AVAILABLE_STREAM_CONFIGURATIONS_INPUT, |
| }; |
| |
| enum scaler_cropping_type { |
| SCALER_CROPPING_TYPE_CENTER_ONLY = 0, |
| SCALER_CROPPING_TYPE_FREEFORM, |
| }; |
| |
| struct camera2_scaler_sm { |
| float availableMaxDigitalZoom; |
| int32_t availableInputOutputFormatsMap; |
| uint8_t availableStreamConfigurations[CAMERA2_MAX_AVAILABLE_MODE][4]; |
| uint64_t availableMinFrameDurations[CAMERA2_MAX_AVAILABLE_MODE][4]; |
| uint64_t availableStallDurations[CAMERA2_MAX_AVAILABLE_MODE][4]; |
| int32_t streamConfigurationMap; |
| enum scaler_cropping_type croppingType; |
| }; |
| |
| /* android.jpeg */ |
| struct camera2_jpeg_ctl { |
| uint8_t gpsLocation; |
| double gpsCoordinates[3]; |
| uint8_t gpsProcessingMethod[32]; |
| uint64_t gpsTimestamp; |
| uint32_t orientation; |
| uint8_t quality; |
| uint8_t thumbnailQuality; |
| uint32_t thumbnailSize[2]; |
| }; |
| |
| struct camera2_jpeg_dm { |
| uint8_t gpsLocation; |
| double gpsCoordinates[3]; |
| uint8_t gpsProcessingMethod[32]; |
| uint64_t gpsTimestamp; |
| uint32_t orientation; |
| uint8_t quality; |
| uint32_t size; |
| uint8_t thumbnailQuality; |
| uint32_t thumbnailSize[2]; |
| }; |
| |
| struct camera2_jpeg_sm { |
| uint32_t availableThumbnailSizes[8][2]; |
| uint32_t maxSize; |
| }; |
| |
| /* android.statistics */ |
| |
| enum facedetect_mode { |
| FACEDETECT_MODE_OFF = 1, |
| FACEDETECT_MODE_SIMPLE, |
| FACEDETECT_MODE_FULL |
| }; |
| |
| enum stats_mode { |
| STATS_MODE_OFF = 1, |
| STATS_MODE_ON |
| }; |
| |
| |
| enum stats_scene_flicker { |
| STATISTICS_SCENE_FLICKER_NONE = 1, |
| STATISTICS_SCENE_FLICKER_50HZ, |
| STATISTICS_SCENE_FLICKER_60HZ, |
| }; |
| |
| enum stats_lowlightmode { |
| STATE_LLS_LEVEL_ZSL = 0, |
| STATE_LLS_LEVEL_LOW = 1, |
| STATE_LLS_LEVEL_HIGH = 2, |
| STATE_LLS_LEVEL_SIS = 3, |
| STATE_LLS_LEVEL_ZSL_LIKE = 4, |
| STATE_LLS_LEVEL_ZSL_LIKE1 = 7, |
| STATE_LLS_LEVEL_SHARPEN_SINGLE = 8, |
| STATE_LLS_MANUAL_ISO = 9, |
| STATE_LLS_LEVEL_FLASH = 16, |
| STATE_LLS_LEVEL_MULTI_MERGE_2 = 18, |
| STATE_LLS_LEVEL_MULTI_MERGE_3 = 19, |
| STATE_LLS_LEVEL_MULTI_MERGE_4 = 20, |
| STATE_LLS_LEVEL_MULTI_PICK_2 = 34, |
| STATE_LLS_LEVEL_MULTI_PICK_3 = 35, |
| STATE_LLS_LEVEL_MULTI_PICK_4 = 36, |
| STATE_LLS_LEVEL_MULTI_MERGE_INDICATOR_2 = 50, |
| STATE_LLS_LEVEL_MULTI_MERGE_INDICATOR_3 = 51, |
| STATE_LLS_LEVEL_MULTI_MERGE_INDICATOR_4 = 52, |
| STATE_LLS_LEVEL_FLASH_2 = 66, |
| STATE_LLS_LEVEL_FLASH_3 = 67, |
| STATE_LLS_LEVEL_FLASH_4 = 68, |
| STATE_LLS_LEVEL_MULTI_MERGE_INDICATOR_LOW_2 = 82, |
| STATE_LLS_LEVEL_MULTI_MERGE_INDICATOR_LOW_3 = 83, |
| STATE_LLS_LEVEL_MULTI_MERGE_INDICATOR_LOW_4 = 84, |
| STATE_LLS_LEVEL_FLASH_LOW_2 = 98, |
| STATE_LLS_LEVEL_FLASH_LOW_3 = 99, |
| STATE_LLS_LEVEL_FLASH_LOW_4 = 100, |
| STATE_LLS_LEVEL_DUMMY = 150, |
| }; |
| |
| enum stats_wdrAutoState { |
| STATE_WDR_AUTO_OFF = 1, |
| STATE_WDR_AUTO_REQUIRED = 2, |
| }; |
| |
| struct camera2_stats_ctl { |
| enum facedetect_mode faceDetectMode; |
| enum stats_mode histogramMode; |
| enum stats_mode sharpnessMapMode; |
| enum stats_mode hotPixelMapMode; |
| enum stats_mode lensShadingMapMode; |
| }; |
| |
| |
| struct camera2_stats_dm { |
| enum facedetect_mode faceDetectMode; |
| uint32_t faceIds[CAMERA2_MAX_FACES]; |
| uint32_t faceLandmarks[CAMERA2_MAX_FACES][6]; |
| uint32_t faceRectangles[CAMERA2_MAX_FACES][4]; |
| uint8_t faceScores[CAMERA2_MAX_FACES]; |
| uint32_t faceSrcImageSize[2]; |
| uint32_t faces[CAMERA2_MAX_FACES-2]; |
| uint32_t histogram[3 * 256]; |
| enum stats_mode histogramMode; |
| int32_t sharpnessMap[2][2][3]; |
| enum stats_mode sharpnessMapMode; |
| uint8_t lensShadingCorrectionMap; |
| float lensShadingMap[2][2][4]; |
| enum stats_scene_flicker sceneFlicker; |
| enum stats_mode hotPixelMapMode; |
| int32_t hotPixelMap[CAMERA2_MAX_AVAILABLE_MODE][2]; |
| enum stats_mode lensShadingMapMode; |
| |
| /* vendor feature */ |
| enum stats_lowlightmode vendor_LowLightMode; |
| uint32_t vendor_lls_tuning_set_index; |
| uint32_t vendor_lls_brightness_index; |
| enum stats_wdrAutoState vendor_wdrAutoState; |
| }; |
| |
| |
| struct camera2_stats_sm { |
| uint8_t availableFaceDetectModes[CAMERA2_MAX_AVAILABLE_MODE]; |
| uint32_t histogramBucketCount; |
| uint32_t maxFaceCount; |
| uint32_t maxHistogramCount; |
| uint32_t maxSharpnessMapValue; |
| uint32_t sharpnessMapSize[2]; |
| uint32_t availableHotPixelMapModes[CAMERA2_MAX_AVAILABLE_MODE]; |
| enum stats_mode availableLensShadingMapModes[CAMERA2_MAX_AVAILABLE_MODE]; |
| }; |
| |
| /* android.control */ |
| |
| enum aa_capture_intent { |
| AA_CAPTURE_INTENT_CUSTOM = 0, |
| AA_CAPTURE_INTENT_PREVIEW, |
| AA_CAPTURE_INTENT_STILL_CAPTURE, |
| AA_CAPTURE_INTENT_VIDEO_RECORD, |
| AA_CAPTURE_INTENT_VIDEO_SNAPSHOT, |
| AA_CAPTURE_INTENT_ZERO_SHUTTER_LAG, |
| AA_CAPTURE_INTENT_MANUAL, |
| |
| /* vendor feature */ |
| AA_CAPTURE_INTENT_STILL_CAPTURE_OIS_SINGLE = 100, |
| AA_CAPTURE_INTENT_STILL_CAPTURE_OIS_MULTI, |
| AA_CAPTURE_INTENT_STILL_CAPTURE_OIS_BEST, |
| AA_CAPTRUE_INTENT_STILL_CAPTURE_COMP_BYPASS, |
| AA_CAPTRUE_INTENT_STILL_CAPTURE_RAWDUMP = AA_CAPTRUE_INTENT_STILL_CAPTURE_COMP_BYPASS, |
| AA_CAPTRUE_INTENT_STILL_CAPTURE_OIS_DEBLUR, |
| AA_CAPTRUE_INTENT_STILL_CAPTURE_DEBLUR_DYNAMIC_SHOT, |
| AA_CAPTRUE_INTENT_STILL_CAPTURE_OIS_DYNAMIC_SHOT, |
| AA_CAPTRUE_INTENT_STILL_CAPTURE_EXPOSURE_DYNAMIC_SHOT, |
| AA_CAPTURE_INTENT_STILL_CAPTURE_CANCEL, |
| }; |
| |
| enum aa_mode { |
| AA_CONTROL_OFF = 1, |
| AA_CONTROL_AUTO, |
| AA_CONTROL_USE_SCENE_MODE, |
| AA_CONTROL_OFF_KEEP_STATE, |
| }; |
| |
| enum aa_scene_mode { |
| AA_SCENE_MODE_DISABLED = 1, |
| AA_SCENE_MODE_FACE_PRIORITY, |
| AA_SCENE_MODE_ACTION, |
| AA_SCENE_MODE_PORTRAIT, |
| AA_SCENE_MODE_LANDSCAPE, |
| AA_SCENE_MODE_NIGHT, |
| AA_SCENE_MODE_NIGHT_PORTRAIT, |
| AA_SCENE_MODE_THEATRE, |
| AA_SCENE_MODE_BEACH, |
| AA_SCENE_MODE_SNOW, |
| AA_SCENE_MODE_SUNSET, |
| AA_SCENE_MODE_STEADYPHOTO, |
| AA_SCENE_MODE_FIREWORKS, |
| AA_SCENE_MODE_SPORTS, |
| AA_SCENE_MODE_PARTY, |
| AA_SCENE_MODE_CANDLELIGHT, |
| AA_SCENE_MODE_BARCODE, |
| AA_SCENE_MODE_HIGH_SPEED_VIDEO, |
| AA_SCENE_MODE_HDR, |
| AA_SCENE_MODE_FACE_PRIORITY_LOW_LIGHT, |
| |
| /* vendor feature */ |
| AA_SCENE_MODE_NIGHT_CAPTURE = 100, |
| AA_SCENE_MODE_ANTISHAKE, |
| AA_SCENE_MODE_LLS, |
| AA_SCENE_MODE_FDAE, |
| AA_SCENE_MODE_DUAL, |
| AA_SCENE_MODE_DRAMA, |
| AA_SCENE_MODE_ANIMATED, |
| AA_SCENE_MODE_PANORAMA, |
| AA_SCENE_MODE_GOLF, |
| AA_SCENE_MODE_PREVIEW, |
| AA_SCENE_MODE_VIDEO, |
| AA_SCENE_MODE_SLOWMOTION_2, |
| AA_SCENE_MODE_SLOWMOTION_4_8, |
| AA_SCENE_MODE_DUAL_PREVIEW, |
| AA_SCENE_MODE_DUAL_VIDEO, |
| AA_SCENE_MODE_120_PREVIEW, |
| AA_SCENE_MODE_LIGHT_TRACE, |
| AA_SCENE_MODE_FOOD, |
| AA_SCENE_MODE_AQUA, |
| AA_SCENE_MODE_THERMAL, |
| AA_SCENE_MODE_VIDEO_COLLAGE, |
| AA_SCENE_MODE_PRO_MODE, |
| AA_SCENE_MODE_COLOR_IRIS, |
| AA_SCENE_MODE_FACE_LOCK, |
| AA_SCENE_MODE_LIVE_OUTFOCUS, |
| }; |
| |
| enum aa_effect_mode { |
| AA_EFFECT_OFF = 1, |
| AA_EFFECT_MONO, |
| AA_EFFECT_NEGATIVE, |
| AA_EFFECT_SOLARIZE, |
| AA_EFFECT_SEPIA, |
| AA_EFFECT_POSTERIZE, |
| AA_EFFECT_WHITEBOARD, |
| AA_EFFECT_BLACKBOARD, |
| AA_EFFECT_AQUA, |
| |
| /* vendor feature */ |
| AA_EFFECT_EMBOSS = 100, |
| AA_EFFECT_EMBOSS_MONO, |
| AA_EFFECT_SKETCH, |
| AA_EFFECT_RED_YELLOW_POINT, |
| AA_EFFECT_GREEN_POINT, |
| AA_EFFECT_BLUE_POINT, |
| AA_EFFECT_MAGENTA_POINT, |
| AA_EFFECT_WARM_VINTAGE, |
| AA_EFFECT_COLD_VINTAGE, |
| AA_EFFECT_WASHED, |
| AA_EFFECT_BEAUTY_FACE, |
| |
| }; |
| |
| enum aa_ae_lock { |
| AA_AE_LOCK_OFF = 1, |
| AA_AE_LOCK_ON, |
| }; |
| |
| enum aa_aemode { |
| AA_AEMODE_OFF = 1, |
| AA_AEMODE_ON, |
| AA_AEMODE_ON_AUTO_FLASH, |
| AA_AEMODE_ON_ALWAYS_FLASH, |
| AA_AEMODE_ON_AUTO_FLASH_REDEYE, |
| |
| /* vendor feature */ |
| AA_AEMODE_CENTER = 100, |
| AA_AEMODE_AVERAGE, |
| AA_AEMODE_MATRIX, |
| AA_AEMODE_SPOT, |
| AA_AEMODE_CENTER_TOUCH, |
| AA_AEMODE_AVERAGE_TOUCH, |
| AA_AEMODE_MATRIX_TOUCH, |
| AA_AEMODE_SPOT_TOUCH, |
| UNKNOWN_AA_AE_MODE |
| }; |
| |
| enum aa_ae_flashmode { |
| /*all flash control stop*/ |
| AA_FLASHMODE_OFF = 1, |
| /*flash start*/ |
| AA_FLASHMODE_START, |
| /*flash cancle*/ |
| AA_FLASHMODE_CANCEL, |
| /*internal 3A can control flash*/ |
| AA_FLASHMODE_ON, |
| /*internal 3A can do auto flash algorithm*/ |
| AA_FLASHMODE_AUTO, |
| /*internal 3A can fire flash by auto result*/ |
| AA_FLASHMODE_CAPTURE, |
| /*internal 3A can control flash forced*/ |
| AA_FLASHMODE_ON_ALWAYS |
| }; |
| |
| enum aa_ae_antibanding_mode { |
| AA_AE_ANTIBANDING_OFF = 1, |
| AA_AE_ANTIBANDING_50HZ, |
| AA_AE_ANTIBANDING_60HZ, |
| AA_AE_ANTIBANDING_AUTO, |
| |
| /* vendor feature */ |
| AA_AE_ANTIBANDING_AUTO_50HZ = 100, /* 50Hz + Auto */ |
| AA_AE_ANTIBANDING_AUTO_60HZ /* 60Hz + Auto */ |
| }; |
| |
| enum aa_awb_lock { |
| AA_AWB_LOCK_OFF = 1, |
| AA_AWB_LOCK_ON, |
| }; |
| |
| enum aa_awbmode { |
| AA_AWBMODE_OFF = 1, |
| AA_AWBMODE_WB_AUTO, |
| AA_AWBMODE_WB_INCANDESCENT, |
| AA_AWBMODE_WB_FLUORESCENT, |
| AA_AWBMODE_WB_WARM_FLUORESCENT, |
| AA_AWBMODE_WB_DAYLIGHT, |
| AA_AWBMODE_WB_CLOUDY_DAYLIGHT, |
| AA_AWBMODE_WB_TWILIGHT, |
| AA_AWBMODE_WB_SHADE, |
| AA_AWBMODE_WB_CUSTOM_K |
| }; |
| |
| enum aa_ae_precapture_trigger { |
| AA_AE_PRECAPTURE_TRIGGER_IDLE = 0, |
| AA_AE_PRECAPTURE_TRIGGER_START, |
| AA_AE_PRECAPTURE_TRIGGER_CANCEL, |
| }; |
| |
| enum aa_afmode { |
| AA_AFMODE_OFF = 1, |
| AA_AFMODE_AUTO, |
| AA_AFMODE_MACRO, |
| AA_AFMODE_CONTINUOUS_VIDEO, |
| AA_AFMODE_CONTINUOUS_PICTURE, |
| AA_AFMODE_EDOF, |
| }; |
| |
| enum aa_afmode_option_bit { |
| AA_AFMODE_OPTION_BIT_VIDEO = 0, |
| AA_AFMODE_OPTION_BIT_MACRO = 1, |
| AA_AFMODE_OPTION_BIT_FACE = 2, |
| AA_AFMODE_OPTION_BIT_DELAYED = 3, |
| AA_AFMODE_OPTION_BIT_OUT_FOCUSING = 4, |
| AA_AFMODE_OPTION_BIT_OBJECT_TRACKING = 5, |
| AA_AFMODE_OPTION_BIT_AF_ROI_NO_CONV = 6, |
| AA_AFMODE_OPTION_BIT_MULTI_AF = 7, |
| }; |
| |
| enum aa_afmode_ext { |
| AA_AFMODE_EXT_OFF = 1, |
| AA_AFMODE_EXT_ADVANCED_MACRO_FOCUS = 2, |
| AA_AFMODE_EXT_FOCUS_LOCATION = 3, |
| AA_AFMODE_EXT_FIXED_FACE = 4, |
| }; |
| |
| enum aa_af_trigger { |
| AA_AF_TRIGGER_IDLE = 0, |
| AA_AF_TRIGGER_START, |
| AA_AF_TRIGGER_CANCEL, |
| }; |
| |
| enum aa_afstate { |
| AA_AFSTATE_INACTIVE = 1, |
| AA_AFSTATE_PASSIVE_SCAN, |
| AA_AFSTATE_PASSIVE_FOCUSED, |
| AA_AFSTATE_ACTIVE_SCAN, |
| AA_AFSTATE_FOCUSED_LOCKED, |
| AA_AFSTATE_NOT_FOCUSED_LOCKED, |
| AA_AFSTATE_PASSIVE_UNFOCUSED, |
| }; |
| |
| enum ae_state { |
| AE_STATE_INACTIVE = 1, |
| AE_STATE_SEARCHING, |
| AE_STATE_CONVERGED, |
| AE_STATE_LOCKED, |
| AE_STATE_FLASH_REQUIRED, |
| AE_STATE_PRECAPTURE, |
| AE_STATE_LOCKED_CONVERGED = 10, |
| AE_STATE_LOCKED_FLASH_REQUIRED, |
| AE_STATE_SEARCHING_FLASH_REQUIRED, |
| }; |
| |
| enum awb_state { |
| AWB_STATE_INACTIVE = 1, |
| AWB_STATE_SEARCHING, |
| AWB_STATE_CONVERGED, |
| AWB_STATE_LOCKED |
| }; |
| |
| enum aa_videostabilization_mode { |
| VIDEO_STABILIZATION_MODE_OFF = 0, |
| VIDEO_STABILIZATION_MODE_ON, |
| }; |
| |
| enum aa_isomode { |
| AA_ISOMODE_AUTO = 1, |
| AA_ISOMODE_MANUAL, |
| }; |
| |
| enum aa_cameraid { |
| AA_CAMERAID_FRONT = 1, |
| AA_CAMERAID_REAR, |
| }; |
| |
| enum aa_cameratype { |
| AA_CAMERATYPE_SINGLE = 1, |
| AA_CAMERATYPE_WIDE, |
| AA_CAMERATYPE_TELE, |
| }; |
| |
| enum aa_videomode { |
| AA_VIDEOMODE_OFF = 0, |
| AA_VIDEOMODE_ON, |
| }; |
| |
| enum aa_ae_facemode { |
| AA_AE_FACEMODE_OFF = 0, |
| AA_AE_FACEMODE_ON, |
| }; |
| |
| enum aa_ae_lockavailable { |
| AE_LOCK_AVAILABLE_FALSE = 0, |
| AE_LOCK_AVAILABLE_TRUE, |
| }; |
| |
| enum aa_awb_lockavailable { |
| AWB_LOCK_AVAILABLE_FALSE = 0, |
| AWB_LOCK_AVAILABLE_TRUE, |
| }; |
| |
| enum aa_available_mode { |
| AA_OFF = 0, |
| AA_AUTO, |
| /* AA_USE_SCENE_MODE, |
| * AA_OFF_KEEP_STATE, */ |
| }; |
| |
| struct camera2_aa_ctl { |
| enum aa_ae_antibanding_mode aeAntibandingMode; |
| int32_t aeExpCompensation; |
| enum aa_ae_lock aeLock; |
| enum aa_aemode aeMode; |
| uint32_t aeRegions[5]; |
| uint32_t aeTargetFpsRange[2]; |
| enum aa_ae_precapture_trigger aePrecaptureTrigger; |
| enum aa_afmode afMode; |
| uint32_t afRegions[5]; |
| enum aa_af_trigger afTrigger; |
| enum aa_awb_lock awbLock; |
| enum aa_awbmode awbMode; |
| uint32_t awbRegions[5]; |
| enum aa_capture_intent captureIntent; |
| enum aa_effect_mode effectMode; |
| enum aa_mode mode; |
| enum aa_scene_mode sceneMode; |
| enum aa_videostabilization_mode videoStabilizationMode; |
| |
| /* vendor feature */ |
| float vendor_aeExpCompensationStep; |
| uint32_t vendor_afmode_option; |
| enum aa_afmode_ext vendor_afmode_ext; |
| enum aa_ae_flashmode vendor_aeflashMode; |
| enum aa_isomode vendor_isoMode; |
| uint32_t vendor_isoValue; |
| int32_t vendor_awbValue; |
| enum aa_cameraid vendor_cameraId; |
| enum aa_videomode vendor_videoMode; |
| enum aa_ae_facemode vendor_aeFaceMode; |
| enum aa_afstate vendor_afState; |
| int32_t vendor_exposureValue; |
| uint32_t vendor_touchAeDone; |
| uint32_t vendor_touchBvChange; |
| uint32_t vendor_captureCount; |
| uint32_t vendor_captureExposureTime; |
| uint32_t vendor_expBracketingCount; |
| float vendor_expBracketing[15]; |
| float vendor_expBracketingCapture; |
| uint32_t vendor_reserved[10]; |
| }; |
| |
| struct camera2_aa_dm { |
| enum aa_ae_antibanding_mode aeAntibandingMode; |
| int32_t aeExpCompensation; |
| enum aa_ae_lock aeLock; |
| enum aa_aemode aeMode; |
| uint32_t aeRegions[5]; |
| uint32_t aeTargetFpsRange[2]; |
| enum aa_ae_precapture_trigger aePrecaptureTrigger; |
| enum ae_state aeState; |
| enum aa_afmode afMode; |
| uint32_t afRegions[5]; |
| enum aa_af_trigger afTrigger; |
| enum aa_afstate afState; |
| enum aa_awb_lock awbLock; |
| enum aa_awbmode awbMode; |
| uint32_t awbRegions[5]; |
| enum aa_capture_intent captureIntent; |
| enum awb_state awbState; |
| enum aa_effect_mode effectMode; |
| enum aa_mode mode; |
| enum aa_scene_mode sceneMode; |
| enum aa_videostabilization_mode videoStabilizationMode; |
| |
| /* vendor feature */ |
| float vendor_aeExpCompensationStep; |
| uint32_t vendor_afmode_option; |
| enum aa_afmode_ext vendor_afmode_ext; |
| enum aa_ae_flashmode vendor_aeflashMode; |
| enum aa_isomode vendor_isoMode; |
| uint32_t vendor_isoValue; |
| int32_t vendor_awbValue; |
| enum aa_cameraid vendor_cameraId; |
| enum aa_videomode vendor_videoMode; |
| enum aa_ae_facemode vendor_aeFaceMode; |
| enum aa_afstate vendor_afState; |
| int32_t vendor_exposureValue; |
| uint32_t vendor_touchAeDone; |
| uint32_t vendor_touchBvChange; |
| uint32_t vendor_captureCount; |
| uint32_t vendor_captureExposureTime; |
| uint32_t vendor_expBracketingCount; |
| float vendor_expBracketing[15]; |
| float vendor_expBracketingCapture; |
| float vendor_objectDistanceCm; |
| uint32_t vendor_reserved[9]; |
| }; |
| |
| struct camera2_aa_sm { |
| uint8_t aeAvailableAntibandingModes[CAMERA2_MAX_AVAILABLE_MODE]; |
| uint8_t aeAvailableModes[CAMERA2_MAX_AVAILABLE_MODE]; |
| uint32_t aeAvailableTargetFpsRanges[CAMERA2_MAX_AVAILABLE_MODE][2]; |
| int32_t aeCompensationRange[2]; |
| struct rational aeCompensationStep; |
| uint8_t afAvailableModes[CAMERA2_MAX_AVAILABLE_MODE]; |
| uint8_t availableEffects[CAMERA2_MAX_AVAILABLE_MODE]; |
| uint8_t availableSceneModes[CAMERA2_MAX_AVAILABLE_MODE]; |
| uint8_t availableVideoStabilizationModes[4]; |
| uint8_t awbAvailableModes[CAMERA2_MAX_AVAILABLE_MODE]; |
| uint32_t maxRegions[3]; |
| uint32_t maxRegionsAe; |
| uint32_t maxRegionsAwb; |
| uint32_t maxRegionsAf; |
| uint8_t sceneModeOverrides[CAMERA2_MAX_AVAILABLE_MODE][3]; |
| uint32_t availableHighSpeedVideoConfigurations[CAMERA2_MAX_AVAILABLE_MODE][5]; |
| enum aa_ae_lockavailable aeLockAvailable; |
| enum aa_awb_lockavailable awbLockAvailable; |
| enum aa_available_mode availableModes; |
| |
| /* vendor feature */ |
| uint32_t vendor_isoRange[2]; |
| }; |
| |
| /* android.led */ |
| |
| enum led_transmit { |
| TRANSMIT_OFF = 0, |
| TRANSMIT_ON, |
| }; |
| |
| struct camera2_led_ctl { |
| enum led_transmit transmit; |
| }; |
| |
| struct camera2_led_dm { |
| enum led_transmit transmit; |
| }; |
| |
| struct camera2_led_sm { |
| uint8_t availableLeds[CAMERA2_MAX_AVAILABLE_MODE]; |
| }; |
| |
| /* android.info */ |
| |
| enum info_supported_hardware_level { |
| INFO_SUPPORTED_HARDWARE_LEVEL_LIMITED = 0, |
| INFO_SUPPORTED_HARDWARE_LEVEL_FULL, |
| INFO_SUPPORTED_HARDWARE_LEVEL_LEGACY, |
| }; |
| |
| struct camera2_info_sm { |
| enum info_supported_hardware_level supportedHardwareLevel; |
| }; |
| |
| /* android.blacklevel */ |
| |
| enum blacklevel_lock { |
| BLACK_LEVEL_LOCK_OFF = 0, |
| BLACK_LEVEL_LOCK_ON, |
| }; |
| |
| struct camera2_blacklevel_ctl { |
| enum blacklevel_lock lock; |
| }; |
| |
| struct camera2_blacklevel_dm { |
| enum blacklevel_lock lock; |
| }; |
| |
| /* android.reprocess */ |
| |
| struct camera2_reprocess_ctl { |
| float effectiveExposureFactor; |
| }; |
| |
| struct camera2_reprocess_dm { |
| float effectiveExposureFactor; |
| }; |
| |
| struct camera2_reprocess_sm { |
| uint32_t maxCaptureStall; |
| }; |
| |
| /* android.depth */ |
| |
| enum depth_available_depth_stream_config { |
| DEPTH_AVAILABLE_DEPTH_STREAM_CONFIGURATIONS_OUTPUT, |
| DEPTH_AVAILABLE_DEPTH_STREAM_CONFIGURATIONS_INPUT, |
| }; |
| |
| enum depth_depth_is_exclusive { |
| DEPTH_DEPTH_IS_EXCLUSIVE_FALSE, |
| DEPTH_DEPTH_IS_EXCLUSIVE_TRUE, |
| }; |
| |
| struct camera2_depth_sm { |
| uint32_t maxDepthSamples; |
| enum depth_available_depth_stream_config availableDepthStreamConfigurations[CAMERA2_MAX_AVAILABLE_MODE][4]; |
| uint64_t availableDepthMinFrameDurations[CAMERA2_MAX_AVAILABLE_MODE][4]; |
| uint64_t availableDepthStallDurations[CAMERA2_MAX_AVAILABLE_MODE][4]; |
| enum depth_depth_is_exclusive depthIsExclusive; |
| }; |
| |
| /* android.sync */ |
| |
| enum sync_frame_number { |
| SYNC_FRAME_NUMBER_CONVERGING = -1, |
| SYNC_FRAME_NUMBER_UNKNOWN = -2, |
| }; |
| |
| enum sync_max_latency { |
| SYNC_MAX_LATENCY_PER_FRAME_CONTROL = 0, |
| SYNC_MAX_LATENCY_UNKNOWN = -1, |
| }; |
| |
| struct camera2_sync_ctl { |
| int64_t frameNumber; |
| }; |
| |
| struct camera2_sync_dm { |
| int32_t maxLatency; |
| }; |
| |
| struct camera2_lens_usm { |
| uint32_t focusDistanceFrameDelay; |
| }; |
| |
| struct camera2_sensor_usm { |
| uint32_t exposureTimeFrameDelay; |
| uint32_t frameDurationFrameDelay; |
| uint32_t sensitivityFrameDelay; |
| }; |
| |
| struct camera2_flash_usm { |
| uint32_t flashModeFrameDelay; |
| uint32_t firingPowerFrameDelay; |
| uint64_t firingTimeFrameDelay; |
| }; |
| |
| struct camera2_ctl { |
| struct camera2_colorcorrection_ctl color; |
| struct camera2_aa_ctl aa; |
| struct camera2_demosaic_ctl demosaic; |
| struct camera2_edge_ctl edge; |
| struct camera2_flash_ctl flash; |
| struct camera2_hotpixel_ctl hotpixel; |
| struct camera2_jpeg_ctl jpeg; |
| struct camera2_lens_ctl lens; |
| struct camera2_noisereduction_ctl noise; |
| struct camera2_request_ctl request; |
| struct camera2_scaler_ctl scaler; |
| struct camera2_sensor_ctl sensor; |
| struct camera2_shading_ctl shading; |
| struct camera2_stats_ctl stats; |
| struct camera2_tonemap_ctl tonemap; |
| struct camera2_led_ctl led; |
| struct camera2_blacklevel_ctl blacklevel; |
| struct camera2_sync_ctl sync; |
| struct camera2_reprocess_ctl reprocess; |
| |
| /* vendor feature */ |
| struct camera2_entry_ctl vendor_entry; |
| }; |
| |
| struct camera2_dm { |
| struct camera2_colorcorrection_dm color; |
| struct camera2_aa_dm aa; |
| struct camera2_demosaic_dm demosaic; |
| struct camera2_edge_dm edge; |
| struct camera2_flash_dm flash; |
| struct camera2_hotpixel_dm hotpixel; |
| struct camera2_jpeg_dm jpeg; |
| struct camera2_lens_dm lens; |
| struct camera2_noisereduction_dm noise; |
| struct camera2_request_dm request; |
| struct camera2_scaler_dm scaler; |
| struct camera2_sensor_dm sensor; |
| struct camera2_shading_dm shading; |
| struct camera2_stats_dm stats; |
| struct camera2_tonemap_dm tonemap; |
| struct camera2_led_dm led; |
| struct camera2_blacklevel_dm blacklevel; |
| struct camera2_sync_dm sync; |
| struct camera2_reprocess_dm reprocess; |
| |
| /* vendor feature */ |
| struct camera2_entry_dm vendor_entry; |
| }; |
| |
| struct camera2_sm { |
| struct camera2_colorcorrection_sm color; |
| struct camera2_aa_sm aa; |
| struct camera2_edge_sm edge; |
| struct camera2_flash_sm flash; |
| struct camera2_hotpixel_sm hotpixel; |
| struct camera2_jpeg_sm jpeg; |
| struct camera2_lens_sm lens; |
| struct camera2_noisereduction_sm noise; |
| struct camera2_request_sm request; |
| struct camera2_scaler_sm scaler; |
| struct camera2_sensor_sm sensor; |
| struct camera2_shading_sm shading; |
| struct camera2_stats_sm stats; |
| struct camera2_tonemap_sm tonemap; |
| struct camera2_led_sm led; |
| struct camera2_info_sm info; |
| struct camera2_reprocess_sm reprocess; |
| struct camera2_depth_sm depth; |
| |
| /** User-defined(ispfw specific) static metadata. */ |
| struct camera2_lens_usm lensUd; |
| struct camera2_sensor_usm sensorUd; |
| struct camera2_flash_usm flashUd; |
| }; |
| |
| struct camera2_obj_af_info { |
| int32_t focusState; |
| int32_t focusROILeft; |
| int32_t focusROIRight; |
| int32_t focusROITop; |
| int32_t focusROIBottom; |
| int32_t focusWeight; |
| int32_t w_movement; |
| int32_t h_movement; |
| int32_t w_velocity; |
| int32_t h_velocity; |
| }; |
| |
| struct camera2_hrm_sensor_info { |
| uint32_t visible_data; |
| uint32_t ir_data; |
| uint32_t flicker_data; // 0: No flicker detect, 100: 50Hz, 120: 60Hz |
| int32_t status; |
| }; |
| |
| struct camera2_illuminaion_sensor_info { |
| uint16_t visible_cdata; |
| uint16_t visible_rdata; |
| uint16_t visible_gdata; |
| uint16_t visible_bdata; |
| uint16_t visible_gain; |
| uint16_t visible_exptime; |
| uint16_t ir_north; |
| uint16_t ir_south; |
| uint16_t ir_east; |
| uint16_t ir_west; |
| uint16_t ir_gain; |
| uint16_t ir_exptime; |
| }; |
| |
| struct camera2_gyro_sensor_info { |
| float x; |
| float y; |
| float z; |
| }; |
| |
| struct camera2_accelerometer_sensor_info { |
| float x; |
| float y; |
| float z; |
| }; |
| |
| struct camera2_aa_uctl { |
| struct camera2_obj_af_info af_data; |
| struct camera2_hrm_sensor_info hrmInfo; |
| struct camera2_illuminaion_sensor_info illuminationInfo; |
| struct camera2_gyro_sensor_info gyroInfo; |
| struct camera2_accelerometer_sensor_info accInfo; |
| }; |
| |
| struct camera2_aa_udm { |
| struct camera2_obj_af_info af_data; |
| struct camera2_hrm_sensor_info hrmInfo; |
| struct camera2_illuminaion_sensor_info illuminationInfo; |
| struct camera2_gyro_sensor_info gyroInfo; |
| struct camera2_accelerometer_sensor_info accInfo; |
| }; |
| |
| struct camera2_lens_uctl { |
| uint32_t pos; |
| uint32_t posSize; |
| uint32_t direction; |
| uint32_t slewRate; |
| uint32_t oisCoefVal; |
| }; |
| |
| struct camera2_lens_udm { |
| uint32_t pos; |
| uint32_t posSize; |
| uint32_t direction; |
| uint32_t slewRate; |
| uint32_t oisCoefVal; |
| }; |
| |
| struct camera2_ae_udm { |
| uint32_t vsLength; |
| uint32_t vendorSpecific[CAMERA2_MAX_VENDER_LENGTH]; |
| uint32_t vs2Length; |
| uint32_t vendorSpecific2[CAMERA2_MAX_UDM_VENDOR2_LENGTH]; |
| }; |
| |
| struct camera2_awb_udm { |
| uint32_t vsLength; |
| uint32_t vendorSpecific[CAMERA2_MAX_VENDER_LENGTH]; |
| uint32_t vs2Length; |
| uint32_t vendorSpecific2[CAMERA2_MAX_UDM_VENDOR2_LENGTH]; |
| }; |
| |
| struct camera2_af_uctl { |
| uint32_t vs2Length; |
| uint32_t vendorSpecific2[CAMERA2_MAX_UCTL_VENDOR2_LENGTH]; |
| }; |
| |
| struct camera2_af_udm { |
| uint32_t vsLength; |
| uint32_t vendorSpecific[CAMERA2_MAX_VENDER_LENGTH]; |
| int32_t lensPositionInfinity; |
| int32_t lensPositionMacro; |
| int32_t lensPositionCurrent; |
| uint32_t vs2Length; |
| uint32_t vendorSpecific2[CAMERA2_MAX_UDM_VENDOR2_LENGTH]; |
| }; |
| |
| struct camera2_as_udm { |
| uint32_t vsLength; |
| uint32_t vendorSpecific[CAMERA2_MAX_VENDER_LENGTH]; |
| }; |
| |
| struct camera2_ipc_udm { |
| uint32_t vsLength; |
| #ifdef CAMERA_REAR2 |
| uint32_t vendorSpecific[CAMERA2_MAX_IPC_VENDER_LENGTH]; |
| #else |
| uint32_t vendorSpecific[CAMERA2_MAX_VENDER_LENGTH]; |
| #endif |
| }; |
| |
| /** \brief |
| User-defined metadata for rta debug info. |
| */ |
| struct camera2_rta_udm { |
| uint32_t vsLength; |
| uint32_t vendorSpecific[100]; |
| }; |
| |
| struct camera2_internal_udm { |
| uint32_t ProcessedFrameInfo; |
| uint32_t vendorSpecific1[CAMERA2_MAX_VENDER_LENGTH]; |
| uint32_t vendorSpecific2[CAMERA2_MAX_VENDER_LENGTH]; |
| /* |
| vendorSpecific2[0] : 3aaIspSircSdk |
| vendorSpedific2[1] : IspTpuSirdSdk |
| vendorSpecific2[100] : exposure |
| vendorSpecific2[101] : iso(gain) |
| vendorSpecific2[102] : Bv |
| vendorSpecific2[103] : Tv |
| */ |
| }; |
| |
| struct camera2_sensor_uctl { |
| uint64_t dynamicFrameDuration; |
| uint32_t analogGain; |
| uint32_t digitalGain; |
| uint64_t longExposureTime; |
| uint64_t shortExposureTime; |
| uint32_t longAnalogGain; |
| uint32_t shortAnalogGain; |
| uint32_t longDigitalGain; |
| uint32_t shortDigitalGain; |
| uint64_t exposureTime; |
| uint32_t frameDuration; |
| uint32_t sensitivity; |
| uint32_t CtrlFrameDuration; |
| }; |
| |
| struct camera2_sensor_udm { |
| uint64_t dynamicFrameDuration; |
| uint32_t analogGain; |
| uint32_t digitalGain; |
| uint64_t longExposureTime; |
| uint64_t shortExposureTime; |
| uint32_t longAnalogGain; |
| uint32_t shortAnalogGain; |
| uint32_t longDigitalGain; |
| uint32_t shortDigitalGain; |
| uint64_t timeStampBoot; |
| }; |
| |
| enum mcsc_port { |
| MCSC_PORT_NONE = -1, |
| MCSC_PORT_0, |
| MCSC_PORT_1, |
| MCSC_PORT_2, |
| MCSC_PORT_3, |
| MCSC_PORT_4, |
| MCSC_PORT_MAX, |
| }; |
| |
| enum mcsc_interface_type { |
| INTERFACE_TYPE_YSUM = 0, |
| INTERFACE_TYPE_DS, |
| INTERFACE_TYPE_MAX, |
| }; |
| |
| #ifdef EXYNOS7885 |
| struct ysum_data { |
| uint32_t lower_ysum_value; |
| uint32_t higher_ysum_value; |
| }; |
| #endif |
| |
| struct camera2_scaler_uctl { |
| uint32_t sourceAddress[EXYNOS_CAMERA_BUFFER_MAX_PLANES]; |
| uint32_t txcTargetAddress[EXYNOS_CAMERA_BUFFER_MAX_PLANES]; |
| uint32_t txpTargetAddress[EXYNOS_CAMERA_BUFFER_MAX_PLANES]; |
| uint32_t ixcTargetAddress[EXYNOS_CAMERA_BUFFER_MAX_PLANES]; |
| uint32_t ixpTargetAddress[EXYNOS_CAMERA_BUFFER_MAX_PLANES]; |
| uint32_t sccTargetAddress[EXYNOS_CAMERA_BUFFER_MAX_PLANES]; |
| uint32_t scpTargetAddress[EXYNOS_CAMERA_BUFFER_MAX_PLANES]; |
| uint32_t sc0TargetAddress[EXYNOS_CAMERA_BUFFER_MAX_PLANES]; |
| uint32_t sc1TargetAddress[EXYNOS_CAMERA_BUFFER_MAX_PLANES]; |
| uint32_t sc2TargetAddress[EXYNOS_CAMERA_BUFFER_MAX_PLANES]; |
| uint32_t sc3TargetAddress[EXYNOS_CAMERA_BUFFER_MAX_PLANES]; |
| uint32_t sc4TargetAddress[EXYNOS_CAMERA_BUFFER_MAX_PLANES]; |
| #ifdef EXYNOS7885 |
| // To add buffer address because of MCSC DS for LT (VRA input) |
| uint32_t sc5TargetAddress[EXYNOS_CAMERA_BUFFER_MAX_PLANES]; /* MCSC DS output */ |
| #endif |
| uint32_t dxcTargetAddress[EXYNOS_CAMERA_BUFFER_MAX_PLANES]; |
| uint32_t orientation; |
| #ifdef EXYNOS7885 |
| enum mcsc_port mcsc_sub_blk_port[INTERFACE_TYPE_MAX]; |
| #endif |
| }; |
| |
| #ifdef EXYNOS7885 |
| struct camera2_scaler_udm { |
| struct ysum_data ysumdata; |
| }; |
| #endif |
| |
| struct camera2_flash_uctl { |
| uint32_t firingPower; |
| uint64_t firingTime; |
| enum flash_mode flashMode; |
| }; |
| |
| struct camera2_flash_udm { |
| uint32_t firingPower; |
| uint64_t firingTime; |
| enum flash_mode flashMode; |
| }; |
| |
| enum companion_drc_mode { |
| COMPANION_DRC_OFF = 1, |
| COMPANION_DRC_ON, |
| }; |
| |
| enum companion_wdr_mode { |
| COMPANION_WDR_OFF = 1, |
| COMPANION_WDR_ON = 2, |
| COMPANION_WDR_AUTO = 3, |
| COMPANION_WDR_AUTO_LIKE = 4, |
| TOTALCOUNT_COMPANION_WDR, |
| COMPANION_WDR_UNKNOWN, |
| }; |
| |
| enum companion_paf_mode { |
| COMPANION_PAF_OFF = 1, |
| COMPANION_PAF_ON, |
| }; |
| |
| enum companion_caf_mode { |
| COMPANION_CAF_OFF = 1, |
| COMPANION_CAF_ON, |
| }; |
| |
| enum companion_bypass_mode { |
| COMPANION_FULL_BYPASS_OFF = 1, |
| COMPANION_FULL_BYPASS_ON, |
| }; |
| |
| enum companion_lsc_mode { |
| COMPANION_LSC_OFF = 1, |
| COMPANION_LSC_ON, |
| }; |
| |
| enum companion_bpc_mode { |
| COMPANION_BPC_OFF = 1, |
| COMPANION_BPC_ON, |
| }; |
| |
| enum companion_disparity_mode { |
| COMPANION_DISPARITY_OFF = 1, |
| COMPANION_DISPARITY_SAD, |
| COMPANION_DISPARITY_CENSUS_MEAN, |
| COMPANION_DISPARITY_CENSUS_CENTER // Disparity mode default |
| }; |
| |
| enum camera_flash_mode { |
| CAMERA_FLASH_MODE_OFF = 0, |
| CAMERA_FLASH_MODE_AUTO, |
| CAMERA_FLASH_MODE_ON, |
| CAMERA_FLASH_MODE_RED_EYE, |
| CAMERA_FLASH_MODE_TORCH |
| }; |
| |
| enum camera_op_mode { |
| CAMERA_OP_MODE_GED = 0, // default |
| CAMERA_OP_MODE_TW, |
| CAMERA_OP_MODE_HAL3_GED, |
| CAMERA_OP_MODE_HAL3_TW, |
| CAMERA_OP_MODE_FAC, |
| CAMERA_OP_MODE_HAL3_FAC, |
| }; |
| |
| struct camera2_companion_uctl { |
| enum companion_drc_mode drc_mode; |
| enum companion_wdr_mode wdr_mode; |
| enum companion_paf_mode paf_mode; |
| enum companion_caf_mode caf_mode; |
| enum companion_lsc_mode lsc_mode; |
| enum companion_bpc_mode bpc_mode; |
| enum companion_bypass_mode bypass_mode; |
| enum companion_disparity_mode disparity_mode; |
| }; |
| |
| struct camera2_pdaf_single_result { |
| uint16_t mode; |
| uint16_t goalPos; |
| uint16_t reliability; |
| uint16_t currentPos; |
| }; |
| |
| struct camera2_pdaf_multi_result { |
| uint16_t mode; |
| uint16_t goalPos; |
| uint16_t reliability; |
| uint16_t focused; |
| }; |
| |
| struct camera2_pdaf_udm { |
| uint16_t numCol; |
| uint16_t numRow; |
| struct camera2_pdaf_multi_result multiResult[CAMERA2_MAX_PDAF_MULTIROI_ROW][CAMERA2_MAX_PDAF_MULTIROI_COLUMN]; |
| struct camera2_pdaf_single_result singleResult; |
| uint16_t lensPosResolution; |
| }; |
| |
| struct camera2_companion_udm { |
| enum companion_drc_mode drc_mode; |
| enum companion_wdr_mode wdr_mode; |
| enum companion_paf_mode paf_mode; |
| enum companion_caf_mode caf_mode; |
| enum companion_lsc_mode lsc_mode; |
| enum companion_bpc_mode bpc_mode; |
| enum companion_bypass_mode bypass_mode; |
| struct camera2_pdaf_udm pdaf; |
| enum companion_disparity_mode disparity_mode; |
| }; |
| |
| struct camera2_fd_uctl { |
| enum facedetect_mode faceDetectMode; |
| uint32_t faceIds[CAMERA2_MAX_FACES]; |
| uint32_t faceLandmarks[CAMERA2_MAX_FACES][6]; |
| uint32_t faceRectangles[CAMERA2_MAX_FACES][4]; |
| uint8_t faceScores[CAMERA2_MAX_FACES]; |
| uint32_t faces[CAMERA2_MAX_FACES]; |
| uint32_t vendorSpecific[CAMERA2_MAX_UCTL_VENDER_LENGTH]; |
| /* --------------------------------------------------------- |
| vendorSpecific[0] = fdMapAddress[0]; |
| vendorSpecific[1] = fdMapAddress[1]; |
| vendorSpecific[2] = fdMapAddress[2]; |
| vendorSpecific[4] = fdMapAddress[4]; |
| vendorSpecific[5] = fdMapAddress[5]; |
| vendorSpecific[6] = fdMapAddress[6]; |
| vendorSpecific[7] = fdMapAddress[7]; |
| vendorSpecific[8] = fdYMapAddress; |
| vendorSpecific[9] = fdCoefK; |
| vendorSpecific[10] = fdUp; |
| vendorSpecific[11] = fdShift; |
| vendorSpecific[12] ~ vendorSpecific[31] : reserved |
| --------------------------------------------------------- |
| */ |
| }; |
| |
| struct camera2_fd_udm { |
| uint32_t vendorSpecific[CAMERA2_MAX_UCTL_VENDER_LENGTH]; |
| /* --------------------------------------------------------- |
| vendorSpecific[0] = fdSat; |
| vendorSpecific[1] ~ vendorSpecific[31] : reserved |
| --------------------------------------------------------- |
| */ |
| }; |
| |
| #ifdef EXYNOS7885 |
| struct camera2_ni_udm { |
| uint32_t currentFrameNoiseIndex; /* Noise Index for N */ |
| uint32_t nextFrameNoiseIndex; /* Noise Index for N+1 */ |
| uint32_t nextNextFrameNoiseIndex; /* Noise Index for N+2 */ |
| }; |
| #endif |
| |
| enum camera2_drc_mode { |
| DRC_OFF = 1, |
| DRC_ON, |
| }; |
| |
| struct camera2_drc_uctl { |
| enum camera2_drc_mode uDrcEn; |
| }; |
| |
| enum camera2_scene_index { |
| SCENE_INDEX_INVALID = 0, |
| SCENE_INDEX_FOOD = 1, |
| SCENE_INDEX_TEXT = 2, |
| SCENE_INDEX_PERSON = 3, |
| SCENE_INDEX_FLOWER = 4, |
| SCENE_INDEX_TREE = 5, |
| SCENE_INDEX_MOUNTAIN = 6, |
| SCENE_INDEX_MOUNTAIN_GREEN = 7, |
| SCENE_INDEX_MOUNTAIN_FALL = 8, |
| SCENE_INDEX_ANIMAL = 9, |
| SCENE_INDEX_SUNSET_SUNRISE = 10, |
| SCENE_INDEX_BEACH = 11, |
| SCENE_INDEX_SKY = 12, |
| SCENE_INDEX_SNOW = 13, |
| SCENE_INDEX_NIGHTVIEW = 14, |
| SCENE_INDEX_WATERFALL = 15, |
| SCENE_INDEX_BIRD = 16, |
| SCENE_INDEX_CITYSTREET = 17, |
| SCENE_INDEX_HOMEINDOOR = 18, |
| SCENE_INDEX_WATERSIDE = 19, |
| SCENE_INDEX_SCENERY = 20, |
| SCENE_INDEX_GREENERY = 21, |
| SCENE_INDEX_DAY_HDR = 10000, // The enums which are same as or more than 1000 are set by AE result |
| SCENE_INDEX_NIGHT_HDR = 10001, |
| SCENE_INDEX_MOTION_BLUR_REMOVAL = 10002 |
| }; |
| |
| struct camera2_scene_detect_uctl |
| { |
| uint64_t timeStamp; |
| enum camera2_scene_index scene_index; |
| uint32_t confidence_score; |
| uint32_t object_roi[4]; /* left, top, right, bottom */ |
| }; |
| |
| enum camera_vt_mode { |
| VT_MODE_OFF = 0, |
| VT_MODE_1, |
| VT_MODE_2, |
| VT_MODE_3, |
| VT_MODE_4, |
| }; |
| |
| enum camera2_is_hw_lls_mode { |
| CAMERA_HW_LLS_OFF = 0, |
| CAMERA_HW_LLS_ON, |
| }; |
| |
| enum camera2_is_hw_lls_progress { |
| CAMERA_HW_LLS_FIRST_FRAME = 0, |
| CAMERA_HW_LLS_SECOND_FRAME, |
| CAMERA_HW_LLS_INTERMEDIATE_FRAME, |
| CAMERA_HW_LLS_LAST_FRAME, |
| }; |
| |
| struct camera2_is_hw_lls_uctl { |
| enum camera2_is_hw_lls_mode hwLlsMode; |
| enum camera2_is_hw_lls_progress hwLlsProgress; |
| }; |
| |
| struct camera2_uctl { |
| uint32_t uUpdateBitMap; |
| uint32_t uFrameNumber; |
| struct camera2_aa_uctl aaUd; |
| struct camera2_af_uctl af; |
| struct camera2_lens_uctl lensUd; |
| struct camera2_sensor_uctl sensorUd; |
| struct camera2_flash_uctl flashUd; |
| struct camera2_scaler_uctl scalerUd; |
| struct camera2_companion_uctl companionUd; |
| struct camera2_fd_uctl fdUd; |
| struct camera2_drc_uctl drcUd; |
| struct camera2_scene_detect_uctl sceneDetectInfoUd; |
| enum camera_vt_mode vtMode; |
| float zoomRatio; |
| enum camera_flash_mode flashMode; |
| enum camera_op_mode opMode; |
| struct camera2_is_hw_lls_uctl hwlls_mode; |
| uint32_t statsRoi[4]; |
| enum aa_cameratype masterCam; |
| uint8_t countryCode[4]; |
| }; |
| |
| struct camera2_udm { |
| struct camera2_aa_udm aa; |
| struct camera2_lens_udm lens; |
| struct camera2_sensor_udm sensor; |
| struct camera2_flash_udm flash; |
| struct camera2_ae_udm ae; |
| struct camera2_awb_udm awb; |
| struct camera2_af_udm af; |
| struct camera2_as_udm as; |
| struct camera2_ipc_udm ipc; |
| struct camera2_rta_udm rta; |
| struct camera2_internal_udm internal; |
| #ifdef EXYNOS7885 |
| struct camera2_scaler_udm scaler; |
| #endif |
| struct camera2_companion_udm companion; |
| struct camera2_fd_udm fd; |
| enum camera_vt_mode vtMode; |
| float zoomRatio; |
| enum camera_flash_mode flashMode; |
| enum camera_op_mode opMode; |
| #ifdef EXYNOS7885 |
| struct camera2_ni_udm ni; |
| uint32_t reserved[3]; |
| #else |
| uint32_t reserved[8]; |
| #endif |
| }; |
| |
| struct camera2_shot { |
| struct camera2_ctl ctl; |
| struct camera2_dm dm; |
| struct camera2_uctl uctl; |
| struct camera2_udm udm; |
| uint32_t magicNumber; |
| }; |
| |
| struct camera2_node_input { |
| uint32_t cropRegion[4]; |
| }; |
| |
| struct camera2_node_output { |
| uint32_t cropRegion[4]; |
| }; |
| |
| struct camera2_node { |
| uint32_t vid; |
| uint32_t request; |
| struct camera2_node_input input; |
| struct camera2_node_output output; |
| #ifdef EXYNOS7885 |
| uint32_t pixelformat; |
| #endif |
| }; |
| |
| struct camera2_node_group { |
| struct camera2_node leader; |
| struct camera2_node capture[CAPTURE_NODE_MAX]; |
| }; |
| |
| struct camera2_shot_ext { |
| uint32_t setfile; |
| struct camera2_node_group node_group; |
| uint32_t drc_bypass; |
| uint32_t dis_bypass; |
| uint32_t dnr_bypass; |
| uint32_t fd_bypass; |
| uint32_t free_cnt; |
| uint32_t request_cnt; |
| uint32_t process_cnt; |
| uint32_t complete_cnt; |
| uint32_t invalid; |
| uint32_t reserved[14]; |
| uint32_t timeZone[10][2]; |
| struct camera2_shot shot; |
| }; |
| |
| struct camera2_stream { |
| uint32_t address; |
| uint32_t fcount; |
| uint32_t rcount; |
| uint32_t findex; |
| uint32_t fvalid; |
| uint32_t input_crop_region[4]; |
| uint32_t output_crop_region[4]; |
| }; |
| |
| #define CAM_LENS_CMD (0x1 << 0x0) |
| #define CAM_SENSOR_CMD (0x1 << 0x1) |
| #define CAM_FLASH_CMD (0x1 << 0x2) |
| |
| enum camera_pixel_size { |
| CAMERA_PIXEL_SIZE_8BIT = 0, |
| CAMERA_PIXEL_SIZE_10BIT, |
| CAMERA_PIXEL_SIZE_PACKED_10BIT, |
| CAMERA_PIXEL_SIZE_8_2BIT, |
| }; |
| |
| /* typedefs below are for firmware sources */ |
| |
| typedef enum metadata_mode metadata_mode_t; |
| typedef struct camera2_request_ctl camera2_request_ctl_t; |
| typedef struct camera2_request_dm camera2_request_dm_t; |
| typedef enum optical_stabilization_mode optical_stabilization_mode_t; |
| typedef enum lens_facing lens_facing_t; |
| typedef struct camera2_entry_ctl camera2_entry_ctl_t; |
| typedef struct camera2_entry_dm camera2_entry_dm_t; |
| typedef struct camera2_lens_ctl camera2_lens_ctl_t; |
| typedef struct camera2_lens_dm camera2_lens_dm_t; |
| typedef struct camera2_lens_sm camera2_lens_sm_t; |
| typedef enum sensor_colorfilterarrangement sensor_colorfilterarrangement_t; |
| typedef enum sensor_lensshading_applied sensor_lensshading_applied_t; |
| typedef enum sensor_ref_illuminant sensor_ref_illuminant_t; |
| typedef struct camera2_sensor_ctl camera2_sensor_ctl_t; |
| typedef struct camera2_sensor_dm camera2_sensor_dm_t; |
| typedef struct camera2_sensor_sm camera2_sensor_sm_t; |
| typedef enum flash_mode flash_mode_t; |
| typedef struct camera2_flash_ctl camera2_flash_ctl_t; |
| typedef struct camera2_flash_dm camera2_flash_dm_t; |
| typedef struct camera2_flash_sm camera2_flash_sm_t; |
| typedef enum processing_mode processing_mode_t; |
| typedef struct camera2_hotpixel_ctl camera2_hotpixel_ctl_t; |
| typedef struct camera2_hotpixel_dm camera2_hotpixel_dm_t; |
| typedef struct camera2_hotpixel_sm camera2_hotpixel_sm_t; |
| |
| typedef struct camera2_demosaic_ctl camera2_demosaic_ctl_t; |
| typedef struct camera2_demosaic_dm camera2_demosaic_dm_t; |
| typedef struct camera2_noisereduction_ctl camera2_noisereduction_ctl_t; |
| typedef struct camera2_noisereduction_dm camera2_noisereduction_dm_t; |
| typedef struct camera2_noisereduction_sm camera2_noisereduction_sm_t; |
| typedef struct camera2_shading_ctl camera2_shading_ctl_t; |
| typedef struct camera2_shading_dm camera2_shading_dm_t; |
| typedef enum colorcorrection_mode colorcorrection_mode_t; |
| typedef struct camera2_colorcorrection_ctl camera2_colorcorrection_ctl_t; |
| typedef struct camera2_colorcorrection_dm camera2_colorcorrection_dm_t; |
| typedef struct camera2_colorcorrection_sm camera2_colorcorrection_sm_t; |
| typedef enum tonemap_mode tonemap_mode_t; |
| typedef enum tonemap_presetCurve tonemap_presetCurve_t; |
| typedef struct camera2_tonemap_ctl camera2_tonemap_ctl_t; |
| typedef struct camera2_tonemap_dm camera2_tonemap_dm_t; |
| typedef struct camera2_tonemap_sm camera2_tonemap_sm_t; |
| |
| typedef struct camera2_edge_ctl camera2_edge_ctl_t; |
| typedef struct camera2_edge_dm camera2_edge_dm_t; |
| typedef struct camera2_edge_sm camera2_edge_sm_t; |
| typedef struct camera2_scaler_ctl camera2_scaler_ctl_t; |
| typedef struct camera2_scaler_dm camera2_scaler_dm_t; |
| typedef struct camera2_jpeg_ctl camera2_jpeg_ctl_t; |
| typedef struct camera2_jpeg_dm camera2_jpeg_dm_t; |
| typedef struct camera2_jpeg_sm camera2_jpeg_sm_t; |
| typedef enum facedetect_mode facedetect_mode_t; |
| typedef enum stats_mode stats_mode_t; |
| typedef struct camera2_stats_ctl camera2_stats_ctl_t; |
| typedef struct camera2_stats_dm camera2_stats_dm_t; |
| typedef struct camera2_stats_sm camera2_stats_sm_t; |
| typedef enum aa_capture_intent aa_capture_intent_t; |
| typedef enum aa_mode aa_mode_t; |
| typedef enum aa_scene_mode aa_scene_mode_t; |
| typedef enum aa_effect_mode aa_effect_mode_t; |
| typedef enum aa_aemode aa_aemode_t; |
| typedef enum aa_ae_antibanding_mode aa_ae_antibanding_mode_t; |
| typedef enum aa_awbmode aa_awbmode_t; |
| typedef enum aa_afmode aa_afmode_t; |
| typedef enum aa_afstate aa_afstate_t; |
| typedef enum aa_ae_lockavailable aa_ae_lockavailable_t; |
| typedef enum aa_awb_lockavailable aa_awb_lockavailable_t; |
| typedef enum aa_available_mode aa_available_mode_t; |
| typedef struct camera2_aa_ctl camera2_aa_ctl_t; |
| typedef struct camera2_aa_dm camera2_aa_dm_t; |
| typedef struct camera2_aa_sm camera2_aa_sm_t; |
| typedef struct camera2_lens_usm camera2_lens_usm_t; |
| typedef struct camera2_sensor_usm camera2_sensor_usm_t; |
| typedef struct camera2_flash_usm camera2_flash_usm_t; |
| typedef struct camera2_ctl camera2_ctl_t; |
| typedef struct camera2_uctl camera2_uctl_t; |
| typedef struct camera2_dm camera2_dm_t; |
| typedef struct camera2_sm camera2_sm_t; |
| |
| typedef struct camera2_reprocess_ctl camera2_reprocess_ctl_t; |
| typedef struct camera2_reprocess_dm camera2_reprocess_dm_t; |
| typedef struct camera2_reprocess_sm camera2_reprocess_sm_t; |
| typedef enum depth_available_depth_stream_config depth_available_depth_stream_config_t; |
| typedef enum depth_depth_is_exclusive depth_depth_is_exclusive_t; |
| typedef struct camera2_depth_sm camera2_depth_ctl_t; |
| |
| typedef struct camera2_scaler_sm camera2_scaler_sm_t; |
| typedef struct camera2_scaler_uctl camera2_scaler_uctl_t; |
| |
| typedef struct camera2_fd_uctl camera2_fd_uctl_t; |
| typedef struct camera2_fd_udm camera2_fd_udm_t; |
| |
| typedef struct camera2_sensor_uctl camera2_sensor_uctl_t; |
| |
| typedef struct camera2_aa_uctl camera2_aa_uctl_t; |
| typedef struct camera2_aa_udm camera2_aa_udm_t; |
| |
| typedef struct camera2_lens_uctl camera2_lens_uctl_t; |
| typedef struct camera2_lens_udm camera2_lens_udm_t; |
| |
| typedef struct camera2_ae_udm camera2_ae_udm_t; |
| typedef struct camera2_awb_udm camera2_awb_udm_t; |
| typedef struct camera2_af_udm camera2_af_udm_t; |
| typedef struct camera2_as_udm camera2_as_udm_t; |
| typedef struct camera2_ipc_udm camera2_ipc_udm_t; |
| typedef struct camera2_udm camera2_udm_t; |
| |
| typedef struct camera2_rta_udm camera2_rta_udm_t; |
| typedef struct camera2_internal_udm camera2_internal_udm_t; |
| |
| typedef struct camera2_flash_uctl camera2_flash_uctl_t; |
| |
| typedef struct camera2_is_mode_udm camera2_is_mode_udm_t; |
| typedef struct camera2_companion_udm camera2_companion_udm_t; |
| typedef struct camera2_shot camera2_shot_t; |
| |
| typedef struct camera2_ni_udm camera2_ni_udm_t; |
| typedef struct camera2_drc_udm camera2_drc_udm_t; |
| typedef struct camera2_rgbGamma_udm camera2_rgbGamma_udm_t; |
| typedef struct camera2_ccm_udm camera2_ccm_udm_t; |
| |
| typedef struct camera2_me_udm camera2_me_udm_t; |
| #endif |