/QCamera2/HAL/QCameraParameters.cpp
C++ | 6148 lines | 3694 code | 448 blank | 2006 comment | 826 complexity | f3cb585f5a9720ab4d08a9cf76e1c054 MD5 | raw file
Large files files are truncated, but you can click here to view the full file
- /* Copyright (c) 2012-2013, The Linux Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following
- * disclaimer in the documentation and/or other materials provided
- * with the distribution.
- * * Neither the name of The Linux Foundation nor the names of its
- * contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
- * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
- * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
- * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- */
- #define LOG_TAG "QCameraParameters"
- #include <cutils/properties.h>
- #include <math.h>
- #include <utils/Errors.h>
- #include <string.h>
- #include <stdlib.h>
- #include <gralloc_priv.h>
- #include "QCamera2HWI.h"
- #include "QCameraParameters.h"
- #define ASPECT_TOLERANCE 0.001
- #define FLIP_V_H (FLIP_H | FLIP_V)
- namespace qcamera {
- // Parameter keys to communicate between camera application and driver.
- const char QCameraParameters::KEY_QC_SUPPORTED_HFR_SIZES[] = "hfr-size-values";
- const char QCameraParameters::KEY_QC_PREVIEW_FRAME_RATE_MODE[] = "preview-frame-rate-mode";
- const char QCameraParameters::KEY_QC_SUPPORTED_PREVIEW_FRAME_RATE_MODES[] = "preview-frame-rate-modes";
- const char QCameraParameters::KEY_QC_PREVIEW_FRAME_RATE_AUTO_MODE[] = "frame-rate-auto";
- const char QCameraParameters::KEY_QC_PREVIEW_FRAME_RATE_FIXED_MODE[] = "frame-rate-fixed";
- const char QCameraParameters::KEY_QC_TOUCH_AF_AEC[] = "touch-af-aec";
- const char QCameraParameters::KEY_QC_SUPPORTED_TOUCH_AF_AEC[] = "touch-af-aec-values";
- const char QCameraParameters::KEY_QC_TOUCH_INDEX_AEC[] = "touch-index-aec";
- const char QCameraParameters::KEY_QC_TOUCH_INDEX_AF[] = "touch-index-af";
- const char QCameraParameters::KEY_QC_SCENE_DETECT[] = "scene-detect";
- const char QCameraParameters::KEY_QC_SUPPORTED_SCENE_DETECT[] = "scene-detect-values";
- const char QCameraParameters::KEY_QC_ISO_MODE[] = "iso";
- const char QCameraParameters::KEY_QC_SUPPORTED_ISO_MODES[] = "iso-values";
- const char QCameraParameters::KEY_QC_LENSSHADE[] = "lensshade";
- const char QCameraParameters::KEY_QC_SUPPORTED_LENSSHADE_MODES[] = "lensshade-values";
- const char QCameraParameters::KEY_QC_AUTO_EXPOSURE[] = "auto-exposure";
- const char QCameraParameters::KEY_QC_SUPPORTED_AUTO_EXPOSURE[] = "auto-exposure-values";
- const char QCameraParameters::KEY_QC_DENOISE[] = "denoise";
- const char QCameraParameters::KEY_QC_SUPPORTED_DENOISE[] = "denoise-values";
- const char QCameraParameters::KEY_QC_FOCUS_ALGO[] = "selectable-zone-af";
- const char QCameraParameters::KEY_QC_SUPPORTED_FOCUS_ALGOS[] = "selectable-zone-af-values";
- const char QCameraParameters::KEY_QC_FACE_DETECTION[] = "face-detection";
- const char QCameraParameters::KEY_QC_SUPPORTED_FACE_DETECTION[] = "face-detection-values";
- const char QCameraParameters::KEY_QC_FACE_RECOGNITION[] = "face-recognition";
- const char QCameraParameters::KEY_QC_SUPPORTED_FACE_RECOGNITION[] = "face-recognition-values";
- const char QCameraParameters::KEY_QC_MEMORY_COLOR_ENHANCEMENT[] = "mce";
- const char QCameraParameters::KEY_QC_SUPPORTED_MEM_COLOR_ENHANCE_MODES[] = "mce-values";
- const char QCameraParameters::KEY_QC_DIS[] = "dis";
- const char QCameraParameters::KEY_QC_SUPPORTED_DIS_MODES[] = "dis-values";
- const char QCameraParameters::KEY_QC_VIDEO_HIGH_FRAME_RATE[] = "video-hfr";
- const char QCameraParameters::KEY_QC_SUPPORTED_VIDEO_HIGH_FRAME_RATE_MODES[] = "video-hfr-values";
- const char QCameraParameters::KEY_QC_REDEYE_REDUCTION[] = "redeye-reduction";
- const char QCameraParameters::KEY_QC_SUPPORTED_REDEYE_REDUCTION[] = "redeye-reduction-values";
- const char QCameraParameters::KEY_QC_HIGH_DYNAMIC_RANGE_IMAGING[] = "hdr";
- const char QCameraParameters::KEY_QC_SUPPORTED_HDR_IMAGING_MODES[] = "hdr-values";
- const char QCameraParameters::KEY_QC_ZSL[] = "zsl";
- const char QCameraParameters::KEY_QC_SUPPORTED_ZSL_MODES[] = "zsl-values";
- const char QCameraParameters::KEY_QC_ZSL_BURST_INTERVAL[] = "capture-burst-interval";
- const char QCameraParameters::KEY_QC_ZSL_BURST_LOOKBACK[] = "capture-burst-retroactive";
- const char QCameraParameters::KEY_QC_ZSL_QUEUE_DEPTH[] = "capture-burst-queue-depth";
- const char QCameraParameters::KEY_QC_CAMERA_MODE[] = "camera-mode";
- const char QCameraParameters::KEY_QC_AE_BRACKET_HDR[] = "ae-bracket-hdr";
- const char QCameraParameters::KEY_QC_SUPPORTED_AE_BRACKET_MODES[] = "ae-bracket-hdr-values";
- const char QCameraParameters::KEY_QC_SUPPORTED_RAW_FORMATS[] = "raw-format-values";
- const char QCameraParameters::KEY_QC_RAW_FORMAT[] = "raw-format";
- const char QCameraParameters::KEY_QC_ORIENTATION[] = "orientation";
- const char QCameraParameters::KEY_QC_SELECTABLE_ZONE_AF[] = "selectable-zone-af";
- const char QCameraParameters::KEY_QC_CAPTURE_BURST_EXPOSURE[] = "capture-burst-exposures";
- const char QCameraParameters::KEY_QC_NUM_SNAPSHOT_PER_SHUTTER[] = "num-snaps-per-shutter";
- const char QCameraParameters::KEY_QC_NO_DISPLAY_MODE[] = "no-display-mode";
- const char QCameraParameters::KEY_QC_RAW_PICUTRE_SIZE[] = "raw-size";
- const char QCameraParameters::KEY_QC_SUPPORTED_SKIN_TONE_ENHANCEMENT_MODES[] = "skinToneEnhancement-values";
- const char QCameraParameters::KEY_QC_SUPPORTED_LIVESNAPSHOT_SIZES[] = "supported-live-snapshot-sizes";
- const char QCameraParameters::KEY_QC_HDR_NEED_1X[] = "hdr-need-1x";
- const char QCameraParameters::KEY_QC_PREVIEW_FLIP[] = "preview-flip";
- const char QCameraParameters::KEY_QC_VIDEO_FLIP[] = "video-flip";
- const char QCameraParameters::KEY_QC_SNAPSHOT_PICTURE_FLIP[] = "snapshot-picture-flip";
- const char QCameraParameters::KEY_QC_SUPPORTED_FLIP_MODES[] = "flip-mode-values";
- const char QCameraParameters::KEY_QC_VIDEO_HDR[] = "video-hdr";
- const char QCameraParameters::KEY_QC_SUPPORTED_VIDEO_HDR_MODES[] = "video-hdr-values";
- // Values for effect settings.
- const char QCameraParameters::EFFECT_EMBOSS[] = "emboss";
- const char QCameraParameters::EFFECT_SKETCH[] = "sketch";
- const char QCameraParameters::EFFECT_NEON[] = "neon";
- // Values for auto exposure settings.
- const char QCameraParameters::TOUCH_AF_AEC_OFF[] = "touch-off";
- const char QCameraParameters::TOUCH_AF_AEC_ON[] = "touch-on";
- // Values for scene mode settings.
- const char QCameraParameters::SCENE_MODE_ASD[] = "asd"; // corresponds to CAMERA_BESTSHOT_AUTO in HAL
- const char QCameraParameters::SCENE_MODE_BACKLIGHT[] = "backlight";
- const char QCameraParameters::SCENE_MODE_FLOWERS[] = "flowers";
- const char QCameraParameters::SCENE_MODE_AR[] = "AR";
- const char QCameraParameters::SCENE_MODE_HDR[] = "hdr";
- // Formats for setPreviewFormat and setPictureFormat.
- const char QCameraParameters::PIXEL_FORMAT_YUV420SP_ADRENO[] = "yuv420sp-adreno";
- const char QCameraParameters::PIXEL_FORMAT_YV12[] = "yuv420p";
- const char QCameraParameters::PIXEL_FORMAT_NV12[] = "nv12";
- // Values for raw image formats
- const char QCameraParameters::QC_PIXEL_FORMAT_YUV_RAW_8BIT_YUYV[] = "yuv-raw8-yuyv";
- const char QCameraParameters::QC_PIXEL_FORMAT_YUV_RAW_8BIT_YVYU[] = "yuv-raw8-yvyu";
- const char QCameraParameters::QC_PIXEL_FORMAT_YUV_RAW_8BIT_UYVY[] = "yuv-raw8-uyvy";
- const char QCameraParameters::QC_PIXEL_FORMAT_YUV_RAW_8BIT_VYUY[] = "yuv-raw8-vyuy";
- const char QCameraParameters::QC_PIXEL_FORMAT_BAYER_QCOM_RAW_8GBRG[] = "bayer-qcom-8gbrg";
- const char QCameraParameters::QC_PIXEL_FORMAT_BAYER_QCOM_RAW_8GRBG[] = "bayer-qcom-8grbg";
- const char QCameraParameters::QC_PIXEL_FORMAT_BAYER_QCOM_RAW_8RGGB[] = "bayer-qcom-8rggb";
- const char QCameraParameters::QC_PIXEL_FORMAT_BAYER_QCOM_RAW_8BGGR[] = "bayer-qcom-8bggr";
- const char QCameraParameters::QC_PIXEL_FORMAT_BAYER_QCOM_RAW_10GBRG[] = "bayer-qcom-10gbrg";
- const char QCameraParameters::QC_PIXEL_FORMAT_BAYER_QCOM_RAW_10GRBG[] = "bayer-qcom-10grbg";
- const char QCameraParameters::QC_PIXEL_FORMAT_BAYER_QCOM_RAW_10RGGB[] = "bayer-qcom-10rggb";
- const char QCameraParameters::QC_PIXEL_FORMAT_BAYER_QCOM_RAW_10BGGR[] = "bayer-qcom-10bggr";
- const char QCameraParameters::QC_PIXEL_FORMAT_BAYER_QCOM_RAW_12GBRG[] = "bayer-qcom-12gbrg";
- const char QCameraParameters::QC_PIXEL_FORMAT_BAYER_QCOM_RAW_12GRBG[] = "bayer-qcom-12grbg";
- const char QCameraParameters::QC_PIXEL_FORMAT_BAYER_QCOM_RAW_12RGGB[] = "bayer-qcom-12rggb";
- const char QCameraParameters::QC_PIXEL_FORMAT_BAYER_QCOM_RAW_12BGGR[] = "bayer-qcom-12bggr";
- const char QCameraParameters::QC_PIXEL_FORMAT_BAYER_MIPI_RAW_8GBRG[] = "bayer-mipi-8gbrg";
- const char QCameraParameters::QC_PIXEL_FORMAT_BAYER_MIPI_RAW_8GRBG[] = "bayer-mipi-8grbg";
- const char QCameraParameters::QC_PIXEL_FORMAT_BAYER_MIPI_RAW_8RGGB[] = "bayer-mipi-8rggb";
- const char QCameraParameters::QC_PIXEL_FORMAT_BAYER_MIPI_RAW_8BGGR[] = "bayer-mipi-8bggr";
- const char QCameraParameters::QC_PIXEL_FORMAT_BAYER_MIPI_RAW_10GBRG[] = "bayer-mipi-10gbrg";
- const char QCameraParameters::QC_PIXEL_FORMAT_BAYER_MIPI_RAW_10GRBG[] = "bayer-mipi-10grbg";
- const char QCameraParameters::QC_PIXEL_FORMAT_BAYER_MIPI_RAW_10RGGB[] = "bayer-mipi-10rggb";
- const char QCameraParameters::QC_PIXEL_FORMAT_BAYER_MIPI_RAW_10BGGR[] = "bayer-mipi-10bggr";
- const char QCameraParameters::QC_PIXEL_FORMAT_BAYER_MIPI_RAW_12GBRG[] = "bayer-mipi-12gbrg";
- const char QCameraParameters::QC_PIXEL_FORMAT_BAYER_MIPI_RAW_12GRBG[] = "bayer-mipi-12grbg";
- const char QCameraParameters::QC_PIXEL_FORMAT_BAYER_MIPI_RAW_12RGGB[] = "bayer-mipi-12rggb";
- const char QCameraParameters::QC_PIXEL_FORMAT_BAYER_MIPI_RAW_12BGGR[] = "bayer-mipi-12bggr";
- const char QCameraParameters::QC_PIXEL_FORMAT_BAYER_IDEAL_QCOM_8GBRG[] = "bayer-ideal-qcom-8gbrg";
- const char QCameraParameters::QC_PIXEL_FORMAT_BAYER_IDEAL_QCOM_8GRBG[] = "bayer-ideal-qcom-8grbg";
- const char QCameraParameters::QC_PIXEL_FORMAT_BAYER_IDEAL_QCOM_8RGGB[] = "bayer-ideal-qcom-8rggb";
- const char QCameraParameters::QC_PIXEL_FORMAT_BAYER_IDEAL_QCOM_8BGGR[] = "bayer-ideal-qcom-8bggr";
- const char QCameraParameters::QC_PIXEL_FORMAT_BAYER_IDEAL_QCOM_10GBRG[] = "bayer-ideal-qcom-10gbrg";
- const char QCameraParameters::QC_PIXEL_FORMAT_BAYER_IDEAL_QCOM_10GRBG[] = "bayer-ideal-qcom-10grbg";
- const char QCameraParameters::QC_PIXEL_FORMAT_BAYER_IDEAL_QCOM_10RGGB[] = "bayer-ideal-qcom-10rggb";
- const char QCameraParameters::QC_PIXEL_FORMAT_BAYER_IDEAL_QCOM_10BGGR[] = "bayer-ideal-qcom-10bggr";
- const char QCameraParameters::QC_PIXEL_FORMAT_BAYER_IDEAL_QCOM_12GBRG[] = "bayer-ideal-qcom-12gbrg";
- const char QCameraParameters::QC_PIXEL_FORMAT_BAYER_IDEAL_QCOM_12GRBG[] = "bayer-ideal-qcom-12grbg";
- const char QCameraParameters::QC_PIXEL_FORMAT_BAYER_IDEAL_QCOM_12RGGB[] = "bayer-ideal-qcom-12rggb";
- const char QCameraParameters::QC_PIXEL_FORMAT_BAYER_IDEAL_QCOM_12BGGR[] = "bayer-ideal-qcom-12bggr";
- const char QCameraParameters::QC_PIXEL_FORMAT_BAYER_IDEAL_MIPI_8GBRG[] = "bayer-ideal-mipi-8gbrg";
- const char QCameraParameters::QC_PIXEL_FORMAT_BAYER_IDEAL_MIPI_8GRBG[] = "bayer-ideal-mipi-8grbg";
- const char QCameraParameters::QC_PIXEL_FORMAT_BAYER_IDEAL_MIPI_8RGGB[] = "bayer-ideal-mipi-8rggb";
- const char QCameraParameters::QC_PIXEL_FORMAT_BAYER_IDEAL_MIPI_8BGGR[] = "bayer-ideal-mipi-8bggr";
- const char QCameraParameters::QC_PIXEL_FORMAT_BAYER_IDEAL_MIPI_10GBRG[] = "bayer-ideal-mipi-10gbrg";
- const char QCameraParameters::QC_PIXEL_FORMAT_BAYER_IDEAL_MIPI_10GRBG[] = "bayer-ideal-mipi-10grbg";
- const char QCameraParameters::QC_PIXEL_FORMAT_BAYER_IDEAL_MIPI_10RGGB[] = "bayer-ideal-mipi-10rggb";
- const char QCameraParameters::QC_PIXEL_FORMAT_BAYER_IDEAL_MIPI_10BGGR[] = "bayer-ideal-mipi-10bggr";
- const char QCameraParameters::QC_PIXEL_FORMAT_BAYER_IDEAL_MIPI_12GBRG[] = "bayer-ideal-mipi-12gbrg";
- const char QCameraParameters::QC_PIXEL_FORMAT_BAYER_IDEAL_MIPI_12GRBG[] = "bayer-ideal-mipi-12grbg";
- const char QCameraParameters::QC_PIXEL_FORMAT_BAYER_IDEAL_MIPI_12RGGB[] = "bayer-ideal-mipi-12rggb";
- const char QCameraParameters::QC_PIXEL_FORMAT_BAYER_IDEAL_MIPI_12BGGR[] = "bayer-ideal-mipi-12bggr";
- const char QCameraParameters::QC_PIXEL_FORMAT_BAYER_IDEAL_PLAIN8_8GBRG[] = "bayer-ideal-plain8-8gbrg";
- const char QCameraParameters::QC_PIXEL_FORMAT_BAYER_IDEAL_PLAIN8_8GRBG[] = "bayer-ideal-plain8-8grbg";
- const char QCameraParameters::QC_PIXEL_FORMAT_BAYER_IDEAL_PLAIN8_8RGGB[] = "bayer-ideal-plain8-8rggb";
- const char QCameraParameters::QC_PIXEL_FORMAT_BAYER_IDEAL_PLAIN8_8BGGR[] = "bayer-ideal-plain8-8bggr";
- const char QCameraParameters::QC_PIXEL_FORMAT_BAYER_IDEAL_PLAIN16_8GBRG[] = "bayer-ideal-plain16-8gbrg";
- const char QCameraParameters::QC_PIXEL_FORMAT_BAYER_IDEAL_PLAIN16_8GRBG[] = "bayer-ideal-plain16-8grbg";
- const char QCameraParameters::QC_PIXEL_FORMAT_BAYER_IDEAL_PLAIN16_8RGGB[] = "bayer-ideal-plain16-8rggb";
- const char QCameraParameters::QC_PIXEL_FORMAT_BAYER_IDEAL_PLAIN16_8BGGR[] = "bayer-ideal-plain16-8bggr";
- const char QCameraParameters::QC_PIXEL_FORMAT_BAYER_IDEAL_PLAIN16_10GBRG[] = "bayer-ideal-plain16-10gbrg";
- const char QCameraParameters::QC_PIXEL_FORMAT_BAYER_IDEAL_PLAIN16_10GRBG[] = "bayer-ideal-plain16-10grbg";
- const char QCameraParameters::QC_PIXEL_FORMAT_BAYER_IDEAL_PLAIN16_10RGGB[] = "bayer-ideal-plain16-10rggb";
- const char QCameraParameters::QC_PIXEL_FORMAT_BAYER_IDEAL_PLAIN16_10BGGR[] = "bayer-ideal-plain16-10bggr";
- const char QCameraParameters::QC_PIXEL_FORMAT_BAYER_IDEAL_PLAIN16_12GBRG[] = "bayer-ideal-plain16-12gbrg";
- const char QCameraParameters::QC_PIXEL_FORMAT_BAYER_IDEAL_PLAIN16_12GRBG[] = "bayer-ideal-plain16-12grbg";
- const char QCameraParameters::QC_PIXEL_FORMAT_BAYER_IDEAL_PLAIN16_12RGGB[] = "bayer-ideal-plain16-12rggb";
- const char QCameraParameters::QC_PIXEL_FORMAT_BAYER_IDEAL_PLAIN16_12BGGR[] = "bayer-ideal-plain16-12bggr";
- // Values for ISO Settings
- const char QCameraParameters::ISO_AUTO[] = "auto";
- const char QCameraParameters::ISO_HJR[] = "ISO_HJR";
- const char QCameraParameters::ISO_100[] = "ISO100";
- const char QCameraParameters::ISO_200[] = "ISO200";
- const char QCameraParameters::ISO_400[] = "ISO400";
- const char QCameraParameters::ISO_800[] = "ISO800";
- const char QCameraParameters::ISO_1600[] = "ISO1600";
- // Values for auto exposure settings.
- const char QCameraParameters::AUTO_EXPOSURE_FRAME_AVG[] = "frame-average";
- const char QCameraParameters::AUTO_EXPOSURE_CENTER_WEIGHTED[] = "center-weighted";
- const char QCameraParameters::AUTO_EXPOSURE_SPOT_METERING[] = "spot-metering";
- const char QCameraParameters::AUTO_EXPOSURE_SMART_METERING[] = "smart-metering";
- const char QCameraParameters::AUTO_EXPOSURE_USER_METERING[] = "user-metering";
- const char QCameraParameters::AUTO_EXPOSURE_SPOT_METERING_ADV[] = "spot-metering-adv";
- const char QCameraParameters::AUTO_EXPOSURE_CENTER_WEIGHTED_ADV[] = "center-weighted-adv";
- const char QCameraParameters::KEY_QC_GPS_LATITUDE_REF[] = "gps-latitude-ref";
- const char QCameraParameters::KEY_QC_GPS_LONGITUDE_REF[] = "gps-longitude-ref";
- const char QCameraParameters::KEY_QC_GPS_ALTITUDE_REF[] = "gps-altitude-ref";
- const char QCameraParameters::KEY_QC_GPS_STATUS[] = "gps-status";
- const char QCameraParameters::KEY_QC_HISTOGRAM[] = "histogram";
- const char QCameraParameters::KEY_QC_SUPPORTED_HISTOGRAM_MODES[] = "histogram-values";
- const char QCameraParameters::VALUE_ENABLE[] = "enable";
- const char QCameraParameters::VALUE_DISABLE[] = "disable";
- const char QCameraParameters::VALUE_OFF[] = "off";
- const char QCameraParameters::VALUE_ON[] = "on";
- const char QCameraParameters::VALUE_TRUE[] = "true";
- const char QCameraParameters::VALUE_FALSE[] = "false";
- const char QCameraParameters::KEY_QC_SHARPNESS[] = "sharpness";
- const char QCameraParameters::KEY_QC_MIN_SHARPNESS[] = "min-sharpness";
- const char QCameraParameters::KEY_QC_MAX_SHARPNESS[] = "max-sharpness";
- const char QCameraParameters::KEY_QC_SHARPNESS_STEP[] = "sharpness-step";
- const char QCameraParameters::KEY_QC_CONTRAST[] = "contrast";
- const char QCameraParameters::KEY_QC_MIN_CONTRAST[] = "min-contrast";
- const char QCameraParameters::KEY_QC_MAX_CONTRAST[] = "max-contrast";
- const char QCameraParameters::KEY_QC_CONTRAST_STEP[] = "contrast-step";
- const char QCameraParameters::KEY_QC_SATURATION[] = "saturation";
- const char QCameraParameters::KEY_QC_MIN_SATURATION[] = "min-saturation";
- const char QCameraParameters::KEY_QC_MAX_SATURATION[] = "max-saturation";
- const char QCameraParameters::KEY_QC_SATURATION_STEP[] = "saturation-step";
- const char QCameraParameters::KEY_QC_BRIGHTNESS[] = "luma-adaptation";
- const char QCameraParameters::KEY_QC_MIN_BRIGHTNESS[] = "min-brightness";
- const char QCameraParameters::KEY_QC_MAX_BRIGHTNESS[] = "max-brightness";
- const char QCameraParameters::KEY_QC_BRIGHTNESS_STEP[] = "brightness-step";
- const char QCameraParameters::KEY_QC_SCE_FACTOR[] = "skinToneEnhancement";
- const char QCameraParameters::KEY_QC_MIN_SCE_FACTOR[] = "min-sce-factor";
- const char QCameraParameters::KEY_QC_MAX_SCE_FACTOR[] = "max-sce-factor";
- const char QCameraParameters::KEY_QC_SCE_FACTOR_STEP[] = "sce-factor-step";
- const char QCameraParameters::KEY_QC_SUPPORTED_CAMERA_FEATURES[] = "qc-camera-features";
- const char QCameraParameters::KEY_QC_MAX_NUM_REQUESTED_FACES[] = "qc-max-num-requested-faces";
- //Values for DENOISE
- const char QCameraParameters::DENOISE_OFF[] = "denoise-off";
- const char QCameraParameters::DENOISE_ON[] = "denoise-on";
- // Values for selectable zone af Settings
- const char QCameraParameters::FOCUS_ALGO_AUTO[] = "auto";
- const char QCameraParameters::FOCUS_ALGO_SPOT_METERING[] = "spot-metering";
- const char QCameraParameters::FOCUS_ALGO_CENTER_WEIGHTED[] = "center-weighted";
- const char QCameraParameters::FOCUS_ALGO_FRAME_AVERAGE[] = "frame-average";
- // Values for HFR settings.
- const char QCameraParameters::VIDEO_HFR_OFF[] = "off";
- const char QCameraParameters::VIDEO_HFR_2X[] = "60";
- const char QCameraParameters::VIDEO_HFR_3X[] = "90";
- const char QCameraParameters::VIDEO_HFR_4X[] = "120";
- const char QCameraParameters::VIDEO_HFR_5X[] = "150";
- // Values for HDR Bracketing settings.
- const char QCameraParameters::AE_BRACKET_OFF[] = "Off";
- const char QCameraParameters::AE_BRACKET[] = "AE-Bracket";
- // Values for FLIP settings.
- const char QCameraParameters::FLIP_MODE_OFF[] = "off";
- const char QCameraParameters::FLIP_MODE_V[] = "flip-v";
- const char QCameraParameters::FLIP_MODE_H[] = "flip-h";
- const char QCameraParameters::FLIP_MODE_VH[] = "flip-vh";
- static const char* portrait = "portrait";
- static const char* landscape = "landscape";
- const cam_dimension_t QCameraParameters::THUMBNAIL_SIZES_MAP[] = {
- { 512, 288 }, //1.777778
- { 480, 288 }, //1.666667
- { 256, 154 }, //1.66233
- { 432, 288 }, //1.5
- { 320, 240 }, //1.33333
- { 176, 144 }, //1.222222
- { 0, 0 } // required by Android SDK
- };
- const QCameraParameters::QCameraMap QCameraParameters::AUTO_EXPOSURE_MAP[] = {
- { AUTO_EXPOSURE_FRAME_AVG, CAM_AEC_MODE_FRAME_AVERAGE },
- { AUTO_EXPOSURE_CENTER_WEIGHTED, CAM_AEC_MODE_CENTER_WEIGHTED },
- { AUTO_EXPOSURE_SPOT_METERING, CAM_AEC_MODE_SPOT_METERING },
- { AUTO_EXPOSURE_SMART_METERING, CAM_AEC_MODE_SMART_METERING },
- { AUTO_EXPOSURE_USER_METERING, CAM_AEC_MODE_USER_METERING },
- { AUTO_EXPOSURE_SPOT_METERING_ADV, CAM_AEC_MODE_SPOT_METERING_ADV },
- { AUTO_EXPOSURE_CENTER_WEIGHTED_ADV, CAM_AEC_MODE_CENTER_WEIGHTED_ADV },
- };
- const QCameraParameters::QCameraMap QCameraParameters::PREVIEW_FORMATS_MAP[] = {
- {PIXEL_FORMAT_YUV420SP, CAM_FORMAT_YUV_420_NV21},
- {PIXEL_FORMAT_YUV420P, CAM_FORMAT_YUV_420_YV12},
- {PIXEL_FORMAT_YUV420SP_ADRENO, CAM_FORMAT_YUV_420_NV21_ADRENO},
- {PIXEL_FORMAT_YV12, CAM_FORMAT_YUV_420_YV12},
- {PIXEL_FORMAT_NV12, CAM_FORMAT_YUV_420_NV12}
- };
- const QCameraParameters::QCameraMap QCameraParameters::PICTURE_TYPES_MAP[] = {
- {PIXEL_FORMAT_JPEG, CAM_FORMAT_JPEG},
- {PIXEL_FORMAT_YUV422SP, CAM_FORMAT_YUV_422_NV16},
- {QC_PIXEL_FORMAT_YUV_RAW_8BIT_YUYV, CAM_FORMAT_YUV_RAW_8BIT_YUYV},
- {QC_PIXEL_FORMAT_YUV_RAW_8BIT_YVYU, CAM_FORMAT_YUV_RAW_8BIT_YVYU},
- {QC_PIXEL_FORMAT_YUV_RAW_8BIT_UYVY, CAM_FORMAT_YUV_RAW_8BIT_UYVY},
- {QC_PIXEL_FORMAT_YUV_RAW_8BIT_VYUY, CAM_FORMAT_YUV_RAW_8BIT_VYUY},
- {QC_PIXEL_FORMAT_BAYER_QCOM_RAW_8GBRG, CAM_FORMAT_BAYER_QCOM_RAW_8BPP_GBRG},
- {QC_PIXEL_FORMAT_BAYER_QCOM_RAW_8GRBG, CAM_FORMAT_BAYER_QCOM_RAW_8BPP_GRBG},
- {QC_PIXEL_FORMAT_BAYER_QCOM_RAW_8RGGB, CAM_FORMAT_BAYER_QCOM_RAW_8BPP_RGGB},
- {QC_PIXEL_FORMAT_BAYER_QCOM_RAW_8BGGR, CAM_FORMAT_BAYER_QCOM_RAW_8BPP_BGGR},
- {QC_PIXEL_FORMAT_BAYER_QCOM_RAW_10GBRG, CAM_FORMAT_BAYER_QCOM_RAW_10BPP_GBRG},
- {QC_PIXEL_FORMAT_BAYER_QCOM_RAW_10GRBG, CAM_FORMAT_BAYER_QCOM_RAW_10BPP_GRBG},
- {QC_PIXEL_FORMAT_BAYER_QCOM_RAW_10RGGB, CAM_FORMAT_BAYER_QCOM_RAW_10BPP_RGGB},
- {QC_PIXEL_FORMAT_BAYER_QCOM_RAW_10BGGR, CAM_FORMAT_BAYER_QCOM_RAW_10BPP_BGGR},
- {QC_PIXEL_FORMAT_BAYER_QCOM_RAW_12GBRG, CAM_FORMAT_BAYER_QCOM_RAW_12BPP_GBRG},
- {QC_PIXEL_FORMAT_BAYER_QCOM_RAW_12GRBG, CAM_FORMAT_BAYER_QCOM_RAW_12BPP_GRBG},
- {QC_PIXEL_FORMAT_BAYER_QCOM_RAW_12RGGB, CAM_FORMAT_BAYER_QCOM_RAW_12BPP_RGGB},
- {QC_PIXEL_FORMAT_BAYER_QCOM_RAW_12BGGR, CAM_FORMAT_BAYER_QCOM_RAW_12BPP_BGGR},
- {QC_PIXEL_FORMAT_BAYER_MIPI_RAW_8GBRG, CAM_FORMAT_BAYER_MIPI_RAW_8BPP_GBRG},
- {QC_PIXEL_FORMAT_BAYER_MIPI_RAW_8GRBG, CAM_FORMAT_BAYER_MIPI_RAW_8BPP_GRBG},
- {QC_PIXEL_FORMAT_BAYER_MIPI_RAW_8RGGB, CAM_FORMAT_BAYER_MIPI_RAW_8BPP_RGGB},
- {QC_PIXEL_FORMAT_BAYER_MIPI_RAW_8BGGR, CAM_FORMAT_BAYER_MIPI_RAW_8BPP_BGGR},
- {QC_PIXEL_FORMAT_BAYER_MIPI_RAW_10GBRG, CAM_FORMAT_BAYER_MIPI_RAW_10BPP_GBRG},
- {QC_PIXEL_FORMAT_BAYER_MIPI_RAW_10GRBG, CAM_FORMAT_BAYER_MIPI_RAW_10BPP_GRBG},
- {QC_PIXEL_FORMAT_BAYER_MIPI_RAW_10RGGB, CAM_FORMAT_BAYER_MIPI_RAW_10BPP_RGGB},
- {QC_PIXEL_FORMAT_BAYER_MIPI_RAW_10BGGR, CAM_FORMAT_BAYER_MIPI_RAW_10BPP_BGGR},
- {QC_PIXEL_FORMAT_BAYER_MIPI_RAW_12GBRG, CAM_FORMAT_BAYER_MIPI_RAW_12BPP_GBRG},
- {QC_PIXEL_FORMAT_BAYER_MIPI_RAW_12GRBG, CAM_FORMAT_BAYER_MIPI_RAW_12BPP_GRBG},
- {QC_PIXEL_FORMAT_BAYER_MIPI_RAW_12RGGB, CAM_FORMAT_BAYER_MIPI_RAW_12BPP_RGGB},
- {QC_PIXEL_FORMAT_BAYER_MIPI_RAW_12BGGR, CAM_FORMAT_BAYER_MIPI_RAW_12BPP_BGGR},
- {QC_PIXEL_FORMAT_BAYER_IDEAL_QCOM_8GBRG, CAM_FORMAT_BAYER_IDEAL_RAW_QCOM_8BPP_GBRG},
- {QC_PIXEL_FORMAT_BAYER_IDEAL_QCOM_8GRBG, CAM_FORMAT_BAYER_IDEAL_RAW_QCOM_8BPP_GRBG},
- {QC_PIXEL_FORMAT_BAYER_IDEAL_QCOM_8RGGB, CAM_FORMAT_BAYER_IDEAL_RAW_QCOM_8BPP_RGGB},
- {QC_PIXEL_FORMAT_BAYER_IDEAL_QCOM_8BGGR, CAM_FORMAT_BAYER_IDEAL_RAW_QCOM_8BPP_BGGR},
- {QC_PIXEL_FORMAT_BAYER_IDEAL_QCOM_10GBRG, CAM_FORMAT_BAYER_IDEAL_RAW_QCOM_10BPP_GBRG},
- {QC_PIXEL_FORMAT_BAYER_IDEAL_QCOM_10GRBG, CAM_FORMAT_BAYER_IDEAL_RAW_QCOM_10BPP_GRBG},
- {QC_PIXEL_FORMAT_BAYER_IDEAL_QCOM_10RGGB, CAM_FORMAT_BAYER_IDEAL_RAW_QCOM_10BPP_RGGB},
- {QC_PIXEL_FORMAT_BAYER_IDEAL_QCOM_10BGGR, CAM_FORMAT_BAYER_IDEAL_RAW_QCOM_10BPP_BGGR},
- {QC_PIXEL_FORMAT_BAYER_IDEAL_QCOM_12GBRG, CAM_FORMAT_BAYER_IDEAL_RAW_QCOM_12BPP_GBRG},
- {QC_PIXEL_FORMAT_BAYER_IDEAL_QCOM_12GRBG, CAM_FORMAT_BAYER_IDEAL_RAW_QCOM_12BPP_GRBG},
- {QC_PIXEL_FORMAT_BAYER_IDEAL_QCOM_12RGGB, CAM_FORMAT_BAYER_IDEAL_RAW_QCOM_12BPP_RGGB},
- {QC_PIXEL_FORMAT_BAYER_IDEAL_QCOM_12BGGR, CAM_FORMAT_BAYER_IDEAL_RAW_QCOM_12BPP_BGGR},
- {QC_PIXEL_FORMAT_BAYER_IDEAL_MIPI_8GBRG, CAM_FORMAT_BAYER_IDEAL_RAW_MIPI_8BPP_GBRG},
- {QC_PIXEL_FORMAT_BAYER_IDEAL_MIPI_8GRBG, CAM_FORMAT_BAYER_IDEAL_RAW_MIPI_8BPP_GRBG},
- {QC_PIXEL_FORMAT_BAYER_IDEAL_MIPI_8RGGB, CAM_FORMAT_BAYER_IDEAL_RAW_MIPI_8BPP_RGGB},
- {QC_PIXEL_FORMAT_BAYER_IDEAL_MIPI_8BGGR, CAM_FORMAT_BAYER_IDEAL_RAW_MIPI_8BPP_BGGR},
- {QC_PIXEL_FORMAT_BAYER_IDEAL_MIPI_10GBRG, CAM_FORMAT_BAYER_IDEAL_RAW_MIPI_10BPP_GBRG},
- {QC_PIXEL_FORMAT_BAYER_IDEAL_MIPI_10GRBG, CAM_FORMAT_BAYER_IDEAL_RAW_MIPI_10BPP_GRBG},
- {QC_PIXEL_FORMAT_BAYER_IDEAL_MIPI_10RGGB, CAM_FORMAT_BAYER_IDEAL_RAW_MIPI_10BPP_RGGB},
- {QC_PIXEL_FORMAT_BAYER_IDEAL_MIPI_10BGGR, CAM_FORMAT_BAYER_IDEAL_RAW_MIPI_10BPP_BGGR},
- {QC_PIXEL_FORMAT_BAYER_IDEAL_MIPI_12GBRG, CAM_FORMAT_BAYER_IDEAL_RAW_MIPI_12BPP_GBRG},
- {QC_PIXEL_FORMAT_BAYER_IDEAL_MIPI_12GRBG, CAM_FORMAT_BAYER_IDEAL_RAW_MIPI_12BPP_GRBG},
- {QC_PIXEL_FORMAT_BAYER_IDEAL_MIPI_12RGGB, CAM_FORMAT_BAYER_IDEAL_RAW_MIPI_12BPP_RGGB},
- {QC_PIXEL_FORMAT_BAYER_IDEAL_MIPI_12BGGR, CAM_FORMAT_BAYER_IDEAL_RAW_MIPI_12BPP_BGGR},
- {QC_PIXEL_FORMAT_BAYER_IDEAL_PLAIN8_8GBRG, CAM_FORMAT_BAYER_IDEAL_RAW_PLAIN8_8BPP_GBRG},
- {QC_PIXEL_FORMAT_BAYER_IDEAL_PLAIN8_8GRBG, CAM_FORMAT_BAYER_IDEAL_RAW_PLAIN8_8BPP_GRBG},
- {QC_PIXEL_FORMAT_BAYER_IDEAL_PLAIN8_8RGGB, CAM_FORMAT_BAYER_IDEAL_RAW_PLAIN8_8BPP_RGGB},
- {QC_PIXEL_FORMAT_BAYER_IDEAL_PLAIN8_8BGGR, CAM_FORMAT_BAYER_IDEAL_RAW_PLAIN8_8BPP_BGGR},
- {QC_PIXEL_FORMAT_BAYER_IDEAL_PLAIN16_8GBRG, CAM_FORMAT_BAYER_IDEAL_RAW_PLAIN16_8BPP_GBRG},
- {QC_PIXEL_FORMAT_BAYER_IDEAL_PLAIN16_8GRBG, CAM_FORMAT_BAYER_IDEAL_RAW_PLAIN16_8BPP_GRBG},
- {QC_PIXEL_FORMAT_BAYER_IDEAL_PLAIN16_8RGGB, CAM_FORMAT_BAYER_IDEAL_RAW_PLAIN16_8BPP_RGGB},
- {QC_PIXEL_FORMAT_BAYER_IDEAL_PLAIN16_8BGGR, CAM_FORMAT_BAYER_IDEAL_RAW_PLAIN16_8BPP_BGGR},
- {QC_PIXEL_FORMAT_BAYER_IDEAL_PLAIN16_10GBRG, CAM_FORMAT_BAYER_IDEAL_RAW_PLAIN16_10BPP_GBRG},
- {QC_PIXEL_FORMAT_BAYER_IDEAL_PLAIN16_10GRBG, CAM_FORMAT_BAYER_IDEAL_RAW_PLAIN16_10BPP_GRBG},
- {QC_PIXEL_FORMAT_BAYER_IDEAL_PLAIN16_10RGGB, CAM_FORMAT_BAYER_IDEAL_RAW_PLAIN16_10BPP_RGGB},
- {QC_PIXEL_FORMAT_BAYER_IDEAL_PLAIN16_10BGGR, CAM_FORMAT_BAYER_IDEAL_RAW_PLAIN16_10BPP_BGGR},
- {QC_PIXEL_FORMAT_BAYER_IDEAL_PLAIN16_12GBRG, CAM_FORMAT_BAYER_IDEAL_RAW_PLAIN16_12BPP_GBRG},
- {QC_PIXEL_FORMAT_BAYER_IDEAL_PLAIN16_12GRBG, CAM_FORMAT_BAYER_IDEAL_RAW_PLAIN16_12BPP_GRBG},
- {QC_PIXEL_FORMAT_BAYER_IDEAL_PLAIN16_12RGGB, CAM_FORMAT_BAYER_IDEAL_RAW_PLAIN16_12BPP_RGGB},
- {QC_PIXEL_FORMAT_BAYER_IDEAL_PLAIN16_12BGGR, CAM_FORMAT_BAYER_IDEAL_RAW_PLAIN16_12BPP_BGGR}
- };
- const QCameraParameters::QCameraMap QCameraParameters::RAW_FORMATS_MAP[] = {
- };
- const QCameraParameters::QCameraMap QCameraParameters::FOCUS_MODES_MAP[] = {
- { FOCUS_MODE_AUTO, CAM_FOCUS_MODE_AUTO },
- { FOCUS_MODE_INFINITY, CAM_FOCUS_MODE_INFINITY },
- { FOCUS_MODE_MACRO, CAM_FOCUS_MODE_MACRO },
- { FOCUS_MODE_FIXED, CAM_FOCUS_MODE_FIXED },
- { FOCUS_MODE_EDOF, CAM_FOCUS_MODE_EDOF },
- { FOCUS_MODE_CONTINUOUS_PICTURE, CAM_FOCUS_MODE_CONTINOUS_PICTURE },
- { FOCUS_MODE_CONTINUOUS_VIDEO, CAM_FOCUS_MODE_CONTINOUS_VIDEO }
- };
- const QCameraParameters::QCameraMap QCameraParameters::EFFECT_MODES_MAP[] = {
- { EFFECT_NONE, CAM_EFFECT_MODE_OFF },
- { EFFECT_MONO, CAM_EFFECT_MODE_MONO },
- { EFFECT_NEGATIVE, CAM_EFFECT_MODE_NEGATIVE },
- { EFFECT_SOLARIZE, CAM_EFFECT_MODE_SOLARIZE },
- { EFFECT_SEPIA, CAM_EFFECT_MODE_SEPIA },
- { EFFECT_POSTERIZE, CAM_EFFECT_MODE_POSTERIZE },
- { EFFECT_WHITEBOARD, CAM_EFFECT_MODE_WHITEBOARD },
- { EFFECT_BLACKBOARD, CAM_EFFECT_MODE_BLACKBOARD },
- { EFFECT_AQUA, CAM_EFFECT_MODE_AQUA },
- { EFFECT_EMBOSS, CAM_EFFECT_MODE_EMBOSS },
- { EFFECT_SKETCH, CAM_EFFECT_MODE_SKETCH },
- { EFFECT_NEON, CAM_EFFECT_MODE_NEON }
- };
- const QCameraParameters::QCameraMap QCameraParameters::SCENE_MODES_MAP[] = {
- { SCENE_MODE_AUTO, CAM_SCENE_MODE_OFF },
- { SCENE_MODE_ACTION, CAM_SCENE_MODE_ACTION },
- { SCENE_MODE_PORTRAIT, CAM_SCENE_MODE_PORTRAIT },
- { SCENE_MODE_LANDSCAPE, CAM_SCENE_MODE_LANDSCAPE },
- { SCENE_MODE_NIGHT, CAM_SCENE_MODE_NIGHT },
- { SCENE_MODE_NIGHT_PORTRAIT, CAM_SCENE_MODE_NIGHT_PORTRAIT },
- { SCENE_MODE_THEATRE, CAM_SCENE_MODE_THEATRE },
- { SCENE_MODE_BEACH, CAM_SCENE_MODE_BEACH },
- { SCENE_MODE_SNOW, CAM_SCENE_MODE_SNOW },
- { SCENE_MODE_SUNSET, CAM_SCENE_MODE_SUNSET },
- { SCENE_MODE_STEADYPHOTO, CAM_SCENE_MODE_ANTISHAKE },
- { SCENE_MODE_FIREWORKS , CAM_SCENE_MODE_FIREWORKS },
- { SCENE_MODE_SPORTS , CAM_SCENE_MODE_SPORTS },
- { SCENE_MODE_PARTY, CAM_SCENE_MODE_PARTY },
- { SCENE_MODE_CANDLELIGHT, CAM_SCENE_MODE_CANDLELIGHT },
- { SCENE_MODE_ASD, CAM_SCENE_MODE_AUTO },
- { SCENE_MODE_BACKLIGHT, CAM_SCENE_MODE_BACKLIGHT },
- { SCENE_MODE_FLOWERS, CAM_SCENE_MODE_FLOWERS },
- { SCENE_MODE_AR, CAM_SCENE_MODE_AR },
- { SCENE_MODE_HDR, CAM_SCENE_MODE_OFF },
- };
- const QCameraParameters::QCameraMap QCameraParameters::FLASH_MODES_MAP[] = {
- { FLASH_MODE_OFF, CAM_FLASH_MODE_OFF },
- { FLASH_MODE_AUTO, CAM_FLASH_MODE_AUTO },
- { FLASH_MODE_ON, CAM_FLASH_MODE_ON },
- { FLASH_MODE_TORCH, CAM_FLASH_MODE_TORCH }
- };
- const QCameraParameters::QCameraMap QCameraParameters::FOCUS_ALGO_MAP[] = {
- { FOCUS_ALGO_AUTO, CAM_FOCUS_ALGO_AUTO },
- { FOCUS_ALGO_SPOT_METERING, CAM_FOCUS_ALGO_SPOT },
- { FOCUS_ALGO_CENTER_WEIGHTED, CAM_FOCUS_ALGO_CENTER_WEIGHTED },
- { FOCUS_ALGO_FRAME_AVERAGE, CAM_FOCUS_ALGO_AVERAGE }
- };
- const QCameraParameters::QCameraMap QCameraParameters::WHITE_BALANCE_MODES_MAP[] = {
- { WHITE_BALANCE_AUTO, CAM_WB_MODE_AUTO },
- { WHITE_BALANCE_INCANDESCENT, CAM_WB_MODE_INCANDESCENT },
- { WHITE_BALANCE_FLUORESCENT, CAM_WB_MODE_FLUORESCENT },
- { WHITE_BALANCE_WARM_FLUORESCENT,CAM_WB_MODE_WARM_FLUORESCENT},
- { WHITE_BALANCE_DAYLIGHT, CAM_WB_MODE_DAYLIGHT },
- { WHITE_BALANCE_CLOUDY_DAYLIGHT, CAM_WB_MODE_CLOUDY_DAYLIGHT },
- { WHITE_BALANCE_TWILIGHT, CAM_WB_MODE_TWILIGHT },
- { WHITE_BALANCE_SHADE, CAM_WB_MODE_SHADE }
- };
- const QCameraParameters::QCameraMap QCameraParameters::ANTIBANDING_MODES_MAP[] = {
- { ANTIBANDING_OFF, CAM_ANTIBANDING_MODE_OFF },
- { ANTIBANDING_50HZ, CAM_ANTIBANDING_MODE_50HZ },
- { ANTIBANDING_60HZ, CAM_ANTIBANDING_MODE_60HZ },
- { ANTIBANDING_AUTO, CAM_ANTIBANDING_MODE_AUTO }
- };
- const QCameraParameters::QCameraMap QCameraParameters::ISO_MODES_MAP[] = {
- { ISO_AUTO, CAM_ISO_MODE_AUTO },
- { ISO_HJR, CAM_ISO_MODE_DEBLUR },
- { ISO_100, CAM_ISO_MODE_100 },
- { ISO_200, CAM_ISO_MODE_200 },
- { ISO_400, CAM_ISO_MODE_400 },
- { ISO_800, CAM_ISO_MODE_800 },
- { ISO_1600, CAM_ISO_MODE_1600 }
- };
- const QCameraParameters::QCameraMap QCameraParameters::HFR_MODES_MAP[] = {
- { VIDEO_HFR_OFF, CAM_HFR_MODE_OFF },
- { VIDEO_HFR_2X, CAM_HFR_MODE_60FPS },
- { VIDEO_HFR_3X, CAM_HFR_MODE_90FPS },
- { VIDEO_HFR_4X, CAM_HFR_MODE_120FPS },
- { VIDEO_HFR_5X, CAM_HFR_MODE_150FPS }
- };
- const QCameraParameters::QCameraMap QCameraParameters::BRACKETING_MODES_MAP[] = {
- { AE_BRACKET_OFF, CAM_EXP_BRACKETING_OFF },
- { AE_BRACKET, CAM_EXP_BRACKETING_ON }
- };
- const QCameraParameters::QCameraMap QCameraParameters::ON_OFF_MODES_MAP[] = {
- { VALUE_OFF, 0 },
- { VALUE_ON, 1 }
- };
- const QCameraParameters::QCameraMap QCameraParameters::TOUCH_AF_AEC_MODES_MAP[] = {
- { QCameraParameters::TOUCH_AF_AEC_OFF, 0 },
- { QCameraParameters::TOUCH_AF_AEC_ON, 1 }
- };
- const QCameraParameters::QCameraMap QCameraParameters::ENABLE_DISABLE_MODES_MAP[] = {
- { VALUE_ENABLE, 1 },
- { VALUE_DISABLE, 0 }
- };
- const QCameraParameters::QCameraMap QCameraParameters::DENOISE_ON_OFF_MODES_MAP[] = {
- { DENOISE_OFF, 0 },
- { DENOISE_ON, 1 }
- };
- const QCameraParameters::QCameraMap QCameraParameters::TRUE_FALSE_MODES_MAP[] = {
- { VALUE_FALSE, 0},
- { VALUE_TRUE, 1}
- };
- const QCameraParameters::QCameraMap QCameraParameters::FLIP_MODES_MAP[] = {
- {FLIP_MODE_OFF, 0},
- {FLIP_MODE_V, FLIP_V},
- {FLIP_MODE_H, FLIP_H},
- {FLIP_MODE_VH, FLIP_V_H}
- };
- #define DEFAULT_CAMERA_AREA "(0, 0, 0, 0, 0)"
- #define DATA_PTR(MEM_OBJ,INDEX) MEM_OBJ->getPtr( INDEX )
- /*===========================================================================
- * FUNCTION : QCameraParameters
- *
- * DESCRIPTION: default constructor of QCameraParameters
- *
- * PARAMETERS : none
- *
- * RETURN : None
- *==========================================================================*/
- QCameraParameters::QCameraParameters()
- : CameraParameters(),
- m_pCapability(NULL),
- m_pCamOpsTbl(NULL),
- m_pParamHeap(NULL),
- m_pParamBuf(NULL),
- m_bZslMode(false),
- m_bZslMode_new(false),
- m_bRecordingHint(false),
- m_bRecordingHint_new(false),
- m_bHistogramEnabled(false),
- m_nFaceProcMask(0),
- m_bDebugFps(false),
- mFocusMode(CAM_FOCUS_MODE_MAX),
- mPreviewFormat(CAM_FORMAT_YUV_420_NV21),
- mPictureFormat(CAM_FORMAT_JPEG),
- m_bNeedRestart(false),
- m_bNoDisplayMode(false),
- m_bWNROn(false),
- m_bNeedLockCAF(false),
- m_bCAFLocked(false),
- m_bAFRunning(false),
- m_tempMap()
- {
- char value[PROPERTY_VALUE_MAX];
- // TODO: may move to parameter instead of sysprop
- property_get("persist.debug.sf.showfps", value, "0");
- m_bDebugFps = atoi(value) > 0 ? true : false;
- // For thermal mode, it should be set as system property
- // because system property applies to all applications, while
- // parameters only apply to specific app.
- property_get("persist.camera.thermal.mode", value, "fps");
- if (!strcmp(value, "frameskip")) {
- m_ThermalMode = QCAMERA_THERMAL_ADJUST_FRAMESKIP;
- } else {
- if (strcmp(value, "fps"))
- ALOGE("%s: Invalid camera thermal mode %s", __func__, value);
- m_ThermalMode = QCAMERA_THERMAL_ADJUST_FPS;
- }
- memset(&m_LiveSnapshotSize, 0, sizeof(m_LiveSnapshotSize));
- }
- /*===========================================================================
- * FUNCTION : QCameraParameters
- *
- * DESCRIPTION: constructor of QCameraParameters
- *
- * PARAMETERS :
- * @params : parameters in string
- *
- * RETURN : None
- *==========================================================================*/
- QCameraParameters::QCameraParameters(const String8 ¶ms)
- : CameraParameters(params),
- m_pCapability(NULL),
- m_pCamOpsTbl(NULL),
- m_pParamHeap(NULL),
- m_pParamBuf(NULL),
- m_bZslMode(false),
- m_bZslMode_new(false),
- m_bRecordingHint(false),
- m_bRecordingHint_new(false),
- m_bHistogramEnabled(false),
- m_nFaceProcMask(0),
- m_bDebugFps(false),
- mFocusMode(CAM_FOCUS_MODE_MAX),
- mPreviewFormat(CAM_FORMAT_YUV_420_NV21),
- mPictureFormat(CAM_FORMAT_JPEG),
- m_bNeedRestart(false),
- m_bNoDisplayMode(false),
- m_bWNROn(false),
- m_bNeedLockCAF(false),
- m_bCAFLocked(false),
- m_bAFRunning(false),
- m_tempMap()
- {
- memset(&m_LiveSnapshotSize, 0, sizeof(m_LiveSnapshotSize));
- }
- /*===========================================================================
- * FUNCTION : ~QCameraParameters
- *
- * DESCRIPTION: deconstructor of QCameraParameters
- *
- * PARAMETERS : none
- *
- * RETURN : None
- *==========================================================================*/
- QCameraParameters::~QCameraParameters()
- {
- deinit();
- }
- /*===========================================================================
- * FUNCTION : createSizesString
- *
- * DESCRIPTION: create string obj contains array of dimensions
- *
- * PARAMETERS :
- * @sizes : array of dimensions
- * @len : size of dimension array
- *
- * RETURN : string obj
- *==========================================================================*/
- String8 QCameraParameters::createSizesString(const cam_dimension_t *sizes, int len)
- {
- String8 str;
- char buffer[32];
- if (len > 0) {
- snprintf(buffer, sizeof(buffer), "%dx%d", sizes[0].width, sizes[0].height);
- str.append(buffer);
- }
- for (int i = 1; i < len; i++) {
- snprintf(buffer, sizeof(buffer), ",%dx%d", sizes[i].width, sizes[i].height);
- str.append(buffer);
- }
- return str;
- }
- /*===========================================================================
- * FUNCTION : createValuesString
- *
- * DESCRIPTION: create string obj contains array of values from map when matched
- * from input values array
- *
- * PARAMETERS :
- * @values : array of values
- * @len : size of values array
- * @map : map contains the mapping between values and enums
- * @map_len : size of the map
- *
- * RETURN : string obj
- *==========================================================================*/
- String8 QCameraParameters::createValuesString(const int *values,
- int len,
- const QCameraMap* map,
- int map_len)
- {
- String8 str;
- int count = 0;
- for (int i = 0; i < len; i++ ) {
- for (int j = 0; j < map_len; j ++)
- if (map[j].val == values[i]) {
- if (NULL != map[j].desc) {
- if (count > 0) {
- str.append(",");
- }
- str.append(map[j].desc);
- count++;
- break; //loop j
- }
- }
- }
- return str;
- }
- /*===========================================================================
- * FUNCTION : createValuesStringFromMap
- *
- * DESCRIPTION: create string obj contains array of values directly from map
- *
- * PARAMETERS :
- * @map : map contains the mapping between values and enums
- * @map_len : size of the map
- *
- * RETURN : string obj
- *==========================================================================*/
- String8 QCameraParameters::createValuesStringFromMap(const QCameraMap* map,
- int map_len)
- {
- String8 str;
- for (int i = 0; i < map_len; i++) {
- if (NULL != map[i].desc) {
- if (i > 0) {
- str.append(",");
- }
- str.append(map[i].desc);
- }
- }
- return str;
- }
- /*===========================================================================
- * FUNCTION : createZoomRatioValuesString
- *
- * DESCRIPTION: create string obj contains array of zoom ratio values
- *
- * PARAMETERS :
- * @zoomRaios : array of zoom ratios
- * @length : size of the array
- *
- * RETURN : string obj
- *==========================================================================*/
- String8 QCameraParameters::createZoomRatioValuesString(int *zoomRatios, int length)
- {
- String8 str;
- char buffer[32] = {0};
- if(length > 0){
- snprintf(buffer, sizeof(buffer), "%d", zoomRatios[0]);
- str.append(buffer);
- }
- for (int i =1;i<length;i++){
- memset(buffer, 0, sizeof(buffer));
- snprintf(buffer, sizeof(buffer), ",%d", zoomRatios[i]);
- str.append(buffer);
- }
- return str;
- }
- /*===========================================================================
- * FUNCTION : createHfrValuesString
- *
- * DESCRIPTION: create string obj contains array of hfr values from map when
- * matched from input hfr values
- *
- * PARAMETERS :
- * @values : array of hfr info
- * @len : size of the array
- * @map : map of hfr string value and enum
- * map_len : size of map
- *
- * RETURN : string obj
- *==========================================================================*/
- String8 QCameraParameters::createHfrValuesString(
- const cam_hfr_info_t *values,
- int len,
- const QCameraMap* map,
- int map_len)
- {
- String8 str;
- int count = 0;
- for (int i = 0; i < len; i++ ) {
- for (int j = 0; j < map_len; j ++)
- if (map[j].val == (int)values[i].mode) {
- if (NULL != map[j].desc) {
- if (count > 0) {
- str.append(",");
- }
- str.append(map[j].desc);
- count++;
- break; //loop j
- }
- }
- }
- return str;
- }
- /*===========================================================================
- * FUNCTION : createHfrSizesString
- *
- * DESCRIPTION: create string obj contains array of hfr sizes
- *
- * PARAMETERS :
- * @values : array of hfr info
- * @len : size of the array
- *
- * RETURN : string obj
- *==========================================================================*/
- String8 QCameraParameters::createHfrSizesString(
- const cam_hfr_info_t *values,
- int len)
- {
- String8 str;
- char buffer[32];
- if (len > 0) {
- snprintf(buffer, sizeof(buffer), "%dx%d",
- values[0].dim.width, values[0].dim.height);
- str.append(buffer);
- }
- for (int i = 1; i < len; i++) {
- snprintf(buffer, sizeof(buffer), ",%dx%d",
- values[i].dim.width, values[i].dim.height);
- str.append(buffer);
- }
- return str;
- }
- /*===========================================================================
- * FUNCTION : compareFPSValues
- *
- * DESCRIPTION: helper function for fps sorting
- *
- * PARAMETERS :
- * @p1 : first array element
- * @p2 : second array element
- *
- * RETURN : -1 - left element is greater than right
- * 0 - elements are equals
- * 1 - left element is less than right
- *==========================================================================*/
- int QCameraParameters::compareFPSValues(const void *p1, const void *p2)
- {
- if ( *( (int *) p1) > *( (int *) p2) ) {
- return -1;
- } else if ( *( (int *) p1) < *( (int *) p2) ) {
- return 1;
- }
- return 0;
- }
- /*===========================================================================
- * FUNCTION : createFpsString
- *
- * DESCRIPTION: create string obj contains array of FPS rates
- *
- * PARAMETERS :
- * @fps : array of fps ranges
- * @len : size of the array
- *
- * RETURN : string obj
- *==========================================================================*/
- String8 QCameraParameters::createFpsString(const cam_fps_range_t *fps, int len)
- {
- String8 str;
- char buffer[32];
- int duplicate = INT_MAX;
- int *fpsValues = new int[len];
- for (int i = 0; i < len; i++ ) {
- fpsValues[i] = int(fps[i].max_fps);
- }
- qsort(fpsValues, len, sizeof(int), compareFPSValues);
- for (int i = 0; i < len; i++ ) {
- if ( duplicate != fpsValues[i] ) {
- snprintf(buffer, sizeof(buffer), "%d", fpsValues[i]);
- str.append(buffer);
- if (i < len-1) {
- str.append(",");
- }
- duplicate = fpsValues[i];
- }
- }
- delete [] fpsValues;
- return str;
- }
- /*===========================================================================
- * FUNCTION : createFpsRangeString
- *
- * DESCRIPTION: create string obj contains array of FPS ranges
- *
- * PARAMETERS :
- * @fps : array of fps ranges
- * @len : size of the array
- * @default_fps_index : reference to index of default fps range
- *
- * RETURN : string obj
- *==========================================================================*/
- String8 QCameraParameters::createFpsRangeString(const cam_fps_range_t* fps,
- int len,
- int &default_fps_index)
- {
- String8 str;
- char buffer[32];
- int max_range = 0;
- int min_fps, max_fps;
- if (len > 0) {
- min_fps = int(fps[0].min_fps * 1000);
- max_fps = int(fps[0].max_fps * 1000);
- max_range = max_fps - min_fps;
- default_fps_index = 0;
- snprintf(buffer, sizeof(buffer), "(%d,%d)", min_fps, max_fps);
- str.append(buffer);
- }
- for (int i = 1; i < len; i++) {
- min_fps = int(fps[i].min_fps * 1000);
- max_fps = int(fps[i].max_fps * 1000);
- if (max_range < (max_fps - min_fps)) {
- max_range = max_fps - min_fps;
- default_fps_index = i;
- }
- snprintf(buffer, sizeof(buffer), ",(%d,%d)", min_fps, max_fps);
- str.append(buffer);
- }
- return str;
- }
- /*===========================================================================
- * FUNCTION : lookupAttr
- *
- * DESCRIPTION: lookup a value by its name
- *
- * PARAMETERS :
- * @attr : map contains <name, value>
- * @len : size of the map
- * @name : name to be looked up
- *
- * RETURN : valid value if found
- * NAME_NOT_FOUND if not found
- *==========================================================================*/
- int QCameraParameters::lookupAttr(const QCameraMap arr[], int len, const char *name)
- {
- if (name) {
- for (int i = 0; i < len; i++) {
- if (!strcmp(arr[i].desc, name))
- return arr[i].val;
- }
- }
- return NAME_NOT_FOUND;
- }
- /*===========================================================================
- * FUNCTION : lookupNameByValue
- *
- * DESCRIPTION: lookup a name by its value
- *
- * PARAMETERS :
- * @attr : map contains <name, value>
- * @len : size of the map
- * @value : value to be looked up
- *
- * RETURN : name str or NULL if not found
- *==========================================================================*/
- const char *QCameraParameters::lookupNameByValue(const QCameraMap arr[], int len, int value)
- {
- for (int i = 0; i < len; i++) {
- if (arr[i].val == value) {
- return arr[i].desc;
- }
- }
- return NULL;
- }
- /*===========================================================================
- * FUNCTION : setPreviewSize
- *
- * DESCRIPTION: set preview size from user setting
- *
- * PARAMETERS :
- * @params : user setting parameters
- *
- * RETURN : int32_t type of status
- * NO_ERROR -- success
- * none-zero failure code
- *==========================================================================*/
- int32_t QCameraParameters::setPreviewSize(const QCameraParameters& params)
- {
- int width, height;
- params.getPreviewSize(&width, &height);
- ALOGV("Requested preview size %d x %d", width, height);
- // Validate the preview size
- for (size_t i = 0; i < m_pCapability->preview_sizes_tbl_cnt; ++i) {
- if (width == m_pCapability->preview_sizes_tbl[i].width
- && height == m_pCapability->preview_sizes_tbl[i].height) {
- // check if need to restart preview in case of preview size change
- int old_width, old_height;
- CameraParameters::getPreviewSize(&old_width, &old_height);
- if (width != old_width || height != old_height) {
- m_bNeedRestart = true;
- }
- // set the new value
- CameraParameters::setPreviewSize(width, height);
- return NO_ERROR;
- }
- }
- ALOGE("Invalid preview size requested: %dx%d", width, height);
- return BAD_VALUE;
- }
- /*===========================================================================
- * FUNCTION : setPictureSize
- *
- * DESCRIPTION: set picture size from user setting
- *
- * PARAMETERS :
- * @params : user setting parameters
- *
- * RETURN : int32_t type of status
- * NO_ERROR -- success
- * none-zero failure code
- *==========================================================================*/
- int32_t QCameraParameters::setPictureSize(const QCameraParameters& params)
- {
- int width, height;
- params.getPictureSize(&width, &height);
- ALOGV("Requested picture size %d x %d", width, height);
- // Validate the picture size
- for (size_t i = 0; i < m_pCapability->picture_sizes_tbl_cnt; ++i) {
- if (width == m_pCapability->picture_sizes_tbl[i].width
- && height == m_pCapability->picture_sizes_tbl[i].height) {
- // check if need to restart preview in case of picture size change
- int old_width, old_height;
- CameraParameters::getPictureSize(&old_width, &old_height);
- if ((m_bZslMode || m_bRecordingHint) &&
- (width != old_width || height != old_height)) {
- m_bNeedRestart = true;
- }
- // set the new value
- CameraParameters::setPictureSize(width, height);
- return NO_ERROR;
- }
- }
- ALOGE("Invalid picture size requested: %dx%d", width, height);
- return BAD_VALUE;
- }
- /*===========================================================================
- * FUNCTION : setVideoSize
- *
- * DESCRIPTION: set video size from user setting
- *
- * PARAMETERS :
- * @params : user setting parameters
- *
- * RETURN : int32_t type of status
- * NO_ERROR -- success
- * none-zero failure code
- *==========================================================================*/
- int32_t QCameraParameters::setVideoSize(const QCameraParameters& params)
- {
- const char *str= NULL;
- int width, height;
- str = params.get(KEY_VIDEO_SIZE);
- if(!str) {
- //If application didn't set this parameter string, use the values from
- //getPreviewSize() as video dimensions.
- params.getPreviewSize(&width, &height);
- AL…
Large files files are truncated, but you can click here to view the full file