diff options
-rw-r--r-- | camera/CameraHal.cpp | 1 | ||||
-rw-r--r-- | camera/CameraParameters.cpp | 1 | ||||
-rw-r--r-- | camera/OMXCameraAdapter/OMXAlgo.cpp | 4 | ||||
-rw-r--r-- | camera/OMXCameraAdapter/OMXCapabilities.cpp | 59 | ||||
-rw-r--r-- | camera/TICameraParameters.cpp | 3 | ||||
-rw-r--r-- | camera/inc/CameraProperties.h | 1 | ||||
-rw-r--r-- | camera/inc/OMXCameraAdapter/OMXCameraAdapter.h | 3 | ||||
-rw-r--r-- | camera/inc/TICameraParameters.h | 4 |
8 files changed, 75 insertions, 1 deletions
diff --git a/camera/CameraHal.cpp b/camera/CameraHal.cpp index d1f4d77..ebe3e08 100644 --- a/camera/CameraHal.cpp +++ b/camera/CameraHal.cpp @@ -3349,6 +3349,7 @@ void CameraHal::insertSupportedParams() p.set(CameraParameters::KEY_AUTO_WHITEBALANCE_LOCK_SUPPORTED, mCameraProperties->get(CameraProperties::AUTO_WHITEBALANCE_LOCK_SUPPORTED)); p.set(CameraParameters::KEY_VIDEO_SNAPSHOT_SUPPORTED, mCameraProperties->get(CameraProperties::VIDEO_SNAPSHOT_SUPPORTED)); p.set(TICameraParameters::KEY_MECHANICAL_MISALIGNMENT_CORRECTION_VALUES, mCameraProperties->get(CameraProperties::MECHANICAL_MISALIGNMENT_CORRECTION_VALUES)); + p.set(TICameraParameters::KEY_CAP_MODE_VALUES, mCameraProperties->get(CameraProperties::CAP_MODE_VALUES)); LOG_FUNCTION_NAME_EXIT; diff --git a/camera/CameraParameters.cpp b/camera/CameraParameters.cpp index 0107852..c6805cc 100644 --- a/camera/CameraParameters.cpp +++ b/camera/CameraParameters.cpp @@ -119,6 +119,7 @@ const char CameraProperties::PREFERRED_PREVIEW_SIZE_FOR_VIDEO[] = "preferred-pre const char CameraProperties::MECHANICAL_MISALIGNMENT_CORRECTION[] = "prop-mechanical-misalignment-correction"; const char CameraProperties::MECHANICAL_MISALIGNMENT_CORRECTION_VALUES[] = "prop-mechanical-misalignment-correction-values"; +const char CameraProperties::CAP_MODE_VALUES[] = "prop-mode-values"; const char CameraProperties::DEFAULT_VALUE[] = ""; diff --git a/camera/OMXCameraAdapter/OMXAlgo.cpp b/camera/OMXCameraAdapter/OMXAlgo.cpp index f166e3a..ea5c270 100644 --- a/camera/OMXCameraAdapter/OMXAlgo.cpp +++ b/camera/OMXCameraAdapter/OMXAlgo.cpp @@ -46,6 +46,10 @@ status_t OMXCameraAdapter::setParametersAlgo(const CameraParameters ¶ms, { capMode = OMXCameraAdapter::HIGH_SPEED; } + else if (strcmp(valstr, (const char *) TICameraParameters::EXPOSURE_BRACKETING) == 0) + { + capMode = OMXCameraAdapter::HIGH_SPEED; + } else if (strcmp(valstr, (const char *) TICameraParameters::HIGH_QUALITY_MODE) == 0) { capMode = OMXCameraAdapter::HIGH_QUALITY; diff --git a/camera/OMXCameraAdapter/OMXCapabilities.cpp b/camera/OMXCameraAdapter/OMXCapabilities.cpp index d5daa3d..b19f76c 100644 --- a/camera/OMXCameraAdapter/OMXCapabilities.cpp +++ b/camera/OMXCameraAdapter/OMXCapabilities.cpp @@ -252,6 +252,16 @@ const LUTtype OMXCameraAdapter::mMechanicalMisalignmentCorrectionLUT = { mMechanicalMisalignmentCorrection }; +const userToOMX_LUT OMXCameraAdapter::mBracketingModes [] = { + { TICameraParameters::TEMP_BRACKETING , OMX_BracketTemporal }, + { TICameraParameters::EXPOSURE_BRACKETING , OMX_BracketExposureRelativeInEV }, +}; + +const LUTtype OMXCameraAdapter::mBracketingModesLUT = { + ARRAY_SIZE(mBracketingModes), + mBracketingModes +}; + // values for supported camera facing direction const CapU32 OMXCameraAdapter::mFacing [] = { { OMX_TI_SENFACING_BACK , TICameraParameters::FACING_BACK }, @@ -1276,6 +1286,51 @@ status_t OMXCameraAdapter::insertMechanicalMisalignmentCorrection(CameraProperti return ret; } +status_t OMXCameraAdapter::insertCaptureModes(CameraProperties::Properties* params, OMX_TI_CAPTYPE &caps) +{ + status_t ret = NO_ERROR; + char supported[MAX_PROP_VALUE_LENGTH]; + const char *p; + + LOG_FUNCTION_NAME; + + memset(supported, '\0', sizeof(supported)); + + // 3D mode detect: Misalignment is present only in 3d mode + if (caps.bMechanicalMisalignmentSupported) + { + strncat(supported, TICameraParameters::HIGH_QUALITY_MODE, REMAINING_BYTES(supported)); + strncat(supported, PARAM_SEP, REMAINING_BYTES(supported)); + strncat(supported, TICameraParameters::VIDEO_MODE, REMAINING_BYTES(supported)); + } + else // 2D mode detect: Misalignment is present only in 3d mode + { + strncat(supported, TICameraParameters::HIGH_QUALITY_MODE, REMAINING_BYTES(supported)); + strncat(supported, PARAM_SEP, REMAINING_BYTES(supported)); + strncat(supported, TICameraParameters::VIDEO_MODE, REMAINING_BYTES(supported)); + strncat(supported, PARAM_SEP, REMAINING_BYTES(supported)); + strncat(supported, TICameraParameters::HIGH_PERFORMANCE_MODE, REMAINING_BYTES(supported)); + strncat(supported, PARAM_SEP, REMAINING_BYTES(supported)); + strncat(supported, TICameraParameters::HIGH_QUALITY_ZSL_MODE, REMAINING_BYTES(supported)); + } + + for ( unsigned int i = 0 ; i < caps.ulBracketingModesCount; i++ ) { + p = getLUTvalue_OMXtoHAL(caps.eBracketingModes[i], mBracketingModesLUT); + if ( NULL != p ) { + if (supported[0] != '\0') { + strncat(supported, PARAM_SEP, REMAINING_BYTES(supported)); + } + strncat(supported, p, REMAINING_BYTES(supported)); + } + } + + params->set(CameraProperties::CAP_MODE_VALUES, supported); + + LOG_FUNCTION_NAME_EXIT; + + return ret; +} + status_t OMXCameraAdapter::insertDefaults(CameraProperties::Properties* params, OMX_TI_CAPTYPE &caps) { status_t ret = NO_ERROR; @@ -1449,6 +1504,10 @@ status_t OMXCameraAdapter::insertCapabilities(CameraProperties::Properties* para ret = insertMechanicalMisalignmentCorrection(params, caps); } + if ( NO_ERROR == ret) { + ret = insertCaptureModes(params, caps); + } + //NOTE: Ensure that we always call insertDefaults after inserting the supported capabilities //as there are checks inside insertDefaults to make sure a certain default is supported // or not diff --git a/camera/TICameraParameters.cpp b/camera/TICameraParameters.cpp index 600e191..c42346a 100644 --- a/camera/TICameraParameters.cpp +++ b/camera/TICameraParameters.cpp @@ -28,6 +28,8 @@ const char TICameraParameters::HIGH_PERFORMANCE_MODE[] = "high-performance"; const char TICameraParameters::HIGH_QUALITY_MODE[] = "high-quality"; const char TICameraParameters::HIGH_QUALITY_ZSL_MODE[] = "high-quality-zsl"; const char TICameraParameters::VIDEO_MODE[] = "video-mode"; +const char TICameraParameters::EXPOSURE_BRACKETING[] = "exposure-bracketing"; +const char TICameraParameters::TEMP_BRACKETING[] = "temporal-bracketing"; // TI extensions to standard android Parameters const char TICameraParameters::KEY_SUPPORTED_CAMERAS[] = "camera-indexes"; @@ -36,6 +38,7 @@ const char TICameraParameters::KEY_SHUTTER_ENABLE[] = "shutter-enable"; const char TICameraParameters::KEY_CAMERA_NAME[] = "camera-name"; const char TICameraParameters::KEY_BURST[] = "burst-capture"; const char TICameraParameters::KEY_CAP_MODE[] = "mode"; +const char TICameraParameters::KEY_CAP_MODE_VALUES[] = "mode-values"; const char TICameraParameters::KEY_VNF[] = "vnf"; const char TICameraParameters::KEY_SATURATION[] = "saturation"; const char TICameraParameters::KEY_BRIGHTNESS[] = "brightness"; diff --git a/camera/inc/CameraProperties.h b/camera/inc/CameraProperties.h index ba1058d..2d81a5b 100644 --- a/camera/inc/CameraProperties.h +++ b/camera/inc/CameraProperties.h @@ -149,6 +149,7 @@ public: static const char MECHANICAL_MISALIGNMENT_CORRECTION[]; static const char MECHANICAL_MISALIGNMENT_CORRECTION_VALUES[]; + static const char CAP_MODE_VALUES[]; CameraProperties(); ~CameraProperties(); diff --git a/camera/inc/OMXCameraAdapter/OMXCameraAdapter.h b/camera/inc/OMXCameraAdapter/OMXCameraAdapter.h index 9c2fdcd..62f480a 100644 --- a/camera/inc/OMXCameraAdapter/OMXCameraAdapter.h +++ b/camera/inc/OMXCameraAdapter/OMXCameraAdapter.h @@ -598,6 +598,7 @@ private: static status_t insertLocks(CameraProperties::Properties*, OMX_TI_CAPTYPE&); static status_t insertAreas(CameraProperties::Properties*, OMX_TI_CAPTYPE&); static status_t insertMechanicalMisalignmentCorrection(CameraProperties::Properties*, OMX_TI_CAPTYPE&); + static status_t insertCaptureModes(CameraProperties::Properties*, OMX_TI_CAPTYPE&); static status_t insertVideoSizes(CameraProperties::Properties*, OMX_TI_CAPTYPE&); static status_t insertFacing(CameraProperties::Properties*, OMX_TI_CAPTYPE&); static status_t insertFocalLength(CameraProperties::Properties*, OMX_TI_CAPTYPE&); @@ -760,6 +761,8 @@ private: static const LUTtype mAutoConvergenceLUT; static const userToOMX_LUT mMechanicalMisalignmentCorrection[]; static const LUTtype mMechanicalMisalignmentCorrectionLUT; + static const userToOMX_LUT mBracketingModes[]; + static const LUTtype mBracketingModesLUT; // OMX Camera defaults static const char DEFAULT_ANTIBANDING[]; diff --git a/camera/inc/TICameraParameters.h b/camera/inc/TICameraParameters.h index a2c111e..bb3763a 100644 --- a/camera/inc/TICameraParameters.h +++ b/camera/inc/TICameraParameters.h @@ -36,6 +36,7 @@ static const char KEY_CAMERA_NAME[]; static const char KEY_S3D_SUPPORTED[]; static const char KEY_BURST[]; static const char KEY_CAP_MODE[]; +static const char KEY_CAP_MODE_VALUES[]; static const char KEY_VNF[]; static const char KEY_SATURATION[]; static const char KEY_BRIGHTNESS[]; @@ -151,7 +152,8 @@ static const char HIGH_PERFORMANCE_MODE[]; static const char HIGH_QUALITY_MODE[]; static const char HIGH_QUALITY_ZSL_MODE[]; static const char VIDEO_MODE[]; - +static const char EXPOSURE_BRACKETING[]; +static const char TEMP_BRACKETING[]; // TI extensions to standard android pixel formats static const char PIXEL_FORMAT_UNUSED[]; |