From cdb8738955abcfb84b64e59f10901b6f126188fc Mon Sep 17 00:00:00 2001 From: Ajit Katte Date: Thu, 5 Nov 2015 12:06:16 +0530 Subject: [PATCH 1/3] Cancro: fix camera HDR overexposed photos --- camera/CameraWrapper.cpp | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/camera/CameraWrapper.cpp b/camera/CameraWrapper.cpp index bdf5c3a..55dd9bb 100644 --- a/camera/CameraWrapper.cpp +++ b/camera/CameraWrapper.cpp @@ -37,6 +37,7 @@ static android::Mutex gCameraWrapperLock; static camera_module_t *gVendorModule = 0; static char **fixed_set_params = NULL; +static char KEY_QC_MORPHO_HDR[] = "morpho-hdr"; static int camera_device_open(const hw_module_t *module, const char *name, hw_device_t **device); @@ -119,6 +120,8 @@ static char *camera_fixup_getparams(int id __attribute__((unused)), static char *camera_fixup_setparams(int id, const char *settings) { + bool xiaomiHdr = false; + android::CameraParameters params; params.unflatten(android::String8(settings)); @@ -129,6 +132,16 @@ static char *camera_fixup_setparams(int id, const char *settings) params.set(android::CameraParameters::KEY_VIDEO_STABILIZATION, "false"); + if (params.get(android::CameraParameters::KEY_SCENE_MODE)) { + xiaomiHdr = (!strcmp(params.get(android::CameraParameters::KEY_SCENE_MODE), "hdr")); + } + if (xiaomiHdr) { + params.set(KEY_QC_MORPHO_HDR, "true"); + params.set(android::CameraParameters::KEY_FLASH_MODE, android::CameraParameters::FLASH_MODE_OFF); + } else { + params.set(KEY_QC_MORPHO_HDR, "false"); + } + #if !LOG_NDEBUG ALOGV("%s: fixed parameters:", __FUNCTION__); params.dump(); @@ -593,4 +606,4 @@ static int camera_get_camera_info(int camera_id, struct camera_info *info) if (check_vendor_module()) return 0; return gVendorModule->get_camera_info(camera_id, info); -} +} \ No newline at end of file From 93bb2d563f79beb6c6f1ffa32b71218f94bc6b62 Mon Sep 17 00:00:00 2001 From: Ajit Katte Date: Fri, 6 Nov 2015 09:34:17 +0530 Subject: [PATCH 2/3] Added zero shutter lag for cancro devices --- camera/CameraWrapper.cpp | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/camera/CameraWrapper.cpp b/camera/CameraWrapper.cpp index 55dd9bb..ff5fcb9 100644 --- a/camera/CameraWrapper.cpp +++ b/camera/CameraWrapper.cpp @@ -33,11 +33,12 @@ #include #include +static char KEY_QC_MORPHO_HDR[] = "morpho-hdr"; + static android::Mutex gCameraWrapperLock; static camera_module_t *gVendorModule = 0; static char **fixed_set_params = NULL; -static char KEY_QC_MORPHO_HDR[] = "morpho-hdr"; static int camera_device_open(const hw_module_t *module, const char *name, hw_device_t **device); @@ -120,7 +121,8 @@ static char *camera_fixup_getparams(int id __attribute__((unused)), static char *camera_fixup_setparams(int id, const char *settings) { - bool xiaomiHdr = false; + bool videoMode = false; + bool hdrMode = false; android::CameraParameters params; params.unflatten(android::String8(settings)); @@ -132,10 +134,21 @@ static char *camera_fixup_setparams(int id, const char *settings) params.set(android::CameraParameters::KEY_VIDEO_STABILIZATION, "false"); + /* ZSL */ + if (params.get(android::CameraParameters::KEY_RECORDING_HINT)) { + videoMode = !strcmp(params.get(android::CameraParameters::KEY_RECORDING_HINT), "true"); + } + if (videoMode) { + params.set("zsl", "off"); + } else { + params.set("zsl", "on"); + } + + /* HDR */ if (params.get(android::CameraParameters::KEY_SCENE_MODE)) { - xiaomiHdr = (!strcmp(params.get(android::CameraParameters::KEY_SCENE_MODE), "hdr")); + hdrMode = (!strcmp(params.get(android::CameraParameters::KEY_SCENE_MODE), "hdr")); } - if (xiaomiHdr) { + if (hdrMode) { params.set(KEY_QC_MORPHO_HDR, "true"); params.set(android::CameraParameters::KEY_FLASH_MODE, android::CameraParameters::FLASH_MODE_OFF); } else { From 8629d29370c31aea76345464d441631ecf1fa170 Mon Sep 17 00:00:00 2001 From: Ajit Katte Date: Sun, 8 Nov 2015 15:53:41 +0530 Subject: [PATCH 3/3] Corrected author --- camera/CameraWrapper.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/camera/CameraWrapper.cpp b/camera/CameraWrapper.cpp index ff5fcb9..86fc8f6 100644 --- a/camera/CameraWrapper.cpp +++ b/camera/CameraWrapper.cpp @@ -56,7 +56,7 @@ camera_module_t HAL_MODULE_INFO_SYM = { .hal_api_version = HARDWARE_HAL_API_VERSION, .id = CAMERA_HARDWARE_MODULE_ID, .name = "Cancro Camera Wrapper", - .author = "The Android Open Source Project", + .author = "The CyanogenMod Project", .methods = &camera_module_methods, .dso = NULL, /* remove compilation warnings */ .reserved = {0}, /* remove compilation warnings */ @@ -619,4 +619,4 @@ static int camera_get_camera_info(int camera_id, struct camera_info *info) if (check_vendor_module()) return 0; return gVendorModule->get_camera_info(camera_id, info); -} \ No newline at end of file +}