Camera: Fix to call the correct ioctl for HJR feature.
Currently camera HAL is achieving HJR effect by calling
CAMERA_SET_PARM_ISO with value ISO_DEBLUR. Changed this
behavior by calling CAMERA_SET_PARM_HJR with value true
to set HJR, in addition to the ISO ioctl.
CRs-Fixed: 233151
Change-Id: I6f113592840f3b6164211ec929b5637ba2bb7f01
diff --git a/QualcommCameraHardware.cpp b/QualcommCameraHardware.cpp
index e3292fc..da51230 100644
--- a/QualcommCameraHardware.cpp
+++ b/QualcommCameraHardware.cpp
@@ -838,6 +838,7 @@
mAutoFocusThreadRunning(false),
mAutoFocusFd(-1),
mBrightness(0),
+ mHJR(0),
mInPreviewCallback(false),
mUseOverlay(0),
mOverlay(0),
@@ -3893,12 +3894,26 @@
}
status_t QualcommCameraHardware::setISOValue(const CameraParameters& params) {
+ int8_t temp_hjr;
const char *str = params.get(CameraParameters::KEY_ISO_MODE);
if (str != NULL) {
int value = (camera_iso_mode_type)attr_lookup(
iso, sizeof(iso) / sizeof(str_map), str);
if (value != NOT_FOUND) {
camera_iso_mode_type temp = (camera_iso_mode_type) value;
+ if (value == CAMERA_ISO_DEBLUR) {
+ temp_hjr = true;
+ native_set_parm(CAMERA_SET_PARM_HJR, sizeof(int8_t), (void*)&temp_hjr);
+ mHJR = value;
+ }
+ else {
+ if (mHJR == CAMERA_ISO_DEBLUR) {
+ temp_hjr = false;
+ native_set_parm(CAMERA_SET_PARM_HJR, sizeof(int8_t), (void*)&temp_hjr);
+ mHJR = value;
+ }
+ }
+
mParameters.set(CameraParameters::KEY_ISO_MODE, str);
native_set_parm(CAMERA_SET_PARM_ISO, sizeof(camera_iso_mode_type), (void *)&temp);
return NO_ERROR;