Reconcile with jb-mr1-factory-release jb-mr1-release - do not merge

Change-Id: Id21c5cc3e276166c24009244a452f268fd64571e
diff --git a/QCamera/Android.mk b/QCamera/Android.mk
old mode 100755
new mode 100644
diff --git a/QCamera/HAL/Android.mk b/QCamera/HAL/Android.mk
old mode 100755
new mode 100644
diff --git a/QCamera/HAL/core/Android.mk b/QCamera/HAL/core/Android.mk
old mode 100755
new mode 100644
diff --git a/QCamera/HAL/core/inc/QCameraHAL.h b/QCamera/HAL/core/inc/QCameraHAL.h
old mode 100755
new mode 100644
diff --git a/QCamera/HAL/core/inc/QCameraHWI.h b/QCamera/HAL/core/inc/QCameraHWI.h
old mode 100755
new mode 100644
diff --git a/QCamera/HAL/core/inc/QCameraHWI_Mem.h b/QCamera/HAL/core/inc/QCameraHWI_Mem.h
old mode 100755
new mode 100644
diff --git a/QCamera/HAL/core/inc/QCameraStream.h b/QCamera/HAL/core/inc/QCameraStream.h
old mode 100755
new mode 100644
diff --git a/QCamera/HAL/core/src/QCameraHAL.cpp b/QCamera/HAL/core/src/QCameraHAL.cpp
old mode 100755
new mode 100644
diff --git a/QCamera/HAL/core/src/QCameraHWI.cpp b/QCamera/HAL/core/src/QCameraHWI.cpp
old mode 100755
new mode 100644
diff --git a/QCamera/HAL/core/src/QCameraHWI_Mem.cpp b/QCamera/HAL/core/src/QCameraHWI_Mem.cpp
old mode 100755
new mode 100644
diff --git a/QCamera/HAL/core/src/QCameraHWI_Parm.cpp b/QCamera/HAL/core/src/QCameraHWI_Parm.cpp
old mode 100755
new mode 100644
diff --git a/QCamera/HAL/core/src/QCameraHWI_Preview.cpp b/QCamera/HAL/core/src/QCameraHWI_Preview.cpp
old mode 100755
new mode 100644
diff --git a/QCamera/HAL/core/src/QCameraHWI_Record.cpp b/QCamera/HAL/core/src/QCameraHWI_Record.cpp
old mode 100755
new mode 100644
diff --git a/QCamera/HAL/core/src/QCameraHWI_Still.cpp b/QCamera/HAL/core/src/QCameraHWI_Still.cpp
old mode 100755
new mode 100644
diff --git a/QCamera/HAL/core/src/QCameraStream.cpp b/QCamera/HAL/core/src/QCameraStream.cpp
old mode 100755
new mode 100644
diff --git a/QCamera/HAL/test/Android.mk b/QCamera/HAL/test/Android.mk
old mode 100755
new mode 100644
diff --git a/QCamera/HAL/wrapper/QualcommCamera.cpp b/QCamera/HAL/wrapper/QualcommCamera.cpp
old mode 100755
new mode 100644
diff --git a/QCamera/HAL/wrapper/QualcommCamera.h b/QCamera/HAL/wrapper/QualcommCamera.h
old mode 100755
new mode 100644
diff --git a/QCamera/stack/Android.mk b/QCamera/stack/Android.mk
old mode 100755
new mode 100644
diff --git a/QCamera/stack/common/cam_list.h b/QCamera/stack/common/cam_list.h
old mode 100755
new mode 100644
diff --git a/QCamera/stack/mm-camera-interface/Android.mk b/QCamera/stack/mm-camera-interface/Android.mk
old mode 100755
new mode 100644
diff --git a/QCamera/stack/mm-camera-interface/inc/mm_camera.h b/QCamera/stack/mm-camera-interface/inc/mm_camera.h
old mode 100755
new mode 100644
diff --git a/QCamera/stack/mm-camera-interface/inc/mm_camera_dbg.h b/QCamera/stack/mm-camera-interface/inc/mm_camera_dbg.h
old mode 100755
new mode 100644
diff --git a/QCamera/stack/mm-camera-interface/inc/mm_camera_interface.h b/QCamera/stack/mm-camera-interface/inc/mm_camera_interface.h
old mode 100755
new mode 100644
diff --git a/QCamera/stack/mm-camera-interface/inc/mm_camera_sock.h b/QCamera/stack/mm-camera-interface/inc/mm_camera_sock.h
old mode 100755
new mode 100644
diff --git a/QCamera/stack/mm-camera-interface/src/mm_camera.c b/QCamera/stack/mm-camera-interface/src/mm_camera.c
old mode 100755
new mode 100644
diff --git a/QCamera/stack/mm-camera-interface/src/mm_camera_channel.c b/QCamera/stack/mm-camera-interface/src/mm_camera_channel.c
old mode 100755
new mode 100644
diff --git a/QCamera/stack/mm-camera-interface/src/mm_camera_data.c b/QCamera/stack/mm-camera-interface/src/mm_camera_data.c
old mode 100755
new mode 100644
diff --git a/QCamera/stack/mm-camera-interface/src/mm_camera_helper.c b/QCamera/stack/mm-camera-interface/src/mm_camera_helper.c
old mode 100755
new mode 100644
diff --git a/QCamera/stack/mm-camera-interface/src/mm_camera_interface.c b/QCamera/stack/mm-camera-interface/src/mm_camera_interface.c
old mode 100755
new mode 100644
diff --git a/QCamera/stack/mm-camera-interface/src/mm_camera_sock.c b/QCamera/stack/mm-camera-interface/src/mm_camera_sock.c
old mode 100755
new mode 100644
diff --git a/QCamera/stack/mm-camera-interface/src/mm_camera_stream.c b/QCamera/stack/mm-camera-interface/src/mm_camera_stream.c
old mode 100755
new mode 100644
diff --git a/QCamera/stack/mm-camera-interface/src/mm_camera_thread.c b/QCamera/stack/mm-camera-interface/src/mm_camera_thread.c
old mode 100755
new mode 100644
diff --git a/QCamera/stack/mm-camera-test/Android.mk b/QCamera/stack/mm-camera-test/Android.mk
old mode 100755
new mode 100644
diff --git a/QCamera/stack/mm-camera-test/inc/mm_qcamera_app.h b/QCamera/stack/mm-camera-test/inc/mm_qcamera_app.h
old mode 100755
new mode 100644
diff --git a/QCamera/stack/mm-camera-test/inc/mm_qcamera_display_dimensions.h b/QCamera/stack/mm-camera-test/inc/mm_qcamera_display_dimensions.h
old mode 100755
new mode 100644
diff --git a/QCamera/stack/mm-camera-test/inc/mm_qcamera_main_menu.h b/QCamera/stack/mm-camera-test/inc/mm_qcamera_main_menu.h
old mode 100755
new mode 100644
diff --git a/QCamera/stack/mm-camera-test/inc/mm_qcamera_unit_test.h b/QCamera/stack/mm-camera-test/inc/mm_qcamera_unit_test.h
old mode 100755
new mode 100644
diff --git a/QCamera/stack/mm-camera-test/src/mm_qcamera_app.c b/QCamera/stack/mm-camera-test/src/mm_qcamera_app.c
old mode 100755
new mode 100644
diff --git a/QCamera/stack/mm-camera-test/src/mm_qcamera_display.c b/QCamera/stack/mm-camera-test/src/mm_qcamera_display.c
old mode 100755
new mode 100644
diff --git a/QCamera/stack/mm-camera-test/src/mm_qcamera_dual_test.c b/QCamera/stack/mm-camera-test/src/mm_qcamera_dual_test.c
old mode 100755
new mode 100644
diff --git a/QCamera/stack/mm-camera-test/src/mm_qcamera_main_menu.c b/QCamera/stack/mm-camera-test/src/mm_qcamera_main_menu.c
old mode 100755
new mode 100644
diff --git a/QCamera/stack/mm-camera-test/src/mm_qcamera_preview.c b/QCamera/stack/mm-camera-test/src/mm_qcamera_preview.c
old mode 100755
new mode 100644
diff --git a/QCamera/stack/mm-camera-test/src/mm_qcamera_rdi.c b/QCamera/stack/mm-camera-test/src/mm_qcamera_rdi.c
old mode 100755
new mode 100644
diff --git a/QCamera/stack/mm-camera-test/src/mm_qcamera_snapshot.c b/QCamera/stack/mm-camera-test/src/mm_qcamera_snapshot.c
old mode 100755
new mode 100644
diff --git a/QCamera/stack/mm-camera-test/src/mm_qcamera_unit_test.c b/QCamera/stack/mm-camera-test/src/mm_qcamera_unit_test.c
old mode 100755
new mode 100644
diff --git a/QCamera/stack/mm-camera-test/src/mm_qcamera_video.c b/QCamera/stack/mm-camera-test/src/mm_qcamera_video.c
old mode 100755
new mode 100644
diff --git a/QCamera/stack/mm-jpeg-interface/Android.mk b/QCamera/stack/mm-jpeg-interface/Android.mk
old mode 100755
new mode 100644
diff --git a/QCamera/stack/mm-jpeg-interface/inc/mm_jpeg.h b/QCamera/stack/mm-jpeg-interface/inc/mm_jpeg.h
old mode 100755
new mode 100644
diff --git a/QCamera/stack/mm-jpeg-interface/inc/mm_jpeg_dbg.h b/QCamera/stack/mm-jpeg-interface/inc/mm_jpeg_dbg.h
old mode 100755
new mode 100644
diff --git a/QCamera/stack/mm-jpeg-interface/inc/mm_jpeg_interface.h b/QCamera/stack/mm-jpeg-interface/inc/mm_jpeg_interface.h
old mode 100755
new mode 100644
diff --git a/QCamera/stack/mm-jpeg-interface/src/mm_jpeg.c b/QCamera/stack/mm-jpeg-interface/src/mm_jpeg.c
old mode 100755
new mode 100644
diff --git a/QCamera/stack/mm-jpeg-interface/src/mm_jpeg_interface.c b/QCamera/stack/mm-jpeg-interface/src/mm_jpeg_interface.c
old mode 100755
new mode 100644
diff --git a/QCamera/stack/mm-jpeg-interface/src/mm_jpeg_queue.c b/QCamera/stack/mm-jpeg-interface/src/mm_jpeg_queue.c
old mode 100755
new mode 100644
diff --git a/QCameraHWI.cpp b/QCameraHWI.cpp
old mode 100755
new mode 100644
index 4668b5a..cd14417
--- a/QCameraHWI.cpp
+++ b/QCameraHWI.cpp
@@ -15,7 +15,6 @@
 */
 
 /*#error uncomment this for compiler test!*/
-
 #define ALOG_NIDEBUG 0
 
 #define LOG_TAG "QCameraHWI"
@@ -29,7 +28,6 @@
 
 #include "QCameraHAL.h"
 #include "QCameraHWI.h"
-#include "QCamera_dbg.h"
 
 /* QCameraHardwareInterface class implementation goes here*/
 /* following code implement the contol logic of this class*/
@@ -53,7 +51,7 @@
     /*
     * Creating Instance of record stream.
     */
-    ALOGI("Mymode Record = %d",myMode);
+    ALOGV("Mymode Record = %d",myMode);
     mStreamRecord = QCameraStream_record::createInstance(mCameraId,
                                                          myMode);
 
@@ -83,7 +81,7 @@
     /*
     * Creating Instance of Snapshot stream.
     */
-    ALOGI("Mymode Snap = %d",myMode);
+    ALOGV("Mymode Snap = %d",myMode);
     mStreamSnap = QCameraStream_Snapshot::createInstance(mCameraId,
                                                          myMode);
     if (!mStreamSnap) {
@@ -109,7 +107,7 @@
     int32_t ret = MM_CAMERA_OK;
     ALOGV("%s : BEGIN",__func__);
 
-    ALOGI("Mymode Preview = %d",myMode);
+    ALOGV("Mymode Preview = %d",myMode);
     mStreamDisplay = QCameraStream_preview::createInstance(mCameraId,
                                                            myMode);
     if (!mStreamDisplay) {
@@ -160,7 +158,7 @@
                     mFaceDetectOn(0),
                     mDisEnabled(0),
                     mZoomSupported(false),
-                    mFullLiveshotEnabled(true),
+                    mFullLiveshotEnabled(false),
                     mRecordingHint(false),
                     mAppRecordingHint(false),
                     mStatsOn(0), mCurrentHisto(-1), mSendData(false), mStatHeap(NULL),
@@ -191,6 +189,7 @@
                     mRestartPreview(false),
                     mReleasedRecordingFrame(false),
                     mStateLiveshot(false),
+                    isCameraOpen(false),
                     mPauseFramedispatch(false)
 {
     ALOGV("QCameraHardwareInterface: E");
@@ -199,6 +198,7 @@
 
     pthread_mutex_init(&mAsyncCmdMutex, NULL);
     pthread_cond_init(&mAsyncCmdWait, NULL);
+    mFlashCond = false;
 
     property_get("persist.debug.sf.showfps", value, "0");
     mDebugFps = atoi(value);
@@ -207,12 +207,12 @@
     property_get("camera.hal.fps", value, "0");
     mFps = atoi(value);
 
-    ALOGI("Init mPreviewState = %d", mPreviewState);
+    ALOGV("Init mPreviewState = %d", mPreviewState);
 
     property_get("persist.camera.hal.multitouchaf", value, "0");
     mMultiTouch = atoi(value);
 
-    property_get("persist.camera.full.liveshot", value, "1");
+    property_get("persist.camera.full.liveshot", value, "0");
     mFullLiveshotEnabled = atoi(value);
 
     property_get("persist.camera.hal.dis", value, "0");
@@ -231,7 +231,7 @@
         }
       }
     }
-    ALOGI("Cam open returned %d",result);
+    ALOGV("Cam open returned %d",result);
     if(MM_CAMERA_OK != result) {
           ALOGE("startCamera: cam_ops_open failed: id = %d", mCameraId);
           return;
@@ -240,26 +240,27 @@
     loadTables();
     /* Setup Picture Size and Preview size tables */
     setPictureSizeTable();
-    ALOGI("%s: Picture table size: %d", __func__, mPictureSizeCount);
-    ALOGI("%s: Picture table: ", __func__);
+    ALOGV("%s: Picture table size: %d", __func__, mPictureSizeCount);
+    ALOGV("%s: Picture table: ", __func__);
     for(unsigned int i=0; i < mPictureSizeCount;i++) {
-      ALOGI(" %d  %d", mPictureSizes[i].width, mPictureSizes[i].height);
+      ALOGV(" %d  %d", mPictureSizes[i].width, mPictureSizes[i].height);
     }
 
     setPreviewSizeTable();
-    ALOGI("%s: Preview table size: %d", __func__, mPreviewSizeCount);
-    ALOGI("%s: Preview table: ", __func__);
+    ALOGV("%s: Preview table size: %d", __func__, mPreviewSizeCount);
+    ALOGV("%s: Preview table: ", __func__);
     for(unsigned int i=0; i < mPreviewSizeCount;i++) {
-      ALOGI(" %d  %d", mPreviewSizes[i].width, mPreviewSizes[i].height);
+      ALOGV(" %d  %d", mPreviewSizes[i].width, mPreviewSizes[i].height);
     }
 
     setVideoSizeTable();
-    ALOGI("%s: Video table size: %d", __func__, mVideoSizeCount);
-    ALOGI("%s: Video table: ", __func__);
+    ALOGV("%s: Video table size: %d", __func__, mVideoSizeCount);
+    ALOGV("%s: Video table: ", __func__);
     for(unsigned int i=0; i < mVideoSizeCount;i++) {
-      ALOGI(" %d  %d", mVideoSizes[i].width, mVideoSizes[i].height);
+      ALOGV(" %d  %d", mVideoSizes[i].width, mVideoSizes[i].height);
     }
 
+    isCameraOpen = true;
     /* set my mode - update myMode member variable due to difference in
      enum definition between upper and lower layer*/
     setMyMode(mode);
@@ -289,7 +290,7 @@
     mCameraState = CAMERA_STATE_READY;
     libdnr = dlopen("libmorpho_noise_reduction.so", RTLD_NOW);
     if (libdnr) {
-        ALOGI("Open MM camera DL libmorpho_noise_reduction loaded at %p & %p ", libdnr);
+        ALOGV("Open MM camera DL libmorpho_noise_reduction loaded at %p & %p ", libdnr);
         *(void **)&LINK_morpho_DNR_ProcessFrame = dlsym(libdnr, "LINK_mm_camera_morpho_noise_reduction");
     }
     else
@@ -323,11 +324,13 @@
     }
     mPreviewState = QCAMERA_HAL_PREVIEW_STOPPED;
 
-    freePictureTable();
-    freeVideoSizeTable();
-    if(mStatHeap != NULL) {
-      mStatHeap.clear( );
-      mStatHeap = NULL;
+    if (isCameraOpen) {
+        freePictureTable();
+        freeVideoSizeTable();
+        if(mStatHeap != NULL) {
+          mStatHeap.clear( );
+          mStatHeap = NULL;
+        }
     }
     /* Join the threads, complete operations and then delete
        the instances. */
@@ -347,7 +350,7 @@
     if (libdnr != NULL) {
          dlclose(libdnr);
          libdnr = NULL;
-         ALOGI("closed libmorpho_noise_reduction.so");
+         ALOGV("closed libmorpho_noise_reduction.so");
     }
 
     if (mStreamLiveSnap){
@@ -357,13 +360,14 @@
 
     pthread_mutex_destroy(&mAsyncCmdMutex);
     pthread_cond_destroy(&mAsyncCmdWait);
+    isCameraOpen = false;
 
     ALOGV("~QCameraHardwareInterface: X");
 }
 
 bool QCameraHardwareInterface::isCameraReady()
 {
-    ALOGI("isCameraReady mCameraState %d", mCameraState);
+    ALOGV("isCameraReady mCameraState %d", mCameraState);
     return (mCameraState == CAMERA_STATE_READY);
 }
 
@@ -589,7 +593,7 @@
     //}else {
        myMode = (camera_mode_t) (myMode | CAMERA_NONZSL_MODE);
     //}
-    ALOGI("setMyMode: Set mode to %d (passed mode: %d)", myMode, mode);
+    ALOGV("setMyMode: Set mode to %d (passed mode: %d)", myMode, mode);
     ALOGV("setMyMode: X");
 }
 /* static factory function */
@@ -624,7 +628,7 @@
 bool QCameraHardwareInterface::isPreviewRunning() {
     ALOGV("isPreviewRunning: E");
     bool ret = false;
-    ALOGI("isPreviewRunning: camera state:%d", mCameraState);
+    ALOGV("isPreviewRunning: camera state:%d", mCameraState);
 
     if((mCameraState == CAMERA_STATE_PREVIEW) ||
        (mCameraState == CAMERA_STATE_PREVIEW_START_CMD_SENT) ||
@@ -692,7 +696,7 @@
     nsecs_t diff = now - mLastFpsTime;
     if (diff > ms2ns(250)) {
         mFps =  ((mFrameCount - mLastFrameCount) * float(s2ns(1))) / diff;
-        ALOGI("Preview Frames Per Second: %.4f", mFps);
+        ALOGV("Preview Frames Per Second: %.4f", mFps);
         mLastFpsTime = now;
         mLastFrameCount = mFrameCount;
     }
@@ -824,7 +828,7 @@
             app_cb->argm_notify.cookie =  mCallbackCookie;
             break;
       case MM_CAMERA_CTRL_EVT_SNAPSHOT_CONFIG_DONE:
-          ALOGI("%s: MM_CAMERA_CTRL_EVT_SNAPSHOT_CONFIG_DONE", __func__);
+          ALOGV("%s: MM_CAMERA_CTRL_EVT_SNAPSHOT_CONFIG_DONE", __func__);
           app_cb->notifyCb  = mNotifyCb;
           app_cb->argm_notify.msg_type = CAMERA_MSG_SHUTTER;
           app_cb->argm_notify.ext1 = 0;
@@ -907,7 +911,7 @@
     app_notify_cb_t app_cb;
     ALOGV("processEvent: type :%d E",event->event_type);
     if(mPreviewState == QCAMERA_HAL_PREVIEW_STOPPED){
-	ALOGI("Stop recording issued. Return from process Event");
+	ALOGV("Stop recording issued. Return from process Event");
         return;
     }
     memset(&app_cb, 0, sizeof(app_notify_cb_t));
@@ -928,7 +932,7 @@
         default:
             break;
     }
-    ALOGI(" App_cb Notify %p, datacb=%p", app_cb.notifyCb, app_cb.dataCb);
+    ALOGV(" App_cb Notify %p, datacb=%p", app_cb.notifyCb, app_cb.dataCb);
     if (app_cb.notifyCb) {
       app_cb.notifyCb(app_cb.argm_notify.msg_type,
         app_cb.argm_notify.ext1, app_cb.argm_notify.ext2,
@@ -1018,7 +1022,7 @@
     case QCAMERA_HAL_PREVIEW_STOPPED:
     case QCAMERA_HAL_TAKE_PICTURE:
         mPreviewState = QCAMERA_HAL_PREVIEW_START;
-        ALOGI("%s:  HAL::startPreview begin", __func__);
+        ALOGV("%s:  HAL::startPreview begin", __func__);
 
         if(QCAMERA_HAL_PREVIEW_START == mPreviewState &&
            (mPreviewWindow || isNoDisplayMode())) {
@@ -1027,14 +1031,14 @@
             if(retVal == NO_ERROR)
                 mPreviewState = QCAMERA_HAL_PREVIEW_STARTED;
         } else {
-            ALOGI("%s:  received startPreview, but preview window = null", __func__);
+            ALOGV("%s:  received startPreview, but preview window = null", __func__);
         }
         break;
     case QCAMERA_HAL_PREVIEW_START:
     case QCAMERA_HAL_PREVIEW_STARTED:
     break;
     case QCAMERA_HAL_RECORDING_STARTED:
-        ALOGI("%s: cannot start preview in recording state", __func__);
+        ALOGV("%s: cannot start preview in recording state", __func__);
         break;
     default:
         ALOGE("%s: unknow state %d received", __func__, mPreviewState);
@@ -1062,7 +1066,7 @@
 
     const char *str = mParameters.get(QCameraParameters::KEY_SCENE_MODE);
 
-    if (mRecordingHint || !strcmp(str, "hdr") || mFlashCond) {
+    if (mRecordingHint || mFlashCond || !strcmp(str, "hdr")) {
         ALOGI("%s:Setting non-ZSL mode",__func__);
         mParameters.set(QCameraParameters::KEY_CAMERA_MODE, 0);
         myMode = (camera_mode_t)(myMode & ~CAMERA_ZSL_MODE);
@@ -1074,14 +1078,22 @@
         myMode = (camera_mode_t)(myMode | CAMERA_ZSL_MODE);
         mParameters.setPreviewFrameRateMode("frame-rate-auto");
         setPreviewFrameRateMode(mParameters);
+
+        if (mHasAutoFocusSupport) {
+            int cafSupport = true;
+            int caf_type = 2;
+            native_set_parms(MM_CAMERA_PARM_CAF_TYPE, sizeof(caf_type), (void *)&caf_type);
+            native_set_parms(MM_CAMERA_PARM_CONTINUOUS_AF, sizeof(cafSupport),
+                                   (void *)&cafSupport);
+        }
     }
 
-     if (mRecordingHint && !mFullLiveshotEnabled) {
-         //Camcorder Preview
-         prepareVideoPicture(true);
-     }else{
-         //Camera Preview
-         prepareVideoPicture(false);
+     if (mHasAutoFocusSupport && strcmp(str, "auto")) {
+         int cafSupport = true;
+         int caf_type = 2;
+         native_set_parms(MM_CAMERA_PARM_CAF_TYPE, sizeof(caf_type), (void *)&caf_type);
+         native_set_parms(MM_CAMERA_PARM_CONTINUOUS_AF, sizeof(cafSupport),
+                               (void *)&cafSupport);
      }
     /*  get existing preview information, by qury mm_camera*/
     memset(&dim, 0, sizeof(cam_ctrl_dimension_t));
@@ -1128,8 +1140,9 @@
         if (!matching) {
             dim.picture_width  = mPictureWidth;
             dim.picture_height = mPictureHeight;
-            dim.ui_thumbnail_height = dim.display_height;
-            dim.ui_thumbnail_width = dim.display_width;
+            //For FullSize snapshot Main image Buffer is used as Thumanail.
+            dim.ui_thumbnail_height = mPictureWidth;
+            dim.ui_thumbnail_width = mPictureHeight;
         }
         ALOGI("%s: Fullsize Liveshaot Picture size to set: %d x %d", __func__,
              dim.picture_width, dim.picture_height);
@@ -1145,10 +1158,15 @@
     mStreamDisplay->setMode(myMode & CAMERA_ZSL_MODE);
     mStreamSnap->setMode(myMode & CAMERA_ZSL_MODE);
     mStreamRecord->setMode(myMode & CAMERA_ZSL_MODE);
-    ALOGI("%s: myMode = %d", __func__, myMode);
+    ALOGV("%s: myMode = %d", __func__, myMode);
 
-    ALOGI("%s: setPreviewWindow", __func__);
+    ALOGV("%s: setPreviewWindow", __func__);
     mStreamDisplay->setPreviewWindow(mPreviewWindow);
+    ret = cam_config_set_parm(mCameraId, MM_CAMERA_PARM_INFORM_STARTPRVIEW, NULL);
+    if(ret<0)
+    {
+      ALOGE("%s: Failed to Check MM_CAMERA_PARM_INFORM_STARTPRVIEW, rc %d", __func__, ret);
+    }
 
     if(isZSLMode()) {
         /* Start preview streaming */
@@ -1205,6 +1223,15 @@
         mRecordingHint = false;
     }
 
+    const char * str_fd = mParameters.get(QCameraParameters::KEY_FACE_DETECTION);
+    if((str_fd != NULL) && !strcmp(str_fd, "on")){
+        if(supportsFaceDetection() == false){
+         ALOGE("Face detection support is not available");
+        }
+        setFaceDetection("off");
+        runFaceDetection();
+    }
+
     switch(mPreviewState) {
       case QCAMERA_HAL_PREVIEW_START:
           //mPreviewWindow = NULL;
@@ -1264,7 +1291,7 @@
 {
     ALOGV("previewEnabled: E");
     Mutex::Autolock lock(mLock);
-    ALOGI("%s: mCameraState = %d", __func__, mCameraState);
+    ALOGV("%s: mCameraState = %d", __func__, mCameraState);
     if (mPauseFramedispatch) {
         return false;
     }
@@ -1315,7 +1342,7 @@
         mPreviewState = QCAMERA_HAL_RECORDING_STARTED;
         break;
     case QCAMERA_HAL_RECORDING_STARTED:
-        ALOGI("%s: ", __func__);
+        ALOGV("%s: ", __func__);
         break;
     case QCAMERA_HAL_TAKE_PICTURE:
     default:
@@ -1416,14 +1443,14 @@
     isp3a_af_mode_t afMode = getAutoFocusMode(mParameters);
 
     if (afMode == AF_MODE_CAF && mNotifyCb && ( mMsgEnabled & CAMERA_MSG_FOCUS_MOVE)){
-        ALOGI("%s:Issuing AF Move callback to service",__func__);
+        ALOGV("%s:Issuing AF Move callback to service",__func__);
 
         app_cb->notifyCb  = mNotifyCb;
         app_cb->argm_notify.msg_type = CAMERA_MSG_FOCUS_MOVE;
         app_cb->argm_notify.ext2 = 0;
         app_cb->argm_notify.cookie =  mCallbackCookie;
 
-        ALOGI("Auto focus state =%d", *status);
+        ALOGV("Auto focus state =%d", *status);
         if(*status == 1) {
             app_cb->argm_notify.ext1 = true;
         }else if(*status == 0){
@@ -1445,9 +1472,9 @@
   BEGIN MUTEX CODE
 *************************************************************/
 
-    ALOGI("%s:%d: Trying to acquire AF bit lock",__func__,__LINE__);
+    ALOGV("%s:%d: Trying to acquire AF bit lock",__func__,__LINE__);
     mAutofocusLock.lock();
-    ALOGI("%s:%d: Acquired AF bit lock",__func__,__LINE__);
+    ALOGV("%s:%d: Acquired AF bit lock",__func__,__LINE__);
 
     if(mAutoFocusRunning==false) {
       ALOGV("%s:AF not running, discarding stale event",__func__);
@@ -1483,7 +1510,7 @@
       variables' validity will be under question*/
 
     if (mNotifyCb && ( mMsgEnabled & CAMERA_MSG_FOCUS)){
-      ALOGI("%s:Issuing callback to service",__func__);
+      ALOGV("%s:Issuing AF callback to service",__func__);
 
       /* "Accepted" status is not appropriate it should be used for
         initial cmd, event reporting should only give use SUCCESS/FAIL
@@ -1494,7 +1521,7 @@
       app_cb->argm_notify.ext2 = 0;
       app_cb->argm_notify.cookie =  mCallbackCookie;
 
-      ALOGI("Auto focus state =%d", *status);
+      ALOGV("Auto focus state =%d", *status);
       if(*status==CAM_CTRL_SUCCESS) {
         app_cb->argm_notify.ext1 = true;
       }
@@ -1619,25 +1646,34 @@
     int mNuberOfVFEOutputs = 0;
     Mutex::Autolock lock(mLock);
     bool hdr;
-    int  frm_num = 1;
+    int  frm_num = 1, rc = 0;
     int  exp[MAX_HDR_EXP_FRAME_NUM];
 
     if(QCAMERA_HAL_RECORDING_STARTED != mPreviewState){
+      isp3a_af_mode_t afMode = getAutoFocusMode(mParameters);
+      if (afMode != AF_MODE_CAF && !mFlashCond)
+      {
         mFlashCond = getFlashCondition();
-        ALOGV("%s: Flash Contidion %d", __func__, mFlashCond);
-        if(mFlashCond) {
-            mRestartPreview = true;
-            pausePreviewForZSL();
-        }
-        mFlashCond = false;
+      }
+      ALOGV("%s: Flash Contidion %d", __func__, mFlashCond);
+      if(mFlashCond) {
+        mRestartPreview = true;
+        pausePreviewForZSL();
+      }
+      mFlashCond = false;
     }
 
+    rc = cam_config_set_parm(mCameraId, MM_CAMERA_PARM_LG_CAF_LOCK, NULL);
+    if(rc<0)
+    {
+      ALOGE("%s: Failed to Check MM_CAMERA_PARM_LG_CAF_LOCK, rc %d", __func__, rc);
+    }
     hdr = getHdrInfoAndSetExp(MAX_HDR_EXP_FRAME_NUM, &frm_num, exp);
     mStreamSnap->resetSnapshotCounters();
     mStreamSnap->InitHdrInfoForSnapshot(hdr, frm_num, exp);
     switch(mPreviewState) {
     case QCAMERA_HAL_PREVIEW_STARTED:
-          //set the fullsize liveshot to false
+        //set the fullsize liveshot to false
         mFullLiveshotEnabled = false;
         setFullLiveshot();
         mStreamSnap->setFullSizeLiveshot(false);
@@ -1695,7 +1731,7 @@
           return ret;
       }
       if (canTakeFullSizeLiveshot()) {
-        ALOGI(" Calling takeFullSizeLiveshot");
+        ALOGV(" Calling takeFullSizeLiveshot");
         takeFullSizeLiveshot();
       }else{
         ret = cam_config_get_parm(mCameraId, MM_CAMERA_PARM_VFE_OUTPUT_ENABLE,
@@ -1735,8 +1771,8 @@
 
       /* If Picture size is same as video size, switch to Video size
        * live snapshot */
-      if ((mDimension.picture_width == mDimension.video_width) &&
-          (mDimension.picture_height == mDimension.video_height)) {
+      if ((mDimension.picture_width == mVideoWidth) &&
+          (mDimension.picture_height == mVideoHeight)) {
         return false;
       }
 
@@ -1745,9 +1781,9 @@
         * less than (video size + 10% DIS Margin)
         * then fall back to Video size liveshot. */
         if ((mDimension.picture_width <
-               (int)(mDimension.video_width * 1.1)) ||
+               (int)(mVideoWidth * 1.1)) ||
              (mDimension.picture_height <
-               (int)(mDimension.video_height * 1.1))) {
+               (int)(mVideoHeight * 1.1))) {
           ret = false;
         } else {
           /* Go with Full size live snapshot. */
@@ -1769,7 +1805,7 @@
 {
     status_t ret = NO_ERROR;
     if (mStreamLiveSnap){
-        ALOGI("%s:Deleting old Snapshot stream instance",__func__);
+        ALOGV("%s:Deleting old Snapshot stream instance",__func__);
         QCameraStream_Snapshot::deleteInstance (mStreamLiveSnap);
         mStreamLiveSnap = NULL;
     }
@@ -1817,13 +1853,15 @@
 {
     ALOGV("autoFocus: E");
     status_t ret = NO_ERROR;
+    mFlashCond = getFlashCondition();
+    ALOGV("autoFocus: mFlashCond = %d", mFlashCond);
     Mutex::Autolock lock(mLock);
-    ALOGI("autoFocus: Got lock");
+    ALOGV("autoFocus: Got lock");
     bool status = true;
     isp3a_af_mode_t afMode = getAutoFocusMode(mParameters);
 
     if(mAutoFocusRunning==true){
-      ALOGI("%s:AF already running should not have got this call",__func__);
+      ALOGV("%s:AF already running should not have got this call",__func__);
       return NO_ERROR;
     }
 
@@ -1842,7 +1880,7 @@
       ALOGE("%s:Invalid AF mode (%d)", __func__, afMode);
     }
 
-    ALOGI("%s:AF start (mode %d)", __func__, afMode);
+    ALOGV("%s:AF start (mode %d)", __func__, afMode);
     if(MM_CAMERA_OK != cam_ops_action(mCameraId, true,
                                     MM_CAMERA_OPS_FOCUS, &afMode)) {
       ALOGE("%s: AF command failed err:%d error %s",
@@ -1874,7 +1912,7 @@
     }else/*(!mAutoFocusRunning)*/{
 
       mAutofocusLock.unlock();
-      ALOGI("%s:Af not running",__func__);
+      ALOGV("%s:Af not running",__func__);
       return NO_ERROR;
     }
 /**************************************************************
@@ -1992,26 +2030,26 @@
     memset(&v4l2_crop,0,sizeof(v4l2_crop));
     v4l2_crop.ch_type=MM_CAMERA_CH_SNAPSHOT;
 
-    ALOGI("%s: Fetching crop info", __func__);
+    ALOGV("%s: Fetching crop info", __func__);
     cam_config_get_parm(mCameraId,MM_CAMERA_PARM_CROP,&v4l2_crop);
 
-    ALOGI("%s: Crop info received for main: %d, %d, %d, %d ", __func__,
+    ALOGV("%s: Crop info received for main: %d, %d, %d, %d ", __func__,
          v4l2_crop.snapshot.main_crop.left,
          v4l2_crop.snapshot.main_crop.top,
          v4l2_crop.snapshot.main_crop.width,
          v4l2_crop.snapshot.main_crop.height);
-    ALOGI("%s: Crop info received for thumbnail: %d, %d, %d, %d ",__func__,
+    ALOGV("%s: Crop info received for thumbnail: %d, %d, %d, %d ",__func__,
          v4l2_crop.snapshot.thumbnail_crop.left,
          v4l2_crop.snapshot.thumbnail_crop.top,
          v4l2_crop.snapshot.thumbnail_crop.width,
          v4l2_crop.snapshot.thumbnail_crop.height);
 
     if(mStreamSnap) {
-        ALOGI("%s: Setting crop info for snapshot", __func__);
+        ALOGV("%s: Setting crop info for snapshot", __func__);
         memcpy(&(mStreamSnap->mCrop), &v4l2_crop, sizeof(v4l2_crop));
     }
     if(mFullLiveshotEnabled && mStreamLiveSnap){
-        ALOGI("%s: Setting crop info for snapshot", __func__);
+        ALOGV("%s: Setting crop info for snapshot", __func__);
         memcpy(&(mStreamLiveSnap->mCrop), &v4l2_crop, sizeof(v4l2_crop));
     }
     ALOGV("%s: X", __func__);
@@ -2028,10 +2066,10 @@
         memset(&v4l2_crop, 0, sizeof(v4l2_crop));
         v4l2_crop.ch_type = MM_CAMERA_CH_PREVIEW;
 
-        ALOGI("%s: Fetching crop info", __func__);
+        ALOGV("%s: Fetching crop info", __func__);
         cam_config_get_parm(mCameraId,MM_CAMERA_PARM_CROP,&v4l2_crop);
 
-        ALOGI("%s: Crop info received: %d, %d, %d, %d ", __func__,
+        ALOGV("%s: Crop info received: %d, %d, %d, %d ", __func__,
              v4l2_crop.crop.left,
              v4l2_crop.crop.top,
              v4l2_crop.crop.width,
@@ -2042,8 +2080,8 @@
                         v4l2_crop.crop.top,
                         v4l2_crop.crop.left + v4l2_crop.crop.width,
                         v4l2_crop.crop.top + v4l2_crop.crop.height);
-        ALOGI("%s: Done setting crop", __func__);
-        ALOGI("%s: Currrent zoom :%d",__func__, mCurrentZoom);
+        ALOGV("%s: Done setting crop", __func__);
+        ALOGV("%s: Currrent zoom :%d",__func__, mCurrentZoom);
     }
 
     ALOGV("%s: X", __func__);
@@ -2080,10 +2118,14 @@
 
 void QCameraHardwareInterface::dumpFrameToFile(const void * data, uint32_t size, char* name, char* ext, int index)
 {
-    char buf[32];
-    int file_fd;
+#if 0
+    char buf[32], value[PROPERTY_VALUE_MAX];
+    int file_fd, enabled = 0;
     static int i = 0 ;
-    if ( data != NULL) {
+    property_get("persist.camera.dumpimage", value, "0");
+    enabled = atoi(value);
+
+    if ( data != NULL && enabled) {
         char * str;
         snprintf(buf, sizeof(buf), "/data/%s_%d.%s", name, index, ext);
         ALOGE("%s size =%d", buf, size);
@@ -2092,11 +2134,13 @@
         close(file_fd);
         i++;
     }
+#endif
 }
 
 void QCameraHardwareInterface::dumpFrameToFile(struct msm_frame* newFrame,
   HAL_cam_dump_frm_type_t frm_type)
 {
+#if 0
   int32_t enabled = 0;
   int frm_num;
   uint32_t  skip_mode;
@@ -2127,8 +2171,8 @@
             file_fd = open(buf, O_RDWR | O_CREAT, 0777);
             break;
           case HAL_DUMP_FRM_VIDEO:
-            w = mDimension.video_width;
-            h = mDimension.video_height;
+            w = mVideoWidth;
+            h = mVideoHeight;
             snprintf(buf, sizeof(buf),"/data/%dv_%dx%d.yuv", mDumpFrmCnt, w, h);
             file_fd = open(buf, O_RDWR | O_CREAT, 0777);
             break;
@@ -2156,12 +2200,12 @@
           if (file_fd < 0) {
             ALOGE("%s: cannot open file:type=%d\n", __func__, frm_type);
           } else {
-            ALOGI("%s: %d %d", __func__, newFrame->y_off, newFrame->cbcr_off);
+            ALOGV("%s: %d %d", __func__, newFrame->y_off, newFrame->cbcr_off);
             write(file_fd, (const void *)(newFrame->buffer+newFrame->y_off), w * h);
             write(file_fd, (const void *)
               (newFrame->buffer + newFrame->cbcr_off), w * h / 2 * main_422);
             close(file_fd);
-            ALOGI("dump %s", buf);
+            ALOGV("dump %s", buf);
           }
         } else if(frm_num == 256){
           mDumpFrmCnt = 0;
@@ -2173,6 +2217,7 @@
   }  else {
     mDumpFrmCnt = 0;
   }
+#endif
 }
 
 status_t QCameraHardwareInterface::setPreviewWindow(preview_stream_ops_t* window)
@@ -2191,7 +2236,7 @@
             retVal = startPreview2();
             if(retVal == NO_ERROR)
                 mPreviewState = QCAMERA_HAL_PREVIEW_STARTED;
-            ALOGI("%s:  startPreview2 done, mPreviewState = %d", __func__, mPreviewState);
+            ALOGV("%s:  startPreview2 done, mPreviewState = %d", __func__, mPreviewState);
         } else
             ALOGE("%s: null window received, mPreviewState = %d", __func__, mPreviewState);
         break;
@@ -2365,7 +2410,7 @@
   if (rc < 0)
     ALOGE("%s: Cache Invalidate failed\n", __func__);
   else
-    ALOGI("%s: Cache OPs type(%d) success", __func__);
+    ALOGV("%s: Cache OPs type(%d) success", __func__);
 
   return rc;
 }
@@ -2400,7 +2445,7 @@
     int i;
     int path;
     struct msm_frame *frame;
-    ALOGI("Init Heap =%p. stream_buf =%p, pmem_type =%d, num_of_buf=%d. buf_len=%d, cbcr_off=%d",
+    ALOGV("Init Heap =%p. stream_buf =%p, pmem_type =%d, num_of_buf=%d. buf_len=%d, cbcr_off=%d",
          heap, StreamBuf, pmem_type, num_of_buf, buf_len, cbcr_off);
     if(num_of_buf > MM_CAMERA_MAX_NUM_FRAMES || heap == NULL ||
        mGetMemory == NULL ) {
@@ -2482,7 +2527,7 @@
             frame->fd_data = heap->ion_info_fd[i];
             frame->ion_alloc = heap->alloc[i];
             frame->ion_dev_fd = heap->main_ion_fd[i];
-            ALOGI("%s: Buffer idx: %d  addr: %x fd: %d phy_offset: %d"
+            ALOGV("%s: Buffer idx: %d  addr: %x fd: %d phy_offset: %d"
                  "cbcr_off: %d y_off: %d frame_len: %d", __func__,
                  i, (unsigned int)frame->buffer, frame->fd,
                  frame->phy_offset, cbcr_off, y_off, frame->ion_alloc.len);
@@ -2508,7 +2553,7 @@
         } else {
         }
 
-        ALOGI("heap->fd[%d] =%d, camera_memory=%p", i, heap->fd[i], heap->camera_memory[i]);
+        ALOGV("heap->fd[%d] =%d, camera_memory=%p", i, heap->fd[i], heap->camera_memory[i]);
         heap->local_flag[i] = 1;
     }
     if( rc < 0) {
@@ -2520,7 +2565,7 @@
 int QCameraHardwareInterface::releaseHeapMem( QCameraHalHeap_t *heap)
 {
 	int rc = 0;
-	ALOGI("Release %p", heap);
+	ALOGV("Release %p", heap);
 	if (heap != NULL) {
 
 		for (int i = 0; i < heap->buffer_count; i++) {
@@ -2557,7 +2602,7 @@
 {
     ALOGV("wdnEvent: preview state:%d E",mPreviewState);
     if (mStreamSnap != NULL) {
-        ALOGI("notifyWDNEvent to snapshot stream");
+        ALOGV("notifyWDNEvent to snapshot stream");
         mStreamSnap->notifyWDenoiseEvent(status, cookie);
     }
 }
@@ -2613,26 +2658,23 @@
 
     if (mRestartPreview) {
         mRestartPreview = false;
-        ALOGI("%s: Restarting Preview. Video Size changed",__func__);
+        ALOGV("%s: Restarting Preview. Video Size changed",__func__);
         restart |= false;
     }
     if (mRecordingHint == false) {
-        // Set recording hint to true
-        mRecordingHint = true;
-        setRecordingHintValue(mRecordingHint);
-        ALOGI("%s: Restarting Preview. Hint not set",__func__);
+        ALOGV("%s: Restarting Preview. Hint not set",__func__);
         restart |= true;
     }
 
     if(dim.video_width != mVideoWidth || dim.video_height != mVideoHeight){
-        ALOGI("%s: Restarting Preview. New Video Size set",__func__);
+        ALOGV("%s: Restarting Preview. New Video Size set",__func__);
         restart |= true;
     }
 
     //VFE output1 shouldn't be greater than VFE output2.
     if( (mPreviewWidth > mVideoWidth) || (mPreviewHeight > mVideoHeight)) {
         //Set preview sizes as record sizes.
-        ALOGI("Preview size %dx%d is greater than record size %dx%d,\
+        ALOGV("Preview size %dx%d is greater than record size %dx%d,\
                 resetting preview size to record size",mPreviewWidth,
                         mPreviewHeight, mVideoWidth, mVideoHeight);
         mPreviewWidth = mVideoWidth;
@@ -2644,6 +2686,10 @@
         stopPreviewInternal();
         mPreviewState = QCAMERA_HAL_PREVIEW_STOPPED;
 
+        // Set recording hint to true
+        mRecordingHint = true;
+        setRecordingHintValue(mRecordingHint);
+
         mDimension.display_width = mPreviewWidth;
         mDimension.display_height= mPreviewHeight;
         mDimension.orig_video_width = mVideoWidth;
@@ -2710,7 +2756,7 @@
     QCameraStream * snapStream = (QCameraStream *)cookie;
     ALOGV("HdrEvent: preview state: E");
     if (snapStream != NULL && mStreamSnap != NULL) {
-        ALOGI("HdrEvent to snapshot stream");
+        ALOGV("HdrEvent to snapshot stream");
         snapStream->notifyHdrEvent(status, cookie);
     }
 }
diff --git a/QCameraHWI.h b/QCameraHWI.h
old mode 100755
new mode 100644
index 20a1a77..b009cba
--- a/QCameraHWI.h
+++ b/QCameraHWI.h
@@ -202,7 +202,7 @@
 static const char ExifUndefinedPrefix[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };   // "\0\0\0\0\0\0\0\0"
 
 //EXIF detfines
-#define MAX_EXIF_TABLE_ENTRIES           14
+#define MAX_EXIF_TABLE_ENTRIES           20
 #define GPS_PROCESSING_METHOD_SIZE       101
 #define FOCAL_LENGTH_DECIMAL_PRECISION   100
 #define EXIF_ASCII_PREFIX_SIZE           8   //(sizeof(ExifAsciiPrefix))
@@ -747,6 +747,7 @@
     int mSnapshotFormat;
     int mZslInterval;
     bool mRestartPreview;
+    bool isCameraOpen;
 
     led_mode_t mLedStatusForZsl;
     bool mFlashCond;
@@ -845,6 +846,7 @@
      int                    mExifTableNumEntries;            //NUmber of entries in mExifData
      int                 mNoDisplayMode;
      int                 mIsoValue;
+
 };
 
 }; // namespace android
diff --git a/QCameraHWI_Mem.cpp b/QCameraHWI_Mem.cpp
index 39194af..44f79ae 100644
--- a/QCameraHWI_Mem.cpp
+++ b/QCameraHWI_Mem.cpp
@@ -40,7 +40,6 @@
 #include <gralloc_priv.h>
 
 #include "QCameraHWI_Mem.h"
-#include "QCamera_dbg.h"
 
 #define CAMERA_HAL_UNUSED(expr) do { (void)(expr); } while (0)
 
diff --git a/QCameraHWI_Parm.cpp b/QCameraHWI_Parm.cpp
old mode 100755
new mode 100644
index 6b416a3..7fe9776
--- a/QCameraHWI_Parm.cpp
+++ b/QCameraHWI_Parm.cpp
@@ -40,7 +40,6 @@
 #include "linux/msm_mdp.h"
 #include <linux/fb.h>
 #include <limits.h>
-#include "QCamera_dbg.h"
 
 extern "C" {
 #include <fcntl.h>
@@ -64,6 +63,7 @@
 } // extern "C"
 
 #include "QCameraHWI.h"
+#include "QCameraStream.h"
 
 /* QCameraHardwareInterface class implementation goes here*/
 /* following code implements the parameter logic of this class*/
@@ -84,7 +84,7 @@
 #define MINIMUM_FPS 5
 #define MAXIMUM_FPS 120
 #define DEFAULT_FIXED_FPS 30
-#define DEFAULT_FPS 31
+#define DEFAULT_FPS 30
 
 //Default Picture Width
 #define DEFAULT_PICTURE_WIDTH  640
@@ -143,12 +143,15 @@
 static camera_size_type default_picture_sizes[] = {
   { 4000, 3000}, // 12MP
   { 3264, 2448}, // 8MP
+  { 3264, 1836}, // Picture Size to match 1080p,720p AR
+  { 3264, 2176}, // Picture Size to match 480p AR
   { 2592, 1944}, // 5MP
   { 2048, 1536}, // 3MP QXGA
-  { 1920, 1088}, // HD1080
+  { 1920, 1080}, // HD1080
   { 1600, 1200}, // 2MP UXGA
   { 1280, 960}, // 1.3MP
-  { 800, 600}, // SVGA
+  { 1280, 720},
+  { 720, 480},
   { 800, 480}, // WVGA
   { 640, 480}, // VGA
   { 352, 288}, // CIF
@@ -400,7 +403,7 @@
 {
     *result= cam_config_set_parm(mCameraId, type,value );
     if(MM_CAMERA_OK == *result) {
-        ALOGI("native_set_parms: succeeded : %d", *result);
+        ALOGV("native_set_parms: succeeded : %d", *result);
         return true;
     }
 
@@ -553,7 +556,7 @@
         mHasAutoFocusSupport = true;
     }
     else {
-        ALOGI("AutoFocus is not supported");
+        ALOGV("AutoFocus is not supported");
         mHasAutoFocusSupport = false;
     }
 
@@ -568,6 +571,7 @@
 
 bool QCameraHardwareInterface::supportsFaceDetection() {
     bool rc;
+
     status_t ret = NO_ERROR;
     mm_camera_op_mode_type_t op_mode;
 
@@ -576,15 +580,15 @@
         ALOGE("%s: Failed to get Op Mode", __func__);
     }
 
-    ALOGV("%s: OP_Mode is %d, ret=%d",__func__,op_mode,ret);
-    if ((ret == NO_ERROR) && (op_mode == MM_CAMERA_OP_MODE_VIDEO))
+    ALOGV("%s: OP_Mode is %d, ret=%d, mHdrMode=%d",__func__,op_mode,ret,mHdrMode);
+    if ((ret == NO_ERROR) && (op_mode == MM_CAMERA_OP_MODE_VIDEO) && (mHdrMode != HDR_MODE))
     {
         ALOGV("%s: Video mode : FD not supported",__func__);
         return false;
     }
     else{
-        ALOGV("%s: Still mode : FD supported",__func__);
         rc = cam_config_is_parm_supported(mCameraId,MM_CAMERA_PARM_FD);
+        ALOGV("%s: Still mode : FD supported : %d",__func__,rc);
         return rc;
     }
 }
@@ -636,7 +640,7 @@
             break;
         }
     }
-    ALOGI("%s: Found Max Picture dimension: %d x %d", __func__,
+    ALOGV("%s: Found Max Picture dimension: %d x %d", __func__,
           maxDim->width, maxDim->height);
     return ret;
 }
@@ -713,7 +717,7 @@
     memset(prop, 0, sizeof(prop));
     property_get("persist.camera.snap.format", prop, "0");
     mSnapshotFormat = atoi(prop);
-    ALOGI("%s: prop =(%s), snap_format=%d", __func__, prop, mSnapshotFormat);
+    ALOGV("%s: prop =(%s), snap_format=%d", __func__, prop, mSnapshotFormat);
 
     //cam_ctrl_dimension_t dim;
     mHFRLevel = 0;
@@ -742,7 +746,7 @@
       mDimension.main_img_format = CAMERA_YUV_420_NV21;
     }
     mDimension.thumb_format    = CAMERA_YUV_420_NV21;
-    ALOGI("%s: main_img_format =%d, thumb_format=%d", __func__,
+    ALOGV("%s: main_img_format =%d, thumb_format=%d", __func__,
          mDimension.main_img_format, mDimension.thumb_format);
     mDimension.prev_padding_format = CAMERA_PAD_TO_WORD;
 
@@ -831,11 +835,11 @@
             ALOGE("%s:Failed to get max zoom",__func__);
         }else{
 
-            ALOGI("Max Zoom:%d",mMaxZoom);
+            ALOGV("Max Zoom:%d",mMaxZoom);
             /* Kernel driver limits the max amount of data that can be retreived through a control
             command to 260 bytes hence we conservatively limit to 110 zoom ratios */
             if(mMaxZoom>MAX_ZOOM_RATIOS) {
-                ALOGE("%s:max zoom is larger than sizeof zoomRatios table",__func__);
+                ALOGV("%s:max zoom is larger than sizeof zoomRatios table",__func__);
                 mMaxZoom=MAX_ZOOM_RATIOS-1;
             }
             zmt.size=mMaxZoom;
@@ -849,7 +853,7 @@
             }
         }
 
-        ALOGI("Zoom supported:%d",mZoomSupported);
+        ALOGV("Zoom supported:%d",mZoomSupported);
 
         denoise_value = create_values_str(
             denoise, sizeof(denoise) / sizeof(str_map));
@@ -997,7 +1001,7 @@
 #endif
     if(mZoomSupported){
         mParameters.set(QCameraParameters::KEY_ZOOM_SUPPORTED, "true");
-        ALOGI("max zoom is %d", mMaxZoom-1);
+        ALOGV("max zoom is %d", mMaxZoom-1);
         /* mMaxZoom value that the query interface returns is the size
         ALOGV("max zoom is %d", mMaxZoom-1);
         * mMaxZoom value that the query interface returns is the size
@@ -1021,15 +1025,17 @@
 
     //8960 supports Power modes : Low power, Normal Power.
     mParameters.set("power-mode-supported", "true");
+
     //Set Live shot support
     rc = cam_config_is_parm_supported(mCameraId, MM_CAMERA_PARM_LIVESHOT_MAIN);
     if(!rc) {
-        ALOGE("%s:LIVESHOT is  not supported", __func__);
+        ALOGV("%s:LIVESHOT is  not supported", __func__);
         mParameters.set("video-snapshot-supported", "false");
     } else {
         mParameters.set("video-snapshot-supported", "true");
     }
 
+
     //Set default power mode
     mParameters.set(QCameraParameters::KEY_POWER_MODE,"Low_Power");
     //Set Wnr on
@@ -1076,8 +1082,8 @@
     //Set Focus Mode
     if(mHasAutoFocusSupport){
        mParameters.set(QCameraParameters::KEY_FOCUS_MODE,
-                          QCameraParameters::FOCUS_MODE_CONTINUOUS_PICTURE);
-       mFocusMode = AF_MODE_CAF;
+                          QCameraParameters::FOCUS_MODE_AUTO);
+       mFocusMode = AF_MODE_AUTO;
        mParameters.set(QCameraParameters::KEY_SUPPORTED_FOCUS_MODES,
                           mFocusModeValues);
        mParameters.set(QCameraParameters::KEY_MAX_NUM_FOCUS_AREAS, "1");
@@ -1207,7 +1213,7 @@
     //Set Face Detection
     if(supportsFaceDetection()){
         mParameters.set(QCameraParameters::KEY_FACE_DETECTION,
-                        QCameraParameters::FACE_DETECTION_ON);
+                        QCameraParameters::FACE_DETECTION_OFF);
         mParameters.set(QCameraParameters::KEY_SUPPORTED_FACE_DETECTION,
                         mFaceDetectionValues);
     }
@@ -1369,7 +1375,7 @@
     if ((rc = setSaturation(params)))                   final_rc = rc;
     if ((rc = setSceneMode(params)))                    final_rc = rc;
     if ((rc = setContrast(params)))                     final_rc = rc;
-    if ((rc = setFaceDetect(params)))                   final_rc = rc;
+//    if ((rc = setFaceDetect(params)))                   final_rc = rc;
     if ((rc = setStrTextures(params)))                  final_rc = rc;
     if ((rc = setPreviewFormat(params)))                final_rc = rc;
     if ((rc = setSkinToneEnhancement(params)))          final_rc = rc;
@@ -1398,23 +1404,22 @@
     if((rc = setRecordingHint(params)))                 final_rc = rc;
     if ((rc = setNumOfSnapshot(params)))                final_rc = rc;
     if ((rc = setAecAwbLock(params)))                   final_rc = rc;
-    if ((rc = setWhiteBalance(params)))             final_rc = rc;
+    if ((rc = setWhiteBalance(params)))                 final_rc = rc;
     const char *str = params.get(QCameraParameters::KEY_SCENE_MODE);
     int32_t value = attr_lookup(scenemode, sizeof(scenemode) / sizeof(str_map), str);
 
     if((value != NOT_FOUND) && (value == CAMERA_BESTSHOT_OFF )) {
         //if ((rc = setPreviewFrameRateMode(params)))     final_rc = rc;
         if ((rc = setPreviewFrameRate(params)))         final_rc = rc;
-        if ((rc = setAutoExposure(params)))             final_rc = rc;
-        if ((rc = setExposureCompensation(params)))     final_rc = rc;
-        if ((rc = setWhiteBalance(params)))             final_rc = rc;
         if ((rc = setBrightness(params)))               final_rc = rc;
         if ((rc = setISOValue(params)))                 final_rc = rc;
         if ((rc = setFocusAreas(params)))               final_rc = rc;
         if ((rc = setMeteringAreas(params)))            final_rc = rc;
     }
-    if ((rc = setFlash(params)))                    final_rc = rc;
-    if ((rc = setFocusMode(params)))                final_rc = rc;
+    if ((rc = setFocusMode(params)))                    final_rc = rc;
+    if ((rc = setAutoExposure(params)))                 final_rc = rc;
+    if ((rc = setExposureCompensation(params)))         final_rc = rc;
+    if ((rc = setFlash(params)))                        final_rc = rc;
     //selectableZoneAF needs to be invoked after continuous AF
     if ((rc = setSelectableZoneAf(params)))             final_rc = rc;
     // setHighFrameRate needs to be done at end, as there can
@@ -1423,8 +1428,7 @@
     if ((rc = setZSLBurstLookBack(params))) final_rc = rc;
     if ((rc = setZSLBurstInterval(params))) final_rc = rc;
     if ((rc = setNoDisplayMode(params))) final_rc = rc;
-    if ((rc = setCAFLockCancel())) final_rc = rc;
-    
+
     //Update Exiftag values.
     setExifTags();
 
@@ -1468,6 +1472,11 @@
 {
     Mutex::Autolock lock(mLock);
     mParameters.set(QCameraParameters::KEY_FOCUS_DISTANCES, mFocusDistance.string());
+    const char *str = mParameters.get(QCameraParameters::KEY_SCENE_MODE);
+    if (mHasAutoFocusSupport && strcmp(str, "auto")) {
+        mParameters.set(QCameraParameters::KEY_FOCUS_MODE,
+                                        QCameraParameters::FOCUS_MODE_CONTINUOUS_PICTURE);
+    }
     return mParameters;
 }
 
@@ -1497,7 +1506,7 @@
     ALOGV("%s",__func__);
     rc = cam_config_is_parm_supported(mCameraId, MM_CAMERA_PARM_SHARPNESS);
     if(!rc) {
-        ALOGE("%s:CONTRAST not supported", __func__);
+        ALOGV("%s:CONTRAST not supported", __func__);
         return NO_ERROR;
     }
     int sharpness = params.getInt(QCameraParameters::KEY_SHARPNESS);
@@ -1505,7 +1514,7 @@
             || sharpness > CAMERA_MAX_SHARPNESS))
         return UNKNOWN_ERROR;
 
-    ALOGI("setting sharpness %d", sharpness);
+    ALOGV("setting sharpness %d", sharpness);
     mParameters.set(QCameraParameters::KEY_SHARPNESS, sharpness);
     ret = native_set_parms(MM_CAMERA_PARM_SHARPNESS, sizeof(sharpness),
                                (void *)&sharpness);
@@ -1519,7 +1528,7 @@
     ALOGV("%s",__func__);
     rc = cam_config_is_parm_supported(mCameraId, MM_CAMERA_PARM_SATURATION);
     if(!rc) {
-        ALOGE("%s:MM_CAMERA_PARM_SATURATION not supported", __func__);
+        ALOGV("%s:MM_CAMERA_PARM_SATURATION not supported", __func__);
         return NO_ERROR;
     }
     int result;
@@ -1529,12 +1538,12 @@
         || (saturation > CAMERA_MAX_SATURATION))
     return UNKNOWN_ERROR;
 
-    ALOGI("Setting saturation %d", saturation);
+    ALOGV("Setting saturation %d", saturation);
     mParameters.set(QCameraParameters::KEY_SATURATION, saturation);
     ret = native_set_parms(MM_CAMERA_PARM_SATURATION, sizeof(saturation),
         (void *)&saturation, (int *)&result);
     if(result != MM_CAMERA_OK)
-        ALOGI("Saturation Value: %d is not set as the selected value is not supported", saturation);
+        ALOGV("Saturation Value: %d is not set as the selected value is not supported", saturation);
     return ret ? NO_ERROR : UNKNOWN_ERROR;
 }
 
@@ -1544,7 +1553,7 @@
    int rc = MM_CAMERA_OK;
    rc = cam_config_is_parm_supported(mCameraId, MM_CAMERA_PARM_CONTRAST);
    if(!rc) {
-        ALOGI("%s:CONTRAST not supported", __func__);
+        ALOGV("%s:CONTRAST not supported", __func__);
         return NO_ERROR;
     }
    const char *str = params.get(QCameraParameters::KEY_SCENE_MODE);
@@ -1555,15 +1564,15 @@
         if((contrast < CAMERA_MIN_CONTRAST)
                 || (contrast > CAMERA_MAX_CONTRAST))
         {
-            ALOGE("Contrast Value not matching");
+            ALOGV("Contrast Value not matching");
             return UNKNOWN_ERROR;
         }
-        ALOGI("setting contrast %d", contrast);
+        ALOGV("setting contrast %d", contrast);
         mParameters.set(QCameraParameters::KEY_CONTRAST, contrast);
-        ALOGI("Calling Contrast set on Lower layer");
+        ALOGV("Calling Contrast set on Lower layer");
         bool ret = native_set_parms(MM_CAMERA_PARM_CONTRAST, sizeof(contrast),
                                    (void *)&contrast);
-        ALOGI("Lower layer returned %d", ret);
+        ALOGV("Lower layer returned %d", ret);
         int bestshot_reconfigure;
         cam_config_get_parm(mCameraId, MM_CAMERA_PARM_BESTSHOT_RECONFIGURE,
                             &bestshot_reconfigure);
@@ -1578,7 +1587,7 @@
         }
         return ret ? NO_ERROR : UNKNOWN_ERROR;
     } else {
-          ALOGI(" Contrast value will not be set " \
+          ALOGV(" Contrast value will not be set " \
           "when the scenemode selected is %s", str);
           return NO_ERROR;
     }
@@ -1593,15 +1602,15 @@
 
     rc = cam_config_is_parm_supported(mCameraId,MM_CAMERA_PARM_ASD_ENABLE);
     if(!rc) {
-        ALOGI("%s:MM_CAMERA_PARM_ASD_ENABLE not supported", __func__);
+        ALOGV("%s:MM_CAMERA_PARM_ASD_ENABLE not supported", __func__);
         return NO_ERROR;
     }
 
     const char *str = params.get(QCameraParameters::KEY_SCENE_DETECT);
-    ALOGI("Scene Detect string : %s",str);
+    ALOGV("Scene Detect string : %s",str);
     if (str != NULL) {
         int32_t value = attr_lookup(scenedetect, sizeof(scenedetect) / sizeof(str_map), str);
-        ALOGI("Scenedetect Value : %d",value);
+        ALOGV("Scenedetect Value : %d",value);
         if (value != NOT_FOUND) {
             mParameters.set(QCameraParameters::KEY_SCENE_DETECT, str);
 
@@ -1622,7 +1631,7 @@
 
 
     if( !( cam_config_is_parm_supported(mCameraId, MM_CAMERA_PARM_ZOOM))) {
-        ALOGI("%s:MM_CAMERA_PARM_ZOOM not supported", __func__);
+        ALOGV("%s:MM_CAMERA_PARM_ZOOM not supported", __func__);
         return NO_ERROR;
     }
     // No matter how many different zoom values the driver can provide, HAL
@@ -1660,16 +1669,16 @@
 
     rc = cam_config_is_parm_supported(mCameraId, MM_CAMERA_PARM_ISO);
     if(!rc) {
-        ALOGI("%s:MM_CAMERA_PARM_ISO not supported", __func__);
+        ALOGV("%s:MM_CAMERA_PARM_ISO not supported", __func__);
         return NO_ERROR;
     }
     const char *str = params.get(QCameraParameters::KEY_ISO_MODE);
-    ALOGI("ISO string : %s", str);
+    ALOGV("ISO string : %s", str);
     int8_t temp_hjr;
     if (str != NULL) {
         int value = (camera_iso_mode_type)attr_lookup(
           iso, sizeof(iso) / sizeof(str_map), str);
-        ALOGI("ISO string : %s", str);
+        ALOGV("ISO string : %s", str);
         if (value != NOT_FOUND) {
             camera_iso_mode_type temp = (camera_iso_mode_type) value;
             if (value == CAMERA_ISO_DEBLUR) {
@@ -1718,7 +1727,7 @@
             snprintf(buffer, sizeof(buffer), ",%f", focusDistances.focus_distance[2]);
             str.append(buffer);
         }
-        ALOGI("%s: setting KEY_FOCUS_DISTANCES as %s", __FUNCTION__, str.string());
+        ALOGV("%s: setting KEY_FOCUS_DISTANCES as %s", __FUNCTION__, str.string());
         mFocusDistance = str;
         return NO_ERROR;
     }
@@ -1844,7 +1853,7 @@
             return BAD_VALUE;
         }
         for(int i=0; i<num_areas_found; i++) {
-            ALOGI("FocusArea[%d] = (%d, %d, %d, %d, %d)", i, (areas[i].x1), (areas[i].y1),
+            ALOGV("FocusArea[%d] = (%d, %d, %d, %d, %d)", i, (areas[i].x1), (areas[i].y1),
                         (areas[i].x2), (areas[i].y2), (areas[i].weight));
         }
         if(validateCameraAreas(areas, num_areas_found) == false) {
@@ -1950,7 +1959,7 @@
             return BAD_VALUE;
         }
         for(int i=0; i<num_areas_found; i++) {
-            ALOGI("MeteringArea[%d] = (%d, %d, %d, %d, %d)", i, (areas[i].x1), (areas[i].y1),
+            ALOGV("MeteringArea[%d] = (%d, %d, %d, %d, %d)", i, (areas[i].x1), (areas[i].y1),
                         (areas[i].x2), (areas[i].y2), (areas[i].weight));
         }
         if(validateCameraAreas(areas, num_areas_found) == false) {
@@ -2044,7 +2053,7 @@
     const char *prev_str = mParameters.get(QCameraParameters::KEY_FOCUS_MODE);
     ALOGV("%s",__func__);
     if (str != NULL) {
-        ALOGI("Focus mode %s",str);
+        ALOGV("Focus mode %s",str);
         int32_t value = attr_lookup(focus_modes,
                                     sizeof(focus_modes) / sizeof(str_map), str);
         if (value != NOT_FOUND) {
@@ -2062,11 +2071,12 @@
                                       (void *)&value);
 
                 int cafSupport = false;
+                int caf_type=0;
+                const char *str_hdr = mParameters.get(QCameraParameters::KEY_SCENE_MODE);
                 if(!strcmp(str, QCameraParameters::FOCUS_MODE_CONTINUOUS_VIDEO) ||
                    !strcmp(str, QCameraParameters::FOCUS_MODE_CONTINUOUS_PICTURE)){
                     cafSupport = true;
 #ifdef FAST_AF
-                    int caf_type=0;
                     bool rc = false;
                     if(!strcmp(str, QCameraParameters::FOCUS_MODE_CONTINUOUS_VIDEO))
                     {
@@ -2078,17 +2088,23 @@
                         caf_type = 2;
                         rc = native_set_parms(MM_CAMERA_PARM_CAF_TYPE, sizeof(caf_type), (void *)&caf_type);
                     }
-                    ALOGI("caf_type %d rc %d", caf_type, rc);
+                    ALOGV("caf_type %d rc %d", caf_type, rc);
 #endif
                 }
-                ALOGI("Continuous Auto Focus %d", cafSupport);
+                ALOGV("Continuous Auto Focus %d", cafSupport);
+                if(mAutoFocusRunning && cafSupport){
+                  mAutoFocusRunning = false;
+                  if(MM_CAMERA_OK!=cam_ops_action(mCameraId,false,MM_CAMERA_OPS_FOCUS,NULL )) {
+                    ALOGE("%s: AF command failed err:%d error %s",__func__, errno,strerror(errno));
+                  }
+                }
                 ret = native_set_parms(MM_CAMERA_PARM_CONTINUOUS_AF, sizeof(cafSupport),
                                        (void *)&cafSupport);
             }
 
             return NO_ERROR;
         }
-        ALOGE("%s:Could not look up str value",__func__);
+        ALOGV("%s:Could not look up str value",__func__);
     }
     ALOGE("Invalid focus mode value: %s", (str == NULL) ? "NULL" : str);
     return BAD_VALUE;
@@ -2101,30 +2117,27 @@
 
     rc = cam_config_is_parm_supported(mCameraId, MM_CAMERA_PARM_BESTSHOT_MODE);
     if(!rc) {
-        ALOGI("%s:Parameter Scenemode is not supported for this sensor", __func__);
+        ALOGV("%s:Parameter Scenemode is not supported for this sensor", __func__);
         return NO_ERROR;
     }
     const char *str = params.get(QCameraParameters::KEY_SCENE_MODE);
     const char *oldstr = mParameters.get(QCameraParameters::KEY_SCENE_MODE);
 
-    ALOGI("Scene Mode string : %s",str);
-
     if (str != NULL && oldstr != NULL) {
         int32_t value = attr_lookup(scenemode, sizeof(scenemode) / sizeof(str_map), str);
         if (value != NOT_FOUND) {
-
             /* Check to see if there was a change of scene mode */
             if(strcmp(str,oldstr)) {
-                ALOGI("%s: valued changed from %s to %s",__func__,oldstr, str);
+                ALOGV("%s: valued changed from %s to %s",__func__,oldstr, str);
 
                 /* Check if we are either transitioning to/from HDR state
                    if yes preview needs restart*/
                 if(!strcmp(str, "hdr") || !strcmp(oldstr, "hdr") ) {
-                    ALOGI("Changed between HDR/non-HDR states");
+                    ALOGV("Changed between HDR/non-HDR states");
 
                     /* Restart only if preview already running*/
                     if (mPreviewState == QCAMERA_HAL_PREVIEW_STARTED) {
-                        ALOGI("Preview in progress,restarting for HDR transition");
+                        ALOGV("Preview in progress,restarting for HDR transition");
                         mParameters.set(QCameraParameters::KEY_SCENE_MODE, str);
                         mRestartPreview = 1;
                         pausePreviewForZSL();
@@ -2142,7 +2155,7 @@
                 if (mBestShotMode != value) {
                      mBestShotMode = value;
                      if (mPreviewState == QCAMERA_HAL_PREVIEW_STARTED && ret) {
-                           ALOGI("%s:Bestshot trigerring restart",__func__);
+                           ALOGV("%s:Bestshot trigerring restart",__func__);
                            mRestartPreview = 1;
                            pausePreviewForZSL();
                       }
@@ -2166,7 +2179,7 @@
             if (value != NOT_FOUND) {
                  rc = cam_config_is_parm_supported(mCameraId, MM_CAMERA_PARM_FOCUS_RECT);
                  if(!rc) {
-                    ALOGI("SelectableZoneAF  is not supported for this sensor");
+                    ALOGV("SelectableZoneAF  is not supported for this sensor");
                     return NO_ERROR;
                  }else {
                     mParameters.set(QCameraParameters::KEY_SELECTABLE_ZONE_AF, str);
@@ -2190,12 +2203,12 @@
     const char *str = params.get(QCameraParameters::KEY_EFFECT);
     int result;
     if (str != NULL) {
-        ALOGI("Setting effect %s",str);
+        ALOGV("Setting effect %s",str);
         int32_t value = attr_lookup(effects, sizeof(effects) / sizeof(str_map), str);
         if (value != NOT_FOUND) {
            rc = cam_config_is_parm_supported(mCameraId, MM_CAMERA_PARM_EFFECT);
            if(!rc) {
-               ALOGI("Camera Effect - %s mode is not supported for this sensor",str);
+               ALOGV("Camera Effect - %s mode is not supported for this sensor",str);
                return NO_ERROR;
            }else {
                mParameters.set(QCameraParameters::KEY_EFFECT, str);
@@ -2231,12 +2244,12 @@
     status_t rc = NO_ERROR;
     rc = cam_config_is_parm_supported(mCameraId, MM_CAMERA_PARM_BRIGHTNESS);
    if(!rc) {
-       ALOGI("MM_CAMERA_PARM_BRIGHTNESS mode is not supported for this sensor");
+       ALOGV("MM_CAMERA_PARM_BRIGHTNESS mode is not supported for this sensor");
        return NO_ERROR;
    }
    int brightness = params.getInt("luma-adaptation");
    if (mBrightness !=  brightness) {
-       ALOGI(" new brightness value : %d ", brightness);
+       ALOGV(" new brightness value : %d ", brightness);
        mBrightness =  brightness;
        mParameters.set("luma-adaptation", brightness);
        bool ret = native_set_parms(MM_CAMERA_PARM_BRIGHTNESS, sizeof(mBrightness),
@@ -2254,7 +2267,7 @@
     status_t rc = NO_ERROR;
     rc = cam_config_is_parm_supported(mCameraId, MM_CAMERA_PARM_EXPOSURE);
    if(!rc) {
-       ALOGI("MM_CAMERA_PARM_EXPOSURE mode is not supported for this sensor");
+       ALOGV("MM_CAMERA_PARM_EXPOSURE mode is not supported for this sensor");
        return NO_ERROR;
    }
    const char *str = params.get(QCameraParameters::KEY_AUTO_EXPOSURE);
@@ -2277,7 +2290,7 @@
     status_t rc = NO_ERROR;
     rc = cam_config_is_parm_supported(mCameraId, MM_CAMERA_PARM_EXPOSURE_COMPENSATION);
     if(!rc) {
-       ALOGI("MM_CAMERA_PARM_EXPOSURE_COMPENSATION mode is not supported for this sensor");
+       ALOGV("MM_CAMERA_PARM_EXPOSURE_COMPENSATION mode is not supported for this sensor");
        return NO_ERROR;
     }
     int numerator = params.getInt(QCameraParameters::KEY_EXPOSURE_COMPENSATION);
@@ -2288,9 +2301,22 @@
         uint32_t  value = 0;
         value = numerator16 << 16 | denominator16;
 
-        mParameters.set(QCameraParameters::KEY_EXPOSURE_COMPENSATION,
+        const char *sce_str = params.get(QCameraParameters::KEY_SCENE_MODE);
+        if (sce_str != NULL) {
+            if(!strcmp(sce_str, "sunset")){
+                //Exposure comp value in sunset scene mode
+                mParameters.set(QCameraParameters::KEY_EXPOSURE_COMPENSATION,
+                            -6);
+            }else{
+                //Exposure comp value for other
+                mParameters.set(QCameraParameters::KEY_EXPOSURE_COMPENSATION,
                             numerator);
-       bool ret = native_set_parms(MM_CAMERA_PARM_EXPOSURE_COMPENSATION,
+            }
+        }else {
+            mParameters.set(QCameraParameters::KEY_EXPOSURE_COMPENSATION,
+                            numerator);
+        }
+        bool ret = native_set_parms(MM_CAMERA_PARM_EXPOSURE_COMPENSATION,
                                     sizeof(value), (void *)&value);
         return ret ? NO_ERROR : UNKNOWN_ERROR;
     }
@@ -2303,14 +2329,31 @@
 
     ALOGV("%s",__func__);
     status_t rc = NO_ERROR;
+    int result;
+    const char *str = NULL;
     rc = cam_config_is_parm_supported(mCameraId, MM_CAMERA_PARM_WHITE_BALANCE);
     if(!rc) {
-       ALOGI("MM_CAMERA_PARM_WHITE_BALANCE mode is not supported for this sensor");
+       ALOGV("MM_CAMERA_PARM_WHITE_BALANCE mode is not supported for this sensor");
        return NO_ERROR;
     }
-     int result;
 
-    const char *str = params.get(QCameraParameters::KEY_WHITE_BALANCE);
+    const char *sce_str = params.get(QCameraParameters::KEY_SCENE_MODE);
+    if (sce_str != NULL) {
+        if(!strcmp(sce_str, "sunset")){
+            //AWB value in sunset scene mode
+            str = QCameraParameters::WHITE_BALANCE_DAYLIGHT;
+            mParameters.set(QCameraParameters::KEY_WHITE_BALANCE, str);
+        }else if(!strcmp(sce_str, "auto")){
+            str = params.get(QCameraParameters::KEY_WHITE_BALANCE);
+        }else{
+            //AWB in  other scene Mode
+            str = QCameraParameters::WHITE_BALANCE_AUTO;
+            mParameters.set(QCameraParameters::KEY_WHITE_BALANCE, str);
+        }
+    }else {
+        str = params.get(QCameraParameters::KEY_WHITE_BALANCE);
+    }
+
     if (str != NULL) {
         int32_t value = attr_lookup(whitebalance, sizeof(whitebalance) / sizeof(str_map), str);
         if (value != NOT_FOUND) {
@@ -2326,15 +2369,16 @@
     ALOGE("Invalid whitebalance value: %s", (str == NULL) ? "NULL" : str);
     return BAD_VALUE;
 }
+
 status_t QCameraHardwareInterface::setAntibanding(const QCameraParameters& params)
 {
     int result;
 
-    ALOGI("%s",__func__);
+    ALOGV("%s",__func__);
     status_t rc = NO_ERROR;
     rc = cam_config_is_parm_supported(mCameraId, MM_CAMERA_PARM_ANTIBANDING);
     if(!rc) {
-       ALOGI("ANTIBANDING mode is not supported for this sensor");
+       ALOGV("ANTIBANDING mode is not supported for this sensor");
        return NO_ERROR;
     }
     const char *str = params.get(QCameraParameters::KEY_ANTIBANDING);
@@ -2343,7 +2387,7 @@
           antibanding, sizeof(antibanding) / sizeof(str_map), str);
         if (value != NOT_FOUND) {
             camera_antibanding_type temp = (camera_antibanding_type) value;
-            ALOGI("Antibanding Value : %d",value);
+            ALOGV("Antibanding Value : %d",value);
             mParameters.set(QCameraParameters::KEY_ANTIBANDING, str);
             bool ret = native_set_parms(MM_CAMERA_PARM_ANTIBANDING,
                        sizeof(camera_antibanding_type), (void *)&value ,(int *)&result);
@@ -2364,15 +2408,15 @@
     status_t rc = NO_ERROR;
     rc = cam_config_is_parm_supported(mCameraId, MM_CAMERA_PARM_FPS);
     if(!rc) {
-       ALOGI("MM_CAMERA_PARM_FPS is not supported for this sensor");
+       ALOGV("MM_CAMERA_PARM_FPS is not supported for this sensor");
        return NO_ERROR;
     }
     uint16_t previousFps = (uint16_t)mParameters.getPreviewFrameRate();
     uint16_t fps = (uint16_t)params.getPreviewFrameRate();
-    ALOGI("requested preview frame rate  is %u", fps);
+    ALOGV("requested preview frame rate  is %u", fps);
 
     if(mInitialized && (fps == previousFps)){
-        ALOGI("No change is FPS Value %d",fps );
+        ALOGV("No change is FPS Value %d",fps );
         return NO_ERROR;
     }
 
@@ -2392,28 +2436,28 @@
     status_t rc = NO_ERROR;
     rc = cam_config_is_parm_supported(mCameraId, MM_CAMERA_PARM_FPS);
     if(!rc) {
-       ALOGI(" CAMERA FPS mode is not supported for this sensor");
+       ALOGV(" CAMERA FPS mode is not supported for this sensor");
        return NO_ERROR;
     }
     rc = cam_config_is_parm_supported(mCameraId, MM_CAMERA_PARM_FPS_MODE);
     if(!rc) {
-       ALOGI("CAMERA FPS MODE mode is not supported for this sensor");
+       ALOGV("CAMERA FPS MODE mode is not supported for this sensor");
        return NO_ERROR;
     }
 
     const char *previousMode = mParameters.getPreviewFrameRateMode();
     const char *str = params.getPreviewFrameRateMode();
     if (NULL == previousMode) {
-        ALOGI("Preview Frame Rate Mode is NULL\n");
+        ALOGV("Preview Frame Rate Mode is NULL\n");
         return NO_ERROR;
     }
     if (NULL == str) {
-        ALOGI("Preview Frame Rate Mode is NULL\n");
+        ALOGV("Preview Frame Rate Mode is NULL\n");
         return NO_ERROR;
     }
     int32_t frameRateMode = attr_lookup(frame_rate_modes, sizeof(frame_rate_modes) / sizeof(str_map),str);
     if(frameRateMode != NOT_FOUND) {
-        ALOGI("setPreviewFrameRateMode: %s ", str);
+        ALOGV("setPreviewFrameRateMode: %s ", str);
         mParameters.setPreviewFrameRateMode(str);
         bool ret = native_set_parms(MM_CAMERA_PARM_FPS_MODE, sizeof(frameRateMode), (void *)&frameRateMode);
         if(!ret) return ret;
@@ -2438,12 +2482,12 @@
     status_t rc = NO_ERROR;
     rc = cam_config_is_parm_supported(mCameraId, MM_CAMERA_PARM_SCE_FACTOR);
     if(!rc) {
-       ALOGI("SkinToneEnhancement is not supported for this sensor");
+       ALOGV("SkinToneEnhancement is not supported for this sensor");
        return NO_ERROR;
     }
      int skinToneValue = params.getInt("skinToneEnhancement");
      if (mSkinToneEnhancement != skinToneValue) {
-          ALOGI(" new skinTone correction value : %d ", skinToneValue);
+          ALOGV(" new skinTone correction value : %d ", skinToneValue);
           mSkinToneEnhancement = skinToneValue;
           mParameters.set("skinToneEnhancement", skinToneValue);
           bool ret = native_set_parms(MM_CAMERA_PARM_SCE_FACTOR, sizeof(mSkinToneEnhancement),
@@ -2458,7 +2502,7 @@
     status_t rc = NO_ERROR;
     rc = cam_config_is_parm_supported(mCameraId, MM_CAMERA_PARM_WAVELET_DENOISE);
     if(rc != MM_CAMERA_PARM_SUPPORT_SET) {
-        ALOGI("Wavelet Denoise is not supported for this sensor");
+        ALOGV("Wavelet Denoise is not supported for this sensor");
         /* TO DO */
 //        return NO_ERROR;
     }
@@ -2478,7 +2522,7 @@
             memset(&temp, 0, sizeof(denoise_param_t));
             temp.denoise_enable = value;
             temp.process_plates = atoi(prop);
-            ALOGI("Denoise enable=%d, plates=%d", temp.denoise_enable, temp.process_plates);
+            ALOGV("Denoise enable=%d, plates=%d", temp.denoise_enable, temp.process_plates);
             bool ret = native_set_parms(MM_CAMERA_PARM_WAVELET_DENOISE, sizeof(temp),
                     (void *)&temp);
             return ret ? NO_ERROR : UNKNOWN_ERROR;
@@ -2501,17 +2545,17 @@
         mParameters.set(QCameraParameters::KEY_VIDEO_SIZE, "");
         //If application didn't set this parameter string, use the values from
         //getPreviewSize() as video dimensions.
-        ALOGI("No Record Size requested, use the preview dimensions");
+        ALOGV("No Record Size requested, use the preview dimensions");
         mVideoWidth = mPreviewWidth;
         mVideoHeight = mPreviewHeight;
     } else {
         //Extract the record witdh and height that application requested.
-        ALOGI("%s: requested record size %s", __func__, str);
+        ALOGV("%s: requested record size %s", __func__, str);
         if(!parse_size(str, mVideoWidth, mVideoHeight)) {
             parse_size(str_t, old_vid_w, old_vid_h);
             if(old_vid_w != mVideoWidth || old_vid_h != mVideoHeight) {
                 mRestartPreview = true; 
-                ALOGI("%s: Video sizes changes, Restart preview...", __func__);
+                ALOGV("%s: Video sizes changes, Restart preview...", __func__);
             }
             mParameters.set(QCameraParameters::KEY_VIDEO_SIZE, str);
         } else {
@@ -2520,8 +2564,8 @@
             return BAD_VALUE;
         }
     }
-    ALOGI("%s: preview dimensions: %dx%d", __func__, mPreviewWidth, mPreviewHeight);
-    ALOGI("%s: video dimensions: %dx%d", __func__, mVideoWidth, mVideoHeight);
+    ALOGV("%s: preview dimensions: %dx%d", __func__, mPreviewWidth, mPreviewHeight);
+    ALOGV("%s: video dimensions: %dx%d", __func__, mVideoWidth, mVideoHeight);
 
     ALOGV("%s: X", __func__);
     return NO_ERROR;
@@ -2537,6 +2581,7 @@
     } else {
         myMode = (camera_mode_t)(myMode & ~CAMERA_ZSL_MODE);
     }
+
     return NO_ERROR;
 }
 
@@ -2549,18 +2594,18 @@
         value = attr_lookup(power_modes,
                 sizeof(power_modes) / sizeof(str_map), powermode);
         if((value == LOW_POWER) || mHFRLevel > 1) {
-            ALOGI("Enable Low Power Mode");
+            ALOGV("Enable Low Power Mode");
             value = LOW_POWER;
             mPowerMode = value;
             mParameters.set(QCameraParameters::KEY_POWER_MODE,"Low_Power");
         } else {
-            ALOGI("Enable Normal Power Mode");
+            ALOGV("Enable Normal Power Mode");
             mPowerMode = value;
             mParameters.set(QCameraParameters::KEY_POWER_MODE,"Normal_Power");
         }
     }
 
-    ALOGI("%s Low power mode %s value = %d", __func__,
+    ALOGV("%s Low power mode %s value = %d", __func__,
           value ? "Enabled" : "Disabled", value);
     native_set_parms(MM_CAMERA_PARM_LOW_POWER_MODE, sizeof(value),
                                                (void *)&value);
@@ -2572,7 +2617,7 @@
 {
     int width, height;
     params.getPreviewSize(&width, &height);
-    ALOGI("################requested preview size %d x %d", width, height);
+    ALOGV("################requested preview size %d x %d", width, height);
 
     // Validate the preview size
     for (size_t i = 0; i <  mPreviewSizeCount; ++i) {
@@ -2584,7 +2629,7 @@
                 mRestartPreview = true;
             }
             mParameters.setPreviewSize(width, height);
-            ALOGI("setPreviewSize:  width: %d   heigh: %d", width, height);
+            ALOGV("setPreviewSize:  width: %d   heigh: %d", width, height);
             mPreviewWidth = width;
             mPreviewHeight = height;
 
@@ -2610,12 +2655,12 @@
     bool found = false;
 
     mParameters.getPreviewFpsRange(&prevMinFps, &prevMaxFps);
-    ALOGI("%s: Existing FpsRange Values:(%d, %d)", __func__, prevMinFps, prevMaxFps);
+    ALOGV("%s: Existing FpsRange Values:(%d, %d)", __func__, prevMinFps, prevMaxFps);
     params.getPreviewFpsRange(&minFps,&maxFps);
-    ALOGI("%s: Requested FpsRange Values:(%d, %d)", __func__, minFps, maxFps);
+    ALOGV("%s: Requested FpsRange Values:(%d, %d)", __func__, minFps, maxFps);
 
     if(mInitialized && (minFps == prevMinFps && maxFps == prevMaxFps)) {
-        ALOGI("%s: No change in FpsRange", __func__);
+        ALOGV("%s: No change in FpsRange", __func__);
         rc = NO_ERROR;
         goto end;
     }
@@ -2623,7 +2668,7 @@
         // if the value is in the supported list
         if(minFps==FpsRangesSupported[i].minFPS && maxFps == FpsRangesSupported[i].maxFPS){
             found = true;
-            ALOGI("FPS: i=%d : minFps = %d, maxFps = %d ",i,FpsRangesSupported[i].minFPS,FpsRangesSupported[i].maxFPS );
+            ALOGV("FPS: i=%d : minFps = %d, maxFps = %d ",i,FpsRangesSupported[i].minFPS,FpsRangesSupported[i].maxFPS );
             mParameters.setPreviewFpsRange(minFps,maxFps);
             // validate the values
             bool valid = true;
@@ -2637,7 +2682,7 @@
                 const char *str = (minFps == maxFps) ?
                     QCameraParameters::KEY_PREVIEW_FRAME_RATE_FIXED_MODE:
                     QCameraParameters::KEY_PREVIEW_FRAME_RATE_AUTO_MODE;
-                ALOGI("%s FPS_MODE = %s", __func__, str);
+                ALOGV("%s FPS_MODE = %s", __func__, str);
                 int32_t frameRateMode = attr_lookup(frame_rate_modes,
                         sizeof(frame_rate_modes) / sizeof(str_map),str);
                 bool ret;
@@ -2674,7 +2719,7 @@
     int width = params.getInt(QCameraParameters::KEY_JPEG_THUMBNAIL_WIDTH);
     int height = params.getInt(QCameraParameters::KEY_JPEG_THUMBNAIL_HEIGHT);
 
-    ALOGI("requested jpeg thumbnail size %d x %d", width, height);
+    ALOGV("requested jpeg thumbnail size %d x %d", width, height);
 
     // Validate the picture size
     for (unsigned int i = 0; i < thumbnail_sizes_count; ++i) {
@@ -2695,7 +2740,7 @@
     int width, height;
     ALOGV("QualcommCameraHardware::setPictureSize E");
     params.getPictureSize(&width, &height);
-    ALOGI("requested picture size %d x %d", width, height);
+    ALOGV("requested picture size %d x %d", width, height);
 
     // Validate the picture size
     for (int i = 0; i < mSupportedPictureSizesCount; ++i) {
@@ -2762,7 +2807,7 @@
         ALOGE("Invalid jpeg thumbnail quality=%d", quality);
         rc = BAD_VALUE;
     }
-    ALOGE("setJpegQuality X");
+    ALOGV("setJpegQuality X");
     return rc;
 }
 
@@ -2775,7 +2820,7 @@
     if (num_of_snapshot <= 0) {
         num_of_snapshot = 1;
     }
-    ALOGI("number of snapshots = %d", num_of_snapshot);
+    ALOGV("number of snapshots = %d", num_of_snapshot);
     mParameters.set("num-snaps-per-shutter", num_of_snapshot);
 
     bool result = native_set_parms(MM_CAMERA_PARM_SNAPSHOT_BURST_NUM,
@@ -2809,7 +2854,7 @@
                                    (void *)&mPreviewFormatInfo.mm_cam_format);
         mParameters.set(QCameraParameters::KEY_PREVIEW_FORMAT, str);
         mPreviewFormat = mPreviewFormatInfo.mm_cam_format;
-        ALOGI("Setting preview format to %d, i =%d, num=%d, hal_format=%d",
+        ALOGV("Setting preview format to %d, i =%d, num=%d, hal_format=%d",
              mPreviewFormat, i, num, mPreviewFormatInfo.Hal_format);
         return NO_ERROR;
     } else if ( strTexturesOn ) {
@@ -2835,7 +2880,7 @@
         mParameters.set("strtextures", str);
         if(str_size == 2) {
             if(!strncmp(str, "on", str_size) || !strncmp(str, "ON", str_size)){
-                ALOGI("Resetting mUseOverlay to false");
+                ALOGV("Resetting mUseOverlay to false");
                 strTexturesOn = true;
                 mUseOverlay = false;
             }
@@ -2852,14 +2897,33 @@
 
 status_t QCameraHardwareInterface::setFlash(const QCameraParameters& params)
 {
+    const char *str = NULL;
+
     ALOGV("%s: E",__func__);
     int rc = cam_config_is_parm_supported(mCameraId, MM_CAMERA_PARM_LED_MODE);
     if(!rc) {
-        ALOGI("%s:LED FLASH not supported", __func__);
+        ALOGV("%s:LED FLASH not supported", __func__);
         return NO_ERROR;
     }
 
-    const char *str = params.get(QCameraParameters::KEY_FLASH_MODE);
+    const char *sce_str = params.get(QCameraParameters::KEY_SCENE_MODE);
+    if (sce_str != NULL) {
+        if (!strcmp(sce_str, "hdr")) {
+            //Flash In HDR
+            str = QCameraParameters::FLASH_MODE_OFF;
+            mParameters.set(QCameraParameters::KEY_FLASH_MODE, str);
+        }else if(!strcmp(sce_str, "auto")){
+            //Flash Mode in auto scene mode
+            str = params.get(QCameraParameters::KEY_FLASH_MODE);
+        }else{
+            //FLASH in  scene Mode except auto, hdr
+            str = QCameraParameters::FLASH_MODE_AUTO;
+            mParameters.set(QCameraParameters::KEY_FLASH_MODE, str);
+        }
+    }else {
+        str = params.get(QCameraParameters::KEY_FLASH_MODE);
+    }
+
     if (str != NULL) {
         int32_t value = attr_lookup(flash, sizeof(flash) / sizeof(str_map), str);
         if (value != NOT_FOUND) {
@@ -2915,7 +2979,7 @@
     status_t rc = NO_ERROR;
     rc = cam_config_is_parm_supported(mCameraId,MM_CAMERA_PARM_MCE);
    if(!rc) {
-       ALOGI("MM_CAMERA_PARM_MCE mode is not supported for this sensor");
+       ALOGV("MM_CAMERA_PARM_MCE mode is not supported for this sensor");
        return NO_ERROR;
    }
    const char *str = params.get(QCameraParameters::KEY_MEMORY_COLOR_ENHANCEMENT);
@@ -2923,7 +2987,7 @@
         int value = attr_lookup(mce, sizeof(mce) / sizeof(str_map), str);
         if (value != NOT_FOUND) {
             int temp = (int8_t)value;
-            ALOGI("%s: setting MCE value of %s", __FUNCTION__, str);
+            ALOGV("%s: setting MCE value of %s", __FUNCTION__, str);
             mParameters.set(QCameraParameters::KEY_MEMORY_COLOR_ENHANCEMENT, str);
 
             native_set_parms(MM_CAMERA_PARM_MCE, sizeof(int8_t), (void *)&temp);
@@ -2942,7 +3006,7 @@
 
     int rc = cam_config_is_parm_supported(mCameraId, MM_CAMERA_PARM_HFR);
     if(!rc) {
-        ALOGI("%s: MM_CAMERA_PARM_HFR not supported", __func__);
+        ALOGV("%s: MM_CAMERA_PARM_HFR not supported", __func__);
         return NO_ERROR;
     }
 
@@ -2989,7 +3053,7 @@
 
     int rc = cam_config_is_parm_supported(mCameraId, MM_CAMERA_PARM_ROLLOFF);
     if(!rc) {
-        ALOGI("%s:LENS SHADING not supported", __func__);
+        ALOGV("%s:LENS SHADING not supported", __func__);
         return NO_ERROR;
     }
 
@@ -3022,7 +3086,7 @@
     }
     mParameters.set(QCameraParameters::KEY_MAX_NUM_REQUESTED_FACES, requested_faces);
     const char *str = params.get(QCameraParameters::KEY_FACE_DETECTION);
-    ALOGI("setFaceDetect: %s", str);
+    ALOGV("setFaceDetect: %s", str);
     if (str != NULL) {
         fd_set_parm_t fd_set_parm;
         int value = attr_lookup(facedetection,
@@ -3030,7 +3094,7 @@
         mFaceDetectOn = value;
         fd_set_parm.fd_mode = value;
         fd_set_parm.num_fd = requested_faces;
-        ALOGI("%s Face detection value = %d, num_fd = %d",__func__, value, requested_faces);
+        ALOGV("%s Face detection value = %d, num_fd = %d",__func__, value, requested_faces);
         native_set_parms(MM_CAMERA_PARM_FD, sizeof(fd_set_parm_t), (void *)&fd_set_parm);
         mParameters.set(QCameraParameters::KEY_FACE_DETECTION, str);
         return NO_ERROR;
@@ -3041,7 +3105,7 @@
 status_t QCameraHardwareInterface::setFaceDetection(const char *str)
 {
     if(supportsFaceDetection() == false){
-        ALOGI("Face detection is not enabled");
+        ALOGV("Face detection is not enabled");
         return NO_ERROR;
     }
     if (str != NULL) {
@@ -3055,7 +3119,7 @@
             mMetaDataWaitLock.unlock();
             fd_set_parm.fd_mode = value;
             fd_set_parm.num_fd = requested_faces;
-            ALOGI("%s Face detection value = %d, num_fd = %d",__func__, value, requested_faces);
+            ALOGV("%s Face detection value = %d, num_fd = %d",__func__, value, requested_faces);
             native_set_parms(MM_CAMERA_PARM_FD, sizeof(fd_set_parm_t), (void *)&fd_set_parm);
             mParameters.set(QCameraParameters::KEY_FACE_DETECTION, str);
             return NO_ERROR;
@@ -3069,10 +3133,10 @@
 {
     const char *str;
     if(!cam_config_is_parm_supported(mCameraId,MM_CAMERA_PARM_HDR) || (myMode & CAMERA_ZSL_MODE)) {
-        ALOGI("Parameter HDR is not supported for this sensor/ ZSL mode");
+        ALOGV("Parameter HDR is not supported for this sensor/ ZSL mode");
 
         if (myMode & CAMERA_ZSL_MODE) {
-            ALOGI("In ZSL mode, reset AEBBracket to HDR_OFF mode");
+            ALOGV("In ZSL mode, reset AEBBracket to HDR_OFF mode");
             exp_bracketing_t temp;
             memset(&temp, 0, sizeof(temp));
             mHdrMode = HDR_BRACKETING_OFF;
@@ -3106,7 +3170,7 @@
                     int numFrames = getNumOfSnapshots();
                     const char *str_val = params.get("capture-burst-exposures");
                     if ((str_val != NULL) && (strlen(str_val)>0)) {
-                        ALOGI("%s: capture-burst-exposures %s", __FUNCTION__, str_val);
+                        ALOGV("%s: capture-burst-exposures %s", __FUNCTION__, str_val);
 
                         mHdrMode = EXP_BRACKETING_MODE;
                         temp.hdr_enable = false;
@@ -3114,12 +3178,12 @@
                         temp.total_frames = (numFrames >  MAX_SNAPSHOT_BUFFERS -2) ? MAX_SNAPSHOT_BUFFERS -2 : numFrames;
                         temp.total_hal_frames = temp.total_frames;
                         strlcpy(temp.values, str_val, MAX_EXP_BRACKETING_LENGTH);
-                        ALOGI("%s: setting Exposure Bracketing value of %s, frame (%d)", __FUNCTION__, temp.values, temp.total_hal_frames);
+                        ALOGV("%s: setting Exposure Bracketing value of %s, frame (%d)", __FUNCTION__, temp.values, temp.total_hal_frames);
                         native_set_parms(MM_CAMERA_PARM_HDR, sizeof(exp_bracketing_t), (void *)&temp);
                     }
                     else {
                         /* Apps not set capture-burst-exposures, error case fall into bracketing off mode */
-                        ALOGI("%s: capture-burst-exposures not set, back to HDR OFF mode", __FUNCTION__);
+                        ALOGV("%s: capture-burst-exposures not set, back to HDR OFF mode", __FUNCTION__);
                         mHdrMode = HDR_BRACKETING_OFF;
                         temp.hdr_enable= false;
                         temp.mode = HDR_BRACKETING_OFF;
@@ -3157,7 +3221,7 @@
 status_t QCameraHardwareInterface::setRedeyeReduction(const QCameraParameters& params)
 {
     if(supportsRedEyeReduction() == false) {
-        ALOGI("Parameter Redeye Reduction is not supported for this sensor");
+        ALOGV("Parameter Redeye Reduction is not supported for this sensor");
         return NO_ERROR;
     }
 
@@ -3166,7 +3230,7 @@
         int value = attr_lookup(redeye_reduction, sizeof(redeye_reduction) / sizeof(str_map), str);
         if (value != NOT_FOUND) {
             int8_t temp = (int8_t)value;
-            ALOGI("%s: setting Redeye Reduction value of %s", __FUNCTION__, str);
+            ALOGV("%s: setting Redeye Reduction value of %s", __FUNCTION__, str);
             mParameters.set(QCameraParameters::KEY_REDEYE_REDUCTION, str);
 
             native_set_parms(MM_CAMERA_PARM_REDEYE_REDUCTION, sizeof(int8_t), (void *)&temp);
@@ -3373,7 +3437,7 @@
   uint32_t value = mRecordingHint && mDisEnabled
                    && !isLowPowerCamcorder();
 
-  ALOGI("%s DIS is %s value = %d", __func__,
+  ALOGV("%s DIS is %s value = %d", __func__,
           value ? "Enabled" : "Disabled", value);
   native_set_parms(MM_CAMERA_PARM_DIS_ENABLE, sizeof(value),
                                                (void *)&value);
@@ -3388,14 +3452,14 @@
   uint32_t value = mRecordingHint && mFullLiveshotEnabled
                    && !isLowPowerCamcorder();
 
-  if (((mDimension.picture_width == mDimension.video_width) &&
-      (mDimension.picture_height == mDimension.video_height))) {
+  if (((mDimension.picture_width == mVideoWidth) &&
+      (mDimension.picture_height == mVideoHeight))) {
     /* If video size matches the live snapshot size
      * turn off full size liveshot to get higher fps. */
     value = 0;
   }
 
-  ALOGI("%s Full size liveshot %s value = %d", __func__,
+  ALOGV("%s Full size liveshot %s value = %d", __func__,
           value ? "Enabled" : "Disabled", value);
   native_set_parms(MM_CAMERA_PARM_FULL_LIVESHOT, sizeof(value),
                                                (void *)&value);
@@ -3462,7 +3526,7 @@
     property_get("persist.camera.snapshot.number", prop, "0");
     ALOGV("%s: prop enable/disable = %d", __func__, atoi(prop));
     if (atoi(prop)) {
-        ALOGI("%s: Reading maximum no of snapshots = %d"
+        ALOGV("%s: Reading maximum no of snapshots = %d"
              "from properties", __func__, atoi(prop));
         return atoi(prop);
     } else {
@@ -3477,7 +3541,7 @@
     property_get("persist.camera.snapshot.number", prop, "0");
     ALOGV("%s: prop enable/disable = %d", __func__, atoi(prop));
     if (atoi(prop)) {
-        ALOGI("%s: Reading maximum no of snapshots = %d"
+        ALOGV("%s: Reading maximum no of snapshots = %d"
              "from properties", __func__, atoi(prop));
         return atoi(prop);
     } else {
@@ -3539,13 +3603,13 @@
         goto end;
     }
 
-    ALOGI("%s: Max Preview Sizes Supported: %d X %d", __func__,
+    ALOGV("%s: Max Preview Sizes Supported: %d X %d", __func__,
          dim.width, dim.height);
 
     for (i = 0; i < preview_table_size; i++) {
         if ((preview_size_table->width <= dim.width) &&
             (preview_size_table->height <= dim.height)) {
-            ALOGI("%s: Camera Preview Size Table "
+            ALOGV("%s: Camera Preview Size Table "
                  "Max width: %d height %d table_size: %d",
                  __func__, preview_size_table->width,
                  preview_size_table->height, preview_table_size - i);
@@ -3556,7 +3620,7 @@
     //set preferred preview size to maximum preview size
     sprintf(str, "%dx%d", preview_size_table->width, preview_size_table->height);
     mParameters.set(QCameraParameters::KEY_PREFERRED_PREVIEW_SIZE_FOR_VIDEO, str);
-    ALOGI("KEY_PREFERRED_PREVIEW_SIZE_FOR_VIDEO = %s", str);
+    ALOGV("KEY_PREFERRED_PREVIEW_SIZE_FOR_VIDEO = %s", str);
 
 end:
     /* Save the table in global member*/
@@ -3599,7 +3663,7 @@
         goto end;
     }
 
-    ALOGI("%s: Max Picture Sizes Supported: %d X %d", __func__,
+    ALOGV("%s: Max Picture Sizes Supported: %d X %d", __func__,
          dim.width, dim.height);
 
     for (i = 0; i < picture_table_size; i++) {
@@ -3607,7 +3671,7 @@
            are less than or equal to maximum supported */
         if ((picture_size_table->width <= dim.width) &&
             (picture_size_table->height <= dim.height)) {
-            ALOGI("%s: Camera Picture Size Table "
+            ALOGV("%s: Camera Picture Size Table "
                  "Max width: %d height %d table_size: %d",
                  __func__, picture_size_table->width,
                  picture_size_table->height, count+1);
@@ -3663,7 +3727,7 @@
         goto end;
     }
 
-    ALOGI("%s: Max Video Size Supported: %d X %d", __func__,
+    ALOGV("%s: Max Video Size Supported: %d X %d", __func__,
          dim.width, dim.height);
 
     for(i=0; i < video_table_size; i++) {
@@ -3671,7 +3735,7 @@
            are less than or equal to maximum supported */
         if((video_size_table->width <= dim.width) &&
             (video_size_table->height <= dim.height)) {
-            ALOGI("%s: Supported Video Size [%d] = %dx%d", __func__, count, video_size_table->width,
+            ALOGV("%s: Supported Video Size [%d] = %dx%d", __func__, count, video_size_table->width,
                                     video_size_table->height);
             mVideoSizes[count].height = video_size_table->height;
             mVideoSizes[count].width = video_size_table->width;
@@ -3741,7 +3805,7 @@
                     ALOGE("Failed to get camera memory for stats heap index: %d", cnt);
                     return(-1);
                 } else {
-                   ALOGI("Received following info for stats mapped data:%p,handle:%p, size:%d,release:%p",
+                   ALOGV("Received following info for stats mapped data:%p,handle:%p, size:%d,release:%p",
                    mStatsMapped[cnt]->data ,mStatsMapped[cnt]->handle, mStatsMapped[cnt]->size, mStatsMapped[cnt]->release);
                 }
                 mHistServer.size = sizeof(camera_preview_histogram_info);
@@ -3762,7 +3826,7 @@
                     ALOGE("Failed to get camera memory for server side histogram index: %d", cnt);
                     return(-1);
                 } else {
-                   ALOGI("Received following info for server side histogram data:%p,handle:%p, size:%d,release:%p",
+                   ALOGV("Received following info for server side histogram data:%p,handle:%p, size:%d,release:%p",
                    mHistServer.camera_memory[cnt]->data ,mHistServer.camera_memory[cnt]->handle,
                         mHistServer.camera_memory[cnt]->size, mHistServer.camera_memory[cnt]->release);
                 }
@@ -3774,7 +3838,7 @@
                 }
         }
     }
-    ALOGI("Setting histogram = %d", histogram_en);
+    ALOGV("Setting histogram = %d", histogram_en);
     native_set_parms(MM_CAMERA_PARM_HISTOGRAM, sizeof(int), &histogram_en);
     if(histogram_en == QCAMERA_PARM_DISABLE)
     {
@@ -3804,7 +3868,7 @@
   const char *v = params.get("capture-burst-retroactive");
   if (v) {
     int look_back = atoi(v);
-    ALOGI("%s: look_back =%d", __func__, look_back);
+    ALOGV("%s: look_back =%d", __func__, look_back);
     mParameters.set("capture-burst-retroactive", look_back);
   }
   return NO_ERROR;
@@ -3816,7 +3880,7 @@
   const char *v = params.get("capture-burst-interval");
   if (v) {
     int interval = atoi(v);
-    ALOGI("%s: Interval =%d", __func__, interval);
+    ALOGV("%s: Interval =%d", __func__, interval);
     if(interval < BURST_INTREVAL_MIN ||interval > BURST_INTREVAL_MAX ) {
       return BAD_VALUE;
     }
@@ -3834,7 +3898,7 @@
     memset(prop, 0, sizeof(prop));
     property_get("persist.camera.zsl.interval", prop, "1");
     val = atoi(prop);
-    ALOGI("%s: prop interval = %d", __func__, val);
+    ALOGV("%s: prop interval = %d", __func__, val);
   } else {
     val = mZslInterval;
   }
@@ -3847,7 +3911,7 @@
     char prop[PROPERTY_VALUE_MAX];
     memset(prop, 0, sizeof(prop));
     property_get("persist.camera.zsl.queuedepth", prop, "2");
-    ALOGI("%s: prop = %d", __func__, atoi(prop));
+    ALOGV("%s: prop = %d", __func__, atoi(prop));
     return atoi(prop);
 }
 
@@ -3857,11 +3921,11 @@
     char prop[PROPERTY_VALUE_MAX];
     memset(prop, 0, sizeof(prop));
     property_get("persist.camera.zsl.backlookcnt", prop, "0");
-    ALOGI("%s: prop = %d", __func__, atoi(prop));
+    ALOGV("%s: prop = %d", __func__, atoi(prop));
     look_back = atoi(prop);
     if (look_back == 0 ) {
       look_back = mParameters.getInt("capture-burst-retroactive");
-      ALOGI("%s: look_back = %d", __func__, look_back);
+      ALOGV("%s: look_back = %d", __func__, look_back);
     }
     return look_back;
 }
@@ -3897,7 +3961,7 @@
         }
     }
 
-    ALOGI("%s: myMode %d, flash mode %d, flash condition %d",
+    ALOGV("%s: myMode %d, flash mode %d, flash condition %d",
         __func__, myMode, mLedStatusForZsl, flash_cond);
     return flash_cond;
 }
@@ -4004,7 +4068,7 @@
 
         addExifTag(EXIFTAGID_GPS_TIMESTAMP, EXIF_RATIONAL,
                   3, 1, (void *)mExifValues.gpsTimeStamp);
-        ALOGI("EXIFTAGID_GPS_TIMESTAMP set");
+        ALOGV("EXIFTAGID_GPS_TIMESTAMP set");
     }
 
 }
@@ -4037,12 +4101,12 @@
         {
             temp1 = (uint16_t)(focusDistances.real_gain + 0.5)*100;
             mExifValues.isoSpeed = temp1;
-            ALOGI("The new ISO value is %d", temp1);
+            ALOGV("The new ISO value is %d", temp1);
         }
         else{
             temp1 = iso_speed_values[mIsoValue];
             mExifValues.isoSpeed = temp1;
-            ALOGI("else The new ISO value is %d", temp1);
+            ALOGV("else The new ISO value is %d", temp1);
         }
 
         if(focusDistances.exp_time <= 0) // avoid zero-divide problem
@@ -4055,7 +4119,7 @@
         memcpy(&mExifValues.exposure_time, &temp, sizeof(mExifValues.exposure_time));
         addExifTag(EXIFTAGID_EXPOSURE_TIME, EXIF_RATIONAL, 1, 1, (void *)&mExifValues.exposure_time);
 
-        ALOGI(" The exposure value is %f", temp2);
+        ALOGV(" The exposure value is %f", temp2);
     }
     //get time and date from system
     time_t rawtime;
@@ -4083,7 +4147,7 @@
        strncpy(mExifValues.gpsProcessingMethod + EXIF_ASCII_PREFIX_SIZE, str,
            GPS_PROCESSING_METHOD_SIZE - 1);
        mExifValues.gpsProcessingMethod[EXIF_ASCII_PREFIX_SIZE + GPS_PROCESSING_METHOD_SIZE-1] = '\0';
-       ALOGI("EXIFTAGID_GPS_PROCESSINGMETHOD = %s %s", mExifValues.gpsProcessingMethod,
+       ALOGV("EXIFTAGID_GPS_PROCESSINGMETHOD = %s %s", mExifValues.gpsProcessingMethod,
                                                     mExifValues.gpsProcessingMethod+8);
        mExifValues.mGpsProcess  = true;
     }else{
@@ -4095,7 +4159,7 @@
     str = mParameters.get(QCameraParameters::KEY_GPS_LATITUDE);
     if(str != NULL) {
         parseGPSCoordinate(str, mExifValues.latitude);
-        ALOGI("EXIFTAGID_GPS_LATITUDE = %s", str);
+        ALOGV("EXIFTAGID_GPS_LATITUDE = %s", str);
 
         //set Latitude Ref
         float latitudeValue = mParameters.getFloat(QCameraParameters::KEY_GPS_LATITUDE);
@@ -4107,7 +4171,7 @@
         mExifValues.latRef[1] = '\0';
         mExifValues.mLatitude = true;
         mParameters.set(QCameraParameters::KEY_GPS_LATITUDE_REF,mExifValues.latRef);
-        ALOGI("EXIFTAGID_GPS_LATITUDE_REF = %s", mExifValues.latRef);
+        ALOGV("EXIFTAGID_GPS_LATITUDE_REF = %s", mExifValues.latRef);
     }else{
         mExifValues.mLatitude = false;
     }
@@ -4117,7 +4181,7 @@
     str = mParameters.get(QCameraParameters::KEY_GPS_LONGITUDE);
     if(str != NULL) {
         parseGPSCoordinate(str, mExifValues.longitude);
-        ALOGI("EXIFTAGID_GPS_LONGITUDE = %s", str);
+        ALOGV("EXIFTAGID_GPS_LONGITUDE = %s", str);
 
         //set Longitude Ref
         float longitudeValue = mParameters.getFloat(QCameraParameters::KEY_GPS_LONGITUDE);
@@ -4128,7 +4192,7 @@
         }
         mExifValues.lonRef[1] = '\0';
         mExifValues.mLongitude = true;
-        ALOGI("EXIFTAGID_GPS_LONGITUDE_REF = %s", mExifValues.lonRef);
+        ALOGV("EXIFTAGID_GPS_LONGITUDE_REF = %s", mExifValues.lonRef);
         mParameters.set(QCameraParameters::KEY_GPS_LONGITUDE_REF, mExifValues.lonRef);
     }else{
         mExifValues.mLongitude = false;
@@ -4147,7 +4211,7 @@
         mExifValues.mAltitude = true;
         //set AltitudeRef
         mParameters.set(QCameraParameters::KEY_GPS_ALTITUDE_REF, mExifValues.mAltitude_ref);
-        ALOGI("EXIFTAGID_GPS_ALTITUDE = %f", value);
+        ALOGV("EXIFTAGID_GPS_ALTITUDE = %f", value);
     }else{
         mExifValues.mAltitude = false;
     }
@@ -4205,10 +4269,10 @@
     } else {
       mNoDisplayMode = 0;
     }
-    ALOGI("Param mNoDisplayMode =%d", mNoDisplayMode);
+    ALOGV("Param mNoDisplayMode =%d", mNoDisplayMode);
   } else {
     mNoDisplayMode = prop_val;
-    ALOGI("prop mNoDisplayMode =%d", mNoDisplayMode);
+    ALOGV("prop mNoDisplayMode =%d", mNoDisplayMode);
   }
   return NO_ERROR;
 }
@@ -4238,7 +4302,7 @@
         mParameters.setPictureSize(mDimension.video_width, mDimension.video_height);
         mParameters.set(QCameraParameters::KEY_SUPPORTED_PICTURE_SIZES,
                         str.string());
-        ALOGI("%s: Video Picture size supported = %d X %d",
+        ALOGV("%s: Video Picture size supported = %d X %d",
               __func__,mDimension.video_width,mDimension.video_height);
     }else{
         //Set Picture Size
diff --git a/QCameraHWI_Preview.cpp b/QCameraHWI_Preview.cpp
old mode 100755
new mode 100644
index f53069d..68c4e12
--- a/QCameraHWI_Preview.cpp
+++ b/QCameraHWI_Preview.cpp
@@ -25,7 +25,6 @@
 #include "QCameraHWI.h"
 #include <genlock.h>
 #include <gralloc_priv.h>
-#include "QCamera_dbg.h"
 
 #define UNLIKELY(exp) __builtin_expect(!!(exp), 0)
 
@@ -70,60 +69,61 @@
     return retVal;
 }
 
-status_t QCameraStream_preview::getBufferFromSurface() {
+status_t QCameraStream_preview::getBufferFromSurface() 
+{
     int err = 0;
     int numMinUndequeuedBufs = 0;
-  int format = 0;
-  status_t ret = NO_ERROR;
-  int gralloc_usage;
+    int format = 0;
+    status_t ret = NO_ERROR;
+    int gralloc_usage;
 
     ALOGV(" %s : E ", __FUNCTION__);
 
     if( mPreviewWindow == NULL) {
         ALOGE("%s: mPreviewWindow = NULL", __func__);
         return INVALID_OPERATION;
-  }
+    }
     cam_ctrl_dimension_t dim;
 
-  //mDisplayLock.lock();
+    //mDisplayLock.lock();
     ret = cam_config_get_parm(mCameraId, MM_CAMERA_PARM_DIMENSION,&dim);
 
 	format = mHalCamCtrl->getPreviewFormatInfo().Hal_format;
 	if(ret != NO_ERROR) {
         ALOGE("%s: display format %d is not supported", __func__, dim.prev_format);
-    goto end;
-  }
-  numMinUndequeuedBufs = 0;
-  if(mPreviewWindow->get_min_undequeued_buffer_count) {
-    err = mPreviewWindow->get_min_undequeued_buffer_count(mPreviewWindow, &numMinUndequeuedBufs);
-    if (err != 0) {
-       ALOGE("get_min_undequeued_buffer_count  failed: %s (%d)",
-            strerror(-err), -err);
-       ret = UNKNOWN_ERROR;
-       goto end;
+        goto end;
     }
-  }
+    numMinUndequeuedBufs = 0;
+    if(mPreviewWindow->get_min_undequeued_buffer_count) {
+        err = mPreviewWindow->get_min_undequeued_buffer_count(mPreviewWindow, &numMinUndequeuedBufs);
+        if (err != 0) {
+           ALOGE("get_min_undequeued_buffer_count  failed: %s (%d)",
+                strerror(-err), -err);
+           ret = UNKNOWN_ERROR;
+           goto end;
+        }
+    }
     mHalCamCtrl->mPreviewMemoryLock.lock();
     mHalCamCtrl->mPreviewMemory.buffer_count = kPreviewBufferCount + numMinUndequeuedBufs;
     if(mHalCamCtrl->isZSLMode()) {
-      if(mHalCamCtrl->getZSLQueueDepth() > numMinUndequeuedBufs)
-        mHalCamCtrl->mPreviewMemory.buffer_count +=
-            mHalCamCtrl->getZSLQueueDepth() - numMinUndequeuedBufs;
+        if(mHalCamCtrl->getZSLQueueDepth() > numMinUndequeuedBufs)
+            mHalCamCtrl->mPreviewMemory.buffer_count +=
+                mHalCamCtrl->getZSLQueueDepth() - numMinUndequeuedBufs;
     }
     err = mPreviewWindow->set_buffer_count(mPreviewWindow, mHalCamCtrl->mPreviewMemory.buffer_count );
     if (err != 0) {
-         ALOGE("set_buffer_count failed: %s (%d)",
+        ALOGE("set_buffer_count failed: %s (%d)",
                     strerror(-err), -err);
-         ret = UNKNOWN_ERROR;
-     goto end;
+        ret = UNKNOWN_ERROR;
+        goto end;
     }
     err = mPreviewWindow->set_buffers_geometry(mPreviewWindow,
                 dim.display_width, dim.display_height, format);
     if (err != 0) {
-         ALOGE("set_buffers_geometry failed: %s (%d)",
+        ALOGE("set_buffers_geometry failed: %s (%d)",
                     strerror(-err), -err);
-         ret = UNKNOWN_ERROR;
-     goto end;
+        ret = UNKNOWN_ERROR;
+        goto end;
     }
 
     ret = cam_config_get_parm(mCameraId, MM_CAMERA_PARM_VFE_OUTPUT_ENABLE, &mVFEOutputs);
@@ -159,24 +159,24 @@
 										&mHalCamCtrl->mPreviewMemory.buffer_handle[cnt],
 										&mHalCamCtrl->mPreviewMemory.stride[cnt]);
 		if(!err) {
-          ALOGI("%s: dequeue buf hdl =%p", __func__, *mHalCamCtrl->mPreviewMemory.buffer_handle[cnt]);
-                    err = mPreviewWindow->lock_buffer(this->mPreviewWindow,
-                                       mHalCamCtrl->mPreviewMemory.buffer_handle[cnt]);
-                    // lock the buffer using genlock
-                    ALOGI("%s: camera call genlock_lock, hdl=%p", __FUNCTION__, (*mHalCamCtrl->mPreviewMemory.buffer_handle[cnt]));
-                    if (GENLOCK_NO_ERROR != genlock_lock_buffer((native_handle_t *)(*mHalCamCtrl->mPreviewMemory.buffer_handle[cnt]),
-                                                      GENLOCK_WRITE_LOCK, GENLOCK_MAX_TIMEOUT)) {
-                       ALOGI("%s: genlock_lock_buffer(WRITE) failed", __FUNCTION__);
-                       mHalCamCtrl->mPreviewMemory.local_flag[cnt] = BUFFER_UNLOCKED;
-	                //mHalCamCtrl->mPreviewMemoryLock.unlock();
-                       //return -EINVAL;
-                   } else {
-                     ALOGI("%s: genlock_lock_buffer hdl =%p", __FUNCTION__, *mHalCamCtrl->mPreviewMemory.buffer_handle[cnt]);
-                     mHalCamCtrl->mPreviewMemory.local_flag[cnt] = BUFFER_LOCKED;
-                   }
+            ALOGV("%s: dequeue buf hdl =%p", __func__, *mHalCamCtrl->mPreviewMemory.buffer_handle[cnt]);
+            err = mPreviewWindow->lock_buffer(this->mPreviewWindow,
+                        mHalCamCtrl->mPreviewMemory.buffer_handle[cnt]);
+            // lock the buffer using genlock
+            ALOGV("%s: camera call genlock_lock, hdl=%p", __FUNCTION__, (*mHalCamCtrl->mPreviewMemory.buffer_handle[cnt]));
+            if (GENLOCK_NO_ERROR != genlock_lock_buffer((native_handle_t *)(*mHalCamCtrl->mPreviewMemory.buffer_handle[cnt]),
+                    GENLOCK_WRITE_LOCK, GENLOCK_MAX_TIMEOUT)) {
+                ALOGV("%s: genlock_lock_buffer(WRITE) failed", __FUNCTION__);
+                mHalCamCtrl->mPreviewMemory.local_flag[cnt] = BUFFER_UNLOCKED;
+                //mHalCamCtrl->mPreviewMemoryLock.unlock();
+                //return -EINVAL;
+            } else {
+                ALOGV("%s: genlock_lock_buffer hdl =%p", __FUNCTION__, *mHalCamCtrl->mPreviewMemory.buffer_handle[cnt]);
+                mHalCamCtrl->mPreviewMemory.local_flag[cnt] = BUFFER_LOCKED;
+            }
 		} else {
-          mHalCamCtrl->mPreviewMemory.local_flag[cnt] = BUFFER_NOT_OWNED;
-          ALOGI("%s: dequeue_buffer idx = %d err = %d", __func__, cnt, err);
+            mHalCamCtrl->mPreviewMemory.local_flag[cnt] = BUFFER_NOT_OWNED;
+            ALOGV("%s: dequeue_buffer idx = %d err = %d", __func__, cnt, err);
         }
 
 		ALOGV("%s: dequeue buf: %p\n", __func__, mHalCamCtrl->mPreviewMemory.buffer_handle[cnt]);
@@ -187,22 +187,22 @@
             ret = UNKNOWN_ERROR;
 			for(int i = 0; i < cnt; i++) {
                 if (BUFFER_LOCKED == mHalCamCtrl->mPreviewMemory.local_flag[i]) {
-                      ALOGI("%s: camera call genlock_unlock", __FUNCTION__);
-                     if (GENLOCK_FAILURE == genlock_unlock_buffer((native_handle_t *)
+                    ALOGV("%s: camera call genlock_unlock", __FUNCTION__);
+                    if (GENLOCK_FAILURE == genlock_unlock_buffer((native_handle_t *)
                                                   (*(mHalCamCtrl->mPreviewMemory.buffer_handle[i])))) {
                         ALOGE("%s: genlock_unlock_buffer failed: hdl =%p", __FUNCTION__, (*(mHalCamCtrl->mPreviewMemory.buffer_handle[i])) );
                          //mHalCamCtrl->mPreviewMemoryLock.unlock();
                         //return -EINVAL;
-                     } else {
-                       mHalCamCtrl->mPreviewMemory.local_flag[i] = BUFFER_UNLOCKED;
-                     }
+                    } else {
+                        mHalCamCtrl->mPreviewMemory.local_flag[i] = BUFFER_UNLOCKED;
+                    }
                 }
                 if( mHalCamCtrl->mPreviewMemory.local_flag[i] != BUFFER_NOT_OWNED) {
                   err = mPreviewWindow->cancel_buffer(mPreviewWindow,
                                           mHalCamCtrl->mPreviewMemory.buffer_handle[i]);
                 }
                 mHalCamCtrl->mPreviewMemory.local_flag[i] = BUFFER_NOT_OWNED;
-                ALOGI("%s: cancel_buffer: hdl =%p", __func__,  (*mHalCamCtrl->mPreviewMemory.buffer_handle[i]));
+                ALOGV("%s: cancel_buffer: hdl =%p", __func__,  (*mHalCamCtrl->mPreviewMemory.buffer_handle[i]));
 				mHalCamCtrl->mPreviewMemory.buffer_handle[i] = NULL;
 			}
             memset(&mHalCamCtrl->mPreviewMemory, 0, sizeof(mHalCamCtrl->mPreviewMemory));
@@ -226,20 +226,20 @@
 		mHalCamCtrl->mPreviewMemory.camera_memory[cnt] =
 		    mHalCamCtrl->mGetMemory(mHalCamCtrl->mPreviewMemory.private_buffer_handle[cnt]->fd,
 			mHalCamCtrl->mPreviewMemory.private_buffer_handle[cnt]->size, 1, (void *)this);
-		ALOGI("%s: idx = %d, fd = %d, size = %d, offset = %d", __func__,
+		ALOGV("%s: idx = %d, fd = %d, size = %d, offset = %d", __func__,
             cnt, mHalCamCtrl->mPreviewMemory.private_buffer_handle[cnt]->fd,
-      mHalCamCtrl->mPreviewMemory.private_buffer_handle[cnt]->size,
-      mHalCamCtrl->mPreviewMemory.private_buffer_handle[cnt]->offset);
-  }
+        mHalCamCtrl->mPreviewMemory.private_buffer_handle[cnt]->size,
+        mHalCamCtrl->mPreviewMemory.private_buffer_handle[cnt]->offset);
+    }
 
 
-  memset(&mHalCamCtrl->mMetadata, 0, sizeof(mHalCamCtrl->mMetadata));
-  memset(mHalCamCtrl->mFace, 0, sizeof(mHalCamCtrl->mFace));
+    memset(&mHalCamCtrl->mMetadata, 0, sizeof(mHalCamCtrl->mMetadata));
+    memset(mHalCamCtrl->mFace, 0, sizeof(mHalCamCtrl->mFace));
 
     ALOGV(" %s : X ",__FUNCTION__);
 end:
-  //mDisplayLock.unlock();
-  mHalCamCtrl->mPreviewMemoryLock.unlock();
+    //mDisplayLock.unlock();
+    mHalCamCtrl->mPreviewMemoryLock.unlock();
 
     return ret;
 }
@@ -275,7 +275,7 @@
         close(mHalCamCtrl->mPreviewMemory.main_ion_fd[cnt]);
 #endif
             if (BUFFER_LOCKED == mHalCamCtrl->mPreviewMemory.local_flag[cnt]) {
-                ALOGI("%s: camera call genlock_unlock", __FUNCTION__);
+                ALOGV("%s: camera call genlock_unlock", __FUNCTION__);
 	        if (GENLOCK_FAILURE == genlock_unlock_buffer((native_handle_t *)
                                                     (*(mHalCamCtrl->mPreviewMemory.buffer_handle[cnt])))) {
                     ALOGE("%s: genlock_unlock_buffer failed, handle =%p", __FUNCTION__, (*(mHalCamCtrl->mPreviewMemory.buffer_handle[cnt])));
@@ -284,17 +284,17 @@
                     //return -EINVAL;
                 } else {
 
-                    ALOGI("%s: genlock_unlock_buffer, handle =%p", __FUNCTION__, (*(mHalCamCtrl->mPreviewMemory.buffer_handle[cnt])));
+                    ALOGV("%s: genlock_unlock_buffer, handle =%p", __FUNCTION__, (*(mHalCamCtrl->mPreviewMemory.buffer_handle[cnt])));
                     mHalCamCtrl->mPreviewMemory.local_flag[cnt] = BUFFER_UNLOCKED;
                 }
             }
              if( mHalCamCtrl->mPreviewMemory.local_flag[cnt] != BUFFER_NOT_OWNED) {
                err = mPreviewWindow->cancel_buffer(mPreviewWindow, mHalCamCtrl->mPreviewMemory.buffer_handle[cnt]);
-               ALOGI("%s: cancel_buffer: hdl =%p", __func__,  (*mHalCamCtrl->mPreviewMemory.buffer_handle[cnt]));
+               ALOGV("%s: cancel_buffer: hdl =%p", __func__,  (*mHalCamCtrl->mPreviewMemory.buffer_handle[cnt]));
              }
              mHalCamCtrl->mPreviewMemory.local_flag[cnt] = BUFFER_NOT_OWNED;
 
-		ALOGI(" put buffer %d successfully", cnt);
+		ALOGV(" put buffer %d successfully", cnt);
 	}
 
     if (mDisplayBuf.preview.buf.mp != NULL) {
@@ -341,7 +341,7 @@
   frame_len = dim.picture_frame_offset.frame_len;
   y_off = dim.picture_frame_offset.mp[0].offset;
   cbcr_off = dim.picture_frame_offset.mp[1].offset;
-  ALOGI("%s: main image: rotation = %d, yoff = %d, cbcroff = %d, size = %d, width = %d, height = %d",
+  ALOGV("%s: main image: rotation = %d, yoff = %d, cbcroff = %d, size = %d, width = %d, height = %d",
        __func__, dim.rotation, y_off, cbcr_off, frame_len,
        dim.display_width, dim.display_height);
   if (mHalCamCtrl->initHeapMem(&mHalCamCtrl->mNoDispPreviewMemory,
@@ -355,7 +355,7 @@
   memset(&mHalCamCtrl->mMetadata, 0, sizeof(mHalCamCtrl->mMetadata));
   memset(mHalCamCtrl->mFace, 0, sizeof(mHalCamCtrl->mFace));
 
-  ALOGI(" %s : X ",__FUNCTION__);
+  ALOGV(" %s : X ",__FUNCTION__);
 end:
   //mDisplayLock.unlock();
   mHalCamCtrl->mPreviewMemoryLock.unlock();
@@ -420,7 +420,7 @@
                 mHalCamCtrl->mCallbackLock.unlock();
 
                 if (pcb && (mHalCamCtrl->mMsgEnabled & CAMERA_MSG_PREVIEW_METADATA)){
-                    ALOGI("%s: Face detection RIO callback", __func__);
+                    ALOGV("%s: Face detection RIO callback", __func__);
                     pcb(CAMERA_MSG_PREVIEW_METADATA, data, 0, &mHalCamCtrl->mMetadata, mHalCamCtrl->mCallbackCookie);
                 }
             }
@@ -511,7 +511,7 @@
                  mHalCamCtrl->mCallbackLock.unlock();
 
                  if (pcb && (mHalCamCtrl->mMsgEnabled & CAMERA_MSG_PREVIEW_METADATA)){
-                     ALOGI("%s: Face detection RIO callback with %d faces detected (score=%d)", __func__, mNumFDRcvd, mHalCamCtrl->mFace[idx].score);
+                     ALOGV("%s: Face detection RIO callback with %d faces detected (score=%d)", __func__, mNumFDRcvd, mHalCamCtrl->mFace[idx].score);
                      pcb(CAMERA_MSG_PREVIEW_METADATA, data, 0, &mHalCamCtrl->mMetadata, mHalCamCtrl->mCallbackCookie);
                  }
              }
@@ -600,7 +600,7 @@
       mDisplayStreamBuf.frame[i].ion_dev_fd = mHalCamCtrl->mPreviewMemory.main_ion_fd[i];
       mDisplayStreamBuf.frame[i].fd_data = mHalCamCtrl->mPreviewMemory.ion_info_fd[i];
 
-    ALOGI("%s: idx = %d, fd = %d, size = %d, cbcr_offset = %d, y_offset = %d, "
+    ALOGV("%s: idx = %d, fd = %d, size = %d, cbcr_offset = %d, y_offset = %d, "
       "offset = %d, vaddr = 0x%x", __func__, i, mDisplayStreamBuf.frame[i].fd,
       mHalCamCtrl->mPreviewMemory.private_buffer_handle[i]->size,
       mDisplayStreamBuf.frame[i].cbcr_off, mDisplayStreamBuf.frame[i].y_off,
@@ -652,7 +652,7 @@
     }
 
     for (int j = 0; j < num_planes; j++)
-      ALOGI("Planes: %d length: %d userptr: %lu offset: %d\n", j,
+      ALOGV("Planes: %d length: %d userptr: %lu offset: %d\n", j,
         mDisplayBuf.preview.buf.mp[i].planes[j].length,
         mDisplayBuf.preview.buf.mp[i].planes[j].m.userptr,
         mDisplayBuf.preview.buf.mp[i].planes[j].reserved[0]);
@@ -744,7 +744,7 @@
       mDisplayStreamBuf.frame[i].ion_dev_fd = mHalCamCtrl->mNoDispPreviewMemory.main_ion_fd[i];
       mDisplayStreamBuf.frame[i].fd_data = mHalCamCtrl->mNoDispPreviewMemory.ion_info_fd[i];
 
-    ALOGI("%s: idx = %d, fd = %d, size = %d, cbcr_offset = %d, y_offset = %d, "
+    ALOGV("%s: idx = %d, fd = %d, size = %d, cbcr_offset = %d, y_offset = %d, "
       "vaddr = 0x%x", __func__, i, mDisplayStreamBuf.frame[i].fd,
       frame_len,
       mDisplayStreamBuf.frame[i].cbcr_off, mDisplayStreamBuf.frame[i].y_off,
@@ -791,7 +791,7 @@
     }
 
     for (int j = 0; j < num_planes; j++)
-      ALOGI("Planes: %d length: %d userptr: %lu offset: %d\n", j,
+      ALOGV("Planes: %d length: %d userptr: %lu offset: %d\n", j,
         mDisplayBuf.preview.buf.mp[i].planes[j].length,
         mDisplayBuf.preview.buf.mp[i].planes[j].m.userptr,
         mDisplayBuf.preview.buf.mp[i].planes[j].reserved[0]);
@@ -810,7 +810,7 @@
     return NO_ERROR;
   }
 
-    ALOGI("%s: out of memory clean up", __func__);
+    ALOGV("%s: out of memory clean up", __func__);
   /* release the allocated memory */
 
   ALOGV("%s: X - BAD_VALUE ", __func__);
@@ -820,6 +820,7 @@
 
 void QCameraStream_preview::dumpFrameToFile(struct msm_frame* newFrame)
 {
+#if 0
   int32_t enabled = 0;
   int frm_num;
   uint32_t  skip_mode;
@@ -846,11 +847,12 @@
     file_fd = open(buf, O_RDWR | O_CREAT, 0777);
 
     rc = write(file_fd, (const void *)addr, len);
-    ALOGI("%s: file='%s', vaddr_old=0x%x, addr_map = 0x%p, len = %d, rc = %d",
+    ALOGV("%s: file='%s', vaddr_old=0x%x, addr_map = 0x%p, len = %d, rc = %d",
           __func__, buf, (uint32_t)newFrame->buffer, (void *)addr, len, rc);
     close(file_fd);
-    ALOGI("%s: dump %s, rc = %d, len = %d", __func__, buf, rc, len);
+    ALOGV("%s: dump %s, rc = %d, len = %d", __func__, buf, rc, len);
   }
+#endif
 }
 
 status_t QCameraStream_preview::processPreviewFrameWithDisplay(
@@ -865,7 +867,7 @@
 
   Mutex::Autolock lock(mStopCallbackLock);
   if(!mActive) {
-    ALOGI("Preview Stopped. Returning callback");
+    ALOGV("Preview Stopped. Returning callback");
     return NO_ERROR;
   }
 
@@ -902,12 +904,12 @@
   mHalCamCtrl->mPreviewMemoryLock.lock();
   mNotifyBuffer[frame->def.idx] = *frame;
 
-  ALOGI("Enqueue buf handle %p\n",
+  ALOGV("Enqueue buf handle %p\n",
   mHalCamCtrl->mPreviewMemory.buffer_handle[frame->def.idx]);
   ALOGV("%s: camera call genlock_unlock", __FUNCTION__);
 
     if (BUFFER_LOCKED == mHalCamCtrl->mPreviewMemory.local_flag[frame->def.idx]) {
-      ALOGI("%s: genlock_unlock_buffer hdl =%p", __FUNCTION__, (*mHalCamCtrl->mPreviewMemory.buffer_handle[frame->def.idx]));
+      ALOGV("%s: genlock_unlock_buffer hdl =%p", __FUNCTION__, (*mHalCamCtrl->mPreviewMemory.buffer_handle[frame->def.idx]));
         if (GENLOCK_FAILURE == genlock_unlock_buffer((native_handle_t*)
                 (*mHalCamCtrl->mPreviewMemory.buffer_handle[frame->def.idx]))) {
             ALOGE("%s: genlock_unlock_buffer failed", __FUNCTION__);
@@ -971,7 +973,7 @@
   if(err != 0) {
     ALOGE("%s: enqueue_buffer failed, err = %d", __func__, err);
   } else {
-   ALOGI("%s: enqueue_buffer hdl=%p", __func__, *mHalCamCtrl->mPreviewMemory.buffer_handle[frame->def.idx]);
+   ALOGV("%s: enqueue_buffer hdl=%p", __func__, *mHalCamCtrl->mPreviewMemory.buffer_handle[frame->def.idx]);
     mHalCamCtrl->mPreviewMemory.local_flag[frame->def.idx] = BUFFER_NOT_OWNED;
   }
   buffer_handle_t *buffer_handle = NULL;
@@ -980,7 +982,7 @@
               &buffer_handle, &tmp_stride);
   if (err == NO_ERROR && buffer_handle != NULL) {
 
-    ALOGI("%s: dequed buf hdl =%p", __func__, *buffer_handle);
+    ALOGV("%s: dequed buf hdl =%p", __func__, *buffer_handle);
     for(i = 0; i < mHalCamCtrl->mPreviewMemory.buffer_count; i++) {
         if(mHalCamCtrl->mPreviewMemory.buffer_handle[i] == buffer_handle) {
           mHalCamCtrl->mPreviewMemory.local_flag[i] = BUFFER_UNLOCKED;
@@ -989,7 +991,7 @@
     }
      if (i < mHalCamCtrl->mPreviewMemory.buffer_count ) {
       err = this->mPreviewWindow->lock_buffer(this->mPreviewWindow, buffer_handle);
-      ALOGI("%s: camera call genlock_lock: hdl =%p", __FUNCTION__, *buffer_handle);
+      ALOGV("%s: camera call genlock_lock: hdl =%p", __FUNCTION__, *buffer_handle);
       if (GENLOCK_FAILURE == genlock_lock_buffer((native_handle_t*)(*buffer_handle), GENLOCK_WRITE_LOCK,
                                                  GENLOCK_MAX_TIMEOUT)) {
             ALOGE("%s: genlock_lock_buffer(WRITE) failed", __FUNCTION__);
@@ -1014,16 +1016,16 @@
   mHalCamCtrl->mCallbackLock.lock();
   camera_data_callback pcb = mHalCamCtrl->mDataCb;
   mHalCamCtrl->mCallbackLock.unlock();
-  ALOGI("Message enabled = 0x%x", mHalCamCtrl->mMsgEnabled);
+  ALOGV("Message enabled = 0x%x", mHalCamCtrl->mMsgEnabled);
 
   camera_memory_t *previewMem = NULL;
 
   if (pcb != NULL) {
-       ALOGI("%s: mMsgEnabled =0x%x, preview format =%d", __func__,
+       ALOGV("%s: mMsgEnabled =0x%x, preview format =%d", __func__,
             mHalCamCtrl->mMsgEnabled, mHalCamCtrl->mPreviewFormat);
       //Sending preview callback if corresponding Msgs are enabled
       if(mHalCamCtrl->mMsgEnabled & CAMERA_MSG_PREVIEW_FRAME) {
-          ALOGI("%s: PCB callback enabled", __func__);
+          ALOGV("%s: PCB callback enabled", __func__);
           msgType |=  CAMERA_MSG_PREVIEW_FRAME;
           int previewBufSize;
           /* The preview buffer size sent back in the callback should be (width*height*bytes_per_pixel)
@@ -1065,7 +1067,7 @@
       }
 	  ALOGV("end of cb");
   } else {
-    ALOGI("%s PCB is not enabled", __func__);
+    ALOGV("%s PCB is not enabled", __func__);
   }
   if(rcb != NULL && mVFEOutputs == 1)
   {
@@ -1130,7 +1132,7 @@
 
   Mutex::Autolock lock(mStopCallbackLock);
   if(!mActive) {
-    ALOGI("Preview Stopped. Returning callback");
+    ALOGV("Preview Stopped. Returning callback");
     return NO_ERROR;
   }
   if(mHalCamCtrl==NULL) {
@@ -1156,7 +1158,7 @@
   mHalCamCtrl->mCallbackLock.lock();
   camera_data_callback pcb = mHalCamCtrl->mDataCb;
   mHalCamCtrl->mCallbackLock.unlock();
-  ALOGI("Message enabled = 0x%x", mHalCamCtrl->mMsgEnabled);
+  ALOGV("Message enabled = 0x%x", mHalCamCtrl->mMsgEnabled);
 
   camera_memory_t *previewMem = NULL;
   int previewWidth, previewHeight;
@@ -1291,7 +1293,7 @@
                                      preview_notify_cb,
                                      MM_CAMERA_REG_BUF_CB_INFINITE,
                                      0,this);
-  ALOGI("Debug : %s : cam_evt_register_buf_notify",__func__);
+  ALOGV("Debug : %s : cam_evt_register_buf_notify",__func__);
   buffer_handle_t *buffer_handle = NULL;
   int tmp_stride = 0;
   mInit = true;
@@ -1322,12 +1324,12 @@
             return BAD_VALUE;
         }
     }
-    ALOGI("Debug : %s : initDisplayBuffers",__func__);
+    ALOGV("Debug : %s : initDisplayBuffers",__func__);
 
     ret = cam_config_prepare_buf(mCameraId, &mDisplayBuf);
-    ALOGI("Debug : %s : cam_config_prepare_buf",__func__);
+    ALOGV("Debug : %s : cam_config_prepare_buf",__func__);
     if(ret != MM_CAMERA_OK) {
-        ALOGI("%s:reg preview buf err=%d\n", __func__, ret);
+        ALOGV("%s:reg preview buf err=%d\n", __func__, ret);
         ret = BAD_VALUE;
         goto error;
     }else {
@@ -1341,11 +1343,11 @@
        ZSL we skip setting Mode here */
 
     if (!(myMode & CAMERA_ZSL_MODE)) {
-        ALOGI("Setting OP MODE to MM_CAMERA_OP_MODE_VIDEO");
+        ALOGV("Setting OP MODE to MM_CAMERA_OP_MODE_VIDEO");
         mm_camera_op_mode_type_t op_mode=MM_CAMERA_OP_MODE_VIDEO;
         ret = cam_config_set_parm (mCameraId, MM_CAMERA_PARM_OP_MODE,
                                         &op_mode);
-        ALOGI("OP Mode Set");
+        ALOGV("OP Mode Set");
 
         if(MM_CAMERA_OK != ret) {
           ALOGE("%s: X :set mode MM_CAMERA_OP_MODE_VIDEO err=%d\n", __func__, ret);
@@ -1353,7 +1355,7 @@
           goto error;
         }
     }else {
-        ALOGI("Setting OP MODE to MM_CAMERA_OP_MODE_ZSL");
+        ALOGV("Setting OP MODE to MM_CAMERA_OP_MODE_ZSL");
         mm_camera_op_mode_type_t op_mode=MM_CAMERA_OP_MODE_ZSL;
         ret = cam_config_set_parm (mCameraId, MM_CAMERA_PARM_OP_MODE,
                                         &op_mode);
@@ -1365,7 +1367,7 @@
      }
 
     /* call mm_camera action start(...)  */
-    ALOGI("Starting Preview/Video Stream. ");
+    ALOGV("Starting Preview/Video Stream. ");
     mFirstFrameRcvd = false;
     ret = cam_ops_action(mCameraId, true, MM_CAMERA_OPS_PREVIEW, 0);
 
@@ -1375,7 +1377,7 @@
       goto error;
     }
 
-    ALOGI("Debug : %s : Preview streaming Started",__func__);
+    ALOGV("Debug : %s : Preview streaming Started",__func__);
     ret = NO_ERROR;
 
     mActive =  true;
@@ -1403,7 +1405,7 @@
     mActive =  false;
     /* unregister the notify fn from the mmmm_camera_t object*/
 
-    ALOGI("%s: Stop the thread \n", __func__);
+    ALOGV("%s: Stop the thread \n", __func__);
     /* call stop() in parent class to stop the monitor thread*/
     ret = cam_ops_action(mCameraId, false, MM_CAMERA_OPS_PREVIEW, 0);
     if(MM_CAMERA_OK != ret) {
@@ -1416,7 +1418,7 @@
     }
 
     /* In case of a clean stop, we need to clean all buffers*/
-    ALOGI("Debug : %s : Buffer Unprepared",__func__);
+    ALOGV("Debug : %s : Buffer Unprepared",__func__);
     /*free camera_memory handles and return buffer back to surface*/
     if (! mHalCamCtrl->isNoDisplayMode() ) {
       putBufferToSurface();
@@ -1446,7 +1448,7 @@
     }
 
     ret= QCameraStream::deinitChannel(mCameraId, MM_CAMERA_CH_PREVIEW);
-    ALOGI("Debug : %s : De init Channel",__func__);
+    ALOGV("Debug : %s : De init Channel",__func__);
     if(ret != MM_CAMERA_OK) {
       ALOGE("%s:Deinit preview channel failed=%d\n", __func__, ret);
       //ret = BAD_VALUE;
diff --git a/QCameraHWI_Record.cpp b/QCameraHWI_Record.cpp
index 736324c..228afc3 100644
--- a/QCameraHWI_Record.cpp
+++ b/QCameraHWI_Record.cpp
@@ -26,7 +26,6 @@
 #include <sys/mman.h>
 
 #include "QCameraStream.h"
-#include "QCamera_dbg.h"
 
 #define LIKELY(exp)   __builtin_expect(!!(exp), 1)
 #define UNLIKELY(exp) __builtin_expect(!!(exp), 0)
@@ -190,7 +189,7 @@
     ret = BAD_VALUE;
     goto error;
   }else{
-    ALOGI("%s : Video streaming Started",__func__);
+    ALOGV("%s : Video streaming Started",__func__);
     ret = NO_ERROR;
   }
   mActive = true;
@@ -340,7 +339,7 @@
 	nsecs_t timeStamp = nsecs_t(frame->video.video.frame->ts.tv_sec)*1000000000LL + \
                       frame->video.video.frame->ts.tv_nsec;
 
-  ALOGI("Send Video frame to services/encoder TimeStamp : %lld",timeStamp);
+  ALOGV("Send Video frame to services/encoder TimeStamp : %lld",timeStamp);
   mRecordedFrames[frame->video.video.idx] = *frame;
 
 #ifdef USE_ION
@@ -411,7 +410,7 @@
 
   buf_cnt = VIDEO_BUFFER_COUNT;
   if(mHalCamCtrl->isLowPowerCamcorder()) {
-    ALOGI("%s: lower power camcorder selected", __func__);
+    ALOGV("%s: lower power camcorder selected", __func__);
     buf_cnt = VIDEO_BUFFER_COUNT_LOW_POWER_CAMCORDER;
   }
     recordframes = new msm_frame[buf_cnt];
@@ -484,7 +483,7 @@
         CAM_SOCK_MSG_TYPE_FD_MAPPING))
         ALOGE("%s: sending mapping data Msg Failed", __func__);
 
-      ALOGI("initRecord :  record heap , video buffers  buffer=%lu fd=%d y_off=%d cbcr_off=%d\n",
+      ALOGV("initRecord :  record heap , video buffers  buffer=%lu fd=%d y_off=%d cbcr_off=%d\n",
 		    (unsigned long)recordframes[cnt].buffer, recordframes[cnt].fd, recordframes[cnt].y_off,
 		    recordframes[cnt].cbcr_off);
 	    //mNumRecordFrames++;
@@ -561,7 +560,7 @@
   nsecs_t diff = now - mLastFpsTime;
   if (diff > ms2ns(250)) {
     mFps =  ((mFrameCount - mLastFrameCount) * float(s2ns(1))) / diff;
-    ALOGI("Video Frames Per Second: %.4f", mFps);
+    ALOGV("Video Frames Per Second: %.4f", mFps);
     mLastFpsTime = now;
     mLastFrameCount = mFrameCount;
   }
diff --git a/QCameraHWI_Still.cpp b/QCameraHWI_Still.cpp
old mode 100755
new mode 100644
index 3da606f..81692fd
--- a/QCameraHWI_Still.cpp
+++ b/QCameraHWI_Still.cpp
@@ -28,7 +28,6 @@
 #include <math.h>
 #include "QCameraHAL.h"
 #include "QCameraHWI.h"
-#include "QCamera_dbg.h"
 
 #define THUMBNAIL_DEFAULT_WIDTH 512
 #define THUMBNAIL_DEFAULT_HEIGHT 384
@@ -189,10 +188,10 @@
 
     if (pme != NULL) {
        pme->receiveCompleteJpegPicture(event);
-       ALOGI(" Completed issuing JPEG callback");
+       ALOGV(" Completed issuing JPEG callback");
        /* deinit only if we are done taking requested number of snapshots */
        if (pme->getSnapshotState() == SNAPSHOT_STATE_JPEG_COMPLETE_ENCODE_DONE) {
-           ALOGI(" About to issue deinit callback");
+           ALOGV(" About to issue deinit callback");
        /* If it's ZSL Mode, we don't deinit now. We'll stop the polling thread and
           deinit the channel/buffers only when we change the mode from zsl to
           non-zsl. */
@@ -248,6 +247,7 @@
 void QCameraStream_Snapshot::jpegErrorHandler(jpeg_event_t event)
 {
     ALOGV("%s: E", __func__);
+    camera_memory_t *data = mHalCamCtrl->mGetMemory(-1, 1, 1, NULL);
     mStopCallbackLock.lock( );
     if(mCurrentFrameEncoded) {
         free(mCurrentFrameEncoded);
@@ -255,14 +255,15 @@
     }
     setSnapshotState(SNAPSHOT_STATE_ERROR);
     if (!mSnapshotQueue.isEmpty()) {
-        ALOGI("%s: JPEG Queue not empty. flush the queue in "
+        ALOGV("%s: JPEG Queue not empty. flush the queue in "
              "error case.", __func__);
         mSnapshotQueue.flush();
     }
     mStopCallbackLock.unlock( );
     if (NULL != mHalCamCtrl->mDataCb)
         mHalCamCtrl->mDataCb (CAMERA_MSG_COMPRESSED_IMAGE,
-                              NULL, 0, NULL,mHalCamCtrl->mCallbackCookie);
+                              data, 0, NULL,mHalCamCtrl->mCallbackCookie);
+    if(NULL != data) data->release(data);
     ALOGV("%s: X", __func__);
 }
 
@@ -286,7 +287,7 @@
     }
 
     if(mCurrentFrameEncoded!=NULL /*&& !isLiveSnapshot()*/){
-        ALOGI("<DEBUG>: Calling buf done for snapshot buffer");
+        ALOGV("<DEBUG>: Calling buf done for snapshot buffer");
         cam_evt_buf_done(mCameraId, mCurrentFrameEncoded);
     }
     mHalCamCtrl->dumpFrameToFile(mHalCamCtrl->mJpegMemory.camera_memory[0]->data, mJpegOffset, (char *)"debug", (char *)"jpg", 0);
@@ -311,7 +312,7 @@
     /* Before leaving check the jpeg queue. If it's not empty give the available
        frame for encoding*/
     if (!mSnapshotQueue.isEmpty()) {
-        ALOGI("%s: JPEG Queue not empty. Dequeue and encode.", __func__);
+        ALOGV("%s: JPEG Queue not empty. Dequeue and encode.", __func__);
         mm_camera_ch_data_buf_t* buf =
             (mm_camera_ch_data_buf_t *)mSnapshotQueue.dequeue();
         //encodeDisplayAndSave(buf, 1);
@@ -319,20 +320,20 @@
           fail_cb_flag = true;
         }
     }  else if (mNumOfSnapshot == mNumOfRecievedJPEG )  { /* finished */
-      ALOGD("nusnap %d, mNumjpeg %d", mNumOfSnapshot, mNumOfRecievedJPEG);
-      ALOGD("%s: Before omxJpegFinish", __func__);
+      ALOGV("nusnap %d, mNumjpeg %d", mNumOfSnapshot, mNumOfRecievedJPEG);
+      ALOGV("%s: Before omxJpegFinish", __func__);
       omxJpegFinish();
-      ALOGD("%s: After omxJpegFinish", __func__);
+      ALOGV("%s: After omxJpegFinish", __func__);
         /* getRemainingSnapshots call will give us number of snapshots still
            remaining after flushing current zsl buffer once*/
-      ALOGD("%s: Complete JPEG Encoding Done!", __func__);
+      ALOGV("%s: Complete JPEG Encoding Done!", __func__);
       setSnapshotState(SNAPSHOT_STATE_JPEG_COMPLETE_ENCODE_DONE);
       mBurstModeFlag = false;
       mSnapshotQueue.flush();
       mNumOfRecievedJPEG = 0;
       /* in case of zsl, we need to reset some of the zsl attributes */
       if (isZSLMode()){
-          ALOGD("%s: Resetting the ZSL attributes", __func__);
+          ALOGV("%s: Resetting the ZSL attributes", __func__);
           setZSLChannelAttribute();
       }
       if (!isZSLMode() && !isLiveSnapshot()){
@@ -341,7 +342,7 @@
       }
 
     } else {
-        ALOGD("%s: mNumOfRecievedJPEG(%d), mNumOfSnapshot(%d)", __func__, mNumOfRecievedJPEG, mNumOfSnapshot);
+        ALOGV("%s: mNumOfRecievedJPEG(%d), mNumOfSnapshot(%d)", __func__, mNumOfRecievedJPEG, mNumOfSnapshot);
     }
     if(fail_cb_flag && mHalCamCtrl->mDataCb &&
         (mHalCamCtrl->mMsgEnabled & CAMERA_MSG_COMPRESSED_IMAGE)) {
@@ -397,14 +398,14 @@
     status_t ret = NO_ERROR;
     ALOGV("%s: E", __func__);
 
-    ALOGI("%s:Passed picture size: %d X %d", __func__,
+    ALOGV("%s:Passed picture size: %d X %d", __func__,
          dim->picture_width, dim->picture_height);
-    ALOGI("%s:Passed postview size: %d X %d", __func__,
+    ALOGV("%s:Passed postview size: %d X %d", __func__,
          dim->ui_thumbnail_width, dim->ui_thumbnail_height);
 
     /* First check if the picture resolution is the same, if not, change it*/
     mHalCamCtrl->getPictureSize(&mPictureWidth, &mPictureHeight);
-    ALOGD("%s: Picture size received: %d x %d", __func__,
+    ALOGV("%s: Picture size received: %d x %d", __func__,
          mPictureWidth, mPictureHeight);
 
     mPostviewWidth = mHalCamCtrl->mParameters.getInt(QCameraParameters::KEY_JPEG_THUMBNAIL_WIDTH);
@@ -420,7 +421,7 @@
          mDropThumbnail = true;
     }
 
-    ALOGD("%s: Postview size received: %d x %d", __func__,
+    ALOGV("%s: Postview size received: %d x %d", __func__,
          mPostviewWidth, mPostviewHeight);
 
     matching = (mPictureWidth == dim->picture_width) &&
@@ -457,7 +458,7 @@
     }
     #endif
     if (!matching) {
-         ALOGD("%s: Image Sizes before set parm call: main: %dx%d thumbnail: %dx%d",
+         ALOGV("%s: Image Sizes before set parm call: main: %dx%d thumbnail: %dx%d",
               __func__,
               dim->picture_width, dim->picture_height,
               dim->ui_thumbnail_width, dim->ui_thumbnail_height);
@@ -478,8 +479,8 @@
     mPictureFormat= dim->main_img_format;
     mThumbnailFormat = dim->thumb_format;
 
-    ALOGD("%s: Image Format: %d", __func__, dim->main_img_format);
-    ALOGI("%s: Image Sizes: main: %dx%d thumbnail: %dx%d", __func__,
+    ALOGV("%s: Image Format: %d", __func__, dim->main_img_format);
+    ALOGV("%s: Image Sizes: main: %dx%d thumbnail: %dx%d", __func__,
          dim->picture_width, dim->picture_height,
          dim->ui_thumbnail_width, dim->ui_thumbnail_height);
 end:
@@ -503,20 +504,20 @@
 
     /* Initialize stream - set format, acquire channel */
     /*TBD: Currently we only support single raw capture*/
-    ALOGI("num_of_snapshots = %d",num_of_snapshots);
+    ALOGV("num_of_snapshots = %d",num_of_snapshots);
     if (num_of_snapshots == 1) {
         raw_stream_type = MM_CAMERA_RAW_STREAMING_CAPTURE_SINGLE;
     }
 
     /* Set channel attribute */
-    ALOGD("%s: Set Raw Snapshot Channel attribute", __func__);
+    ALOGV("%s: Set Raw Snapshot Channel attribute", __func__);
     memset(&ch_attr, 0, sizeof(ch_attr));
     ch_attr.type = MM_CAMERA_CH_ATTR_RAW_STREAMING_TYPE;
     ch_attr.raw_streaming_mode = raw_stream_type;
 
     if( NO_ERROR !=
         cam_ops_ch_set_attr(mCameraId, MM_CAMERA_CH_RAW, &ch_attr)) {
-        ALOGD("%s: Failure setting Raw channel attribute.", __func__);
+        ALOGV("%s: Failure setting Raw channel attribute.", __func__);
         ret = FAILED_TRANSACTION;
         goto end;
     }
@@ -536,12 +537,12 @@
     fmt.def.dim.height = dim->raw_picture_height;
 
 
-    ALOGI("%s: Raw snapshot channel fmt: %d", __func__,
+    ALOGV("%s: Raw snapshot channel fmt: %d", __func__,
          fmt.def.fmt);
-    ALOGI("%s: Raw snapshot resolution: %dX%d", __func__,
+    ALOGV("%s: Raw snapshot resolution: %dX%d", __func__,
          dim->raw_picture_width, dim->raw_picture_height);
 
-    ALOGD("%s: Set Raw Snapshot channel image format", __func__);
+    ALOGV("%s: Set Raw Snapshot channel image format", __func__);
     ret = cam_config_set_parm(mCameraId, MM_CAMERA_PARM_CH_IMAGE_FMT, &fmt);
     if (NO_ERROR != ret) {
         ALOGE("%s: Set Raw Snapshot Channel format err=%d\n", __func__, ret);
@@ -570,12 +571,12 @@
     ch_attr.buffering_frame.look_back = mHalCamCtrl->getZSLBackLookCount();
     ch_attr.buffering_frame.water_mark = mHalCamCtrl->getZSLQueueDepth();
     ch_attr.buffering_frame.interval = mHalCamCtrl->getZSLBurstInterval( );
-    ALOGI("%s: ZSL queue_depth = %d, back_look_count = %d", __func__,
+    ALOGV("%s: ZSL queue_depth = %d, back_look_count = %d", __func__,
          ch_attr.buffering_frame.water_mark,
          ch_attr.buffering_frame.look_back);
     if( NO_ERROR !=
         cam_ops_ch_set_attr(mCameraId, MM_CAMERA_CH_SNAPSHOT, &ch_attr)) {
-        ALOGD("%s: Failure setting ZSL channel attribute.", __func__);
+        ALOGV("%s: Failure setting ZSL channel attribute.", __func__);
         ret = FAILED_TRANSACTION;
         goto end;
     }
@@ -610,13 +611,13 @@
     fmt.snapshot.thumbnail.dim.width = dim->ui_thumbnail_width;
     fmt.snapshot.thumbnail.dim.height = dim->ui_thumbnail_height;
 
-    ALOGI("%s: Snapshot channel fmt = main: %d thumbnail: %d", __func__,
+    ALOGV("%s: Snapshot channel fmt = main: %d thumbnail: %d", __func__,
          dim->main_img_format, dim->thumb_format);
-    ALOGI("%s: Snapshot channel resolution = main: %dX%d  thumbnail: %dX%d",
+    ALOGV("%s: Snapshot channel resolution = main: %dX%d  thumbnail: %dX%d",
          __func__, dim->picture_width, dim->picture_height,
          dim->ui_thumbnail_width, dim->ui_thumbnail_height);
 
-    ALOGD("%s: Set Snapshot channel image format", __func__);
+    ALOGV("%s: Set Snapshot channel image format", __func__);
     ret = cam_config_set_parm(mCameraId, MM_CAMERA_PARM_CH_IMAGE_FMT, &fmt);
     if (NO_ERROR != ret) {
         ALOGE("%s: Set Snapshot Channel format err=%d\n", __func__, ret);
@@ -647,7 +648,7 @@
     }
 
     if (getSnapshotState() >= SNAPSHOT_STATE_CH_ACQUIRED) {
-        ALOGD("%s: Release snapshot channel", __func__);
+        ALOGV("%s: Release snapshot channel", __func__);
         cam_ops_ch_release(mCameraId, ch_type);
     }
 
@@ -713,7 +714,7 @@
 
     ret = cam_config_prepare_buf(mCameraId, &reg_buf);
     if(ret != NO_ERROR) {
-        ALOGI("%s:reg snapshot buf err=%d\n", __func__, ret);
+        ALOGV("%s:reg snapshot buf err=%d\n", __func__, ret);
         ret = FAILED_TRANSACTION;
         mHalCamCtrl->releaseHeapMem(&mHalCamCtrl->mRawMemory);
         goto end;
@@ -743,7 +744,7 @@
 
     /* deinit buffers only if we have already allocated */
     if (err >= SNAPSHOT_STATE_BUF_INITIALIZED || err == SNAPSHOT_STATE_ERROR){
-        ALOGI("%s: Unpreparing Snapshot Buffer", __func__);
+        ALOGV("%s: Unpreparing Snapshot Buffer", __func__);
         ret = cam_config_unprepare_buf(mCameraId, MM_CAMERA_CH_RAW);
         if(ret != NO_ERROR) {
             ALOGE("%s:Unreg Raw snapshot buf err=%d\n", __func__, ret);
@@ -780,7 +781,7 @@
         goto end;
     }
 
-    ALOGI("%s: Mode: %d Num_of_buf: %d ImageSizes: main: %dx%d thumb: %dx%d",
+    ALOGV("%s: Mode: %d Num_of_buf: %d ImageSizes: main: %dx%d thumb: %dx%d",
          __func__, myMode, num_of_buf,
          dim->picture_width, dim->picture_height,
          dim->ui_thumbnail_width, dim->ui_thumbnail_height);
@@ -825,7 +826,7 @@
     frame_len = dim->picture_frame_offset.frame_len;
     y_off = dim->picture_frame_offset.mp[0].offset;
     cbcr_off = dim->picture_frame_offset.mp[1].offset;
-    ALOGI("%s: main image: rotation = %d, yoff = %d, cbcroff = %d, size = %d, width = %d, height = %d",
+    ALOGV("%s: main image: rotation = %d, yoff = %d, cbcroff = %d, size = %d, width = %d, height = %d",
          __func__, dim->rotation, y_off, cbcr_off, frame_len, dim->picture_width, dim->picture_height);
     if (mHalCamCtrl->initHeapMem (&mHalCamCtrl->mJpegMemory, 1, frame_len, 0, cbcr_off,
                                   MSM_PMEM_MAX, NULL, NULL, num_planes, planes) < 0) {
@@ -848,7 +849,7 @@
         if (!isFullSizeLiveshot()) {
     	    y_off = dim->thumb_frame_offset.mp[0].offset;
                 cbcr_off = dim->thumb_frame_offset.mp[1].offset;
-    	    ALOGI("%s: thumbnail: rotation = %d, yoff = %d, cbcroff = %d, size = %d, width = %d, height = %d",
+    	    ALOGV("%s: thumbnail: rotation = %d, yoff = %d, cbcroff = %d, size = %d, width = %d, height = %d",
     		__func__, dim->rotation, y_off, cbcr_off, frame_len,
     		dim->thumbnail_width, dim->thumbnail_height);
 
@@ -909,7 +910,7 @@
     if (err >= SNAPSHOT_STATE_BUF_INITIALIZED || err == SNAPSHOT_STATE_ERROR){
 
         if(!isLiveSnapshot()) {
-            ALOGI("%s: Unpreparing Snapshot Buffer", __func__);
+            ALOGV("%s: Unpreparing Snapshot Buffer", __func__);
             ret = cam_config_unprepare_buf(mCameraId, MM_CAMERA_CH_SNAPSHOT);
             if(ret != NO_ERROR) {
                 ALOGE("%s:unreg snapshot buf err=%d\n", __func__, ret);
@@ -938,7 +939,7 @@
     ALOGV("%s: E", __func__);
 
     if( getSnapshotState() == SNAPSHOT_STATE_UNINIT) {
-        ALOGD("%s: Already deinit'd!", __func__);
+        ALOGV("%s: Already deinit'd!", __func__);
         return;
     }
 
@@ -1038,7 +1039,7 @@
     if (isFullSizeLiveshot())
       goto end;
 
-    ALOGD("%s: Get current dimension", __func__);
+    ALOGV("%s: Get current dimension", __func__);
     /* Query mm_camera to get current dimension */
     memset(&dim, 0, sizeof(cam_ctrl_dimension_t));
     ret = cam_config_get_parm(mCameraId,
@@ -1050,7 +1051,7 @@
     }
 
     /* Set camera op mode to MM_CAMERA_OP_MODE_CAPTURE */
-    ALOGI("Setting OP_MODE_CAPTURE");
+    ALOGV("Setting OP_MODE_CAPTURE");
     op_mode = MM_CAMERA_OP_MODE_CAPTURE;
     if( NO_ERROR != cam_config_set_parm(mCameraId,
             MM_CAMERA_PARM_OP_MODE, &op_mode)) {
@@ -1060,7 +1061,7 @@
     }
 
     /* config the parmeters and see if we need to re-init the stream*/
-    ALOGI("%s: Configure Snapshot Dimension", __func__);
+    ALOGV("%s: Configure Snapshot Dimension", __func__);
     ret = configSnapshotDimension(&dim);
     if (ret != NO_ERROR) {
         ALOGE("%s: Setting snapshot dimension failed", __func__);
@@ -1117,7 +1118,7 @@
     ALOGV("%s: E", __func__);
 
     /* Set camera op mode to MM_CAMERA_OP_MODE_CAPTURE */
-    ALOGI("%s: Setting OP_MODE_CAPTURE", __func__);
+    ALOGV("%s: Setting OP_MODE_CAPTURE", __func__);
     op_mode = MM_CAMERA_OP_MODE_CAPTURE;
     if( NO_ERROR != cam_config_set_parm(mCameraId,
             MM_CAMERA_PARM_OP_MODE, &op_mode)) {
@@ -1136,7 +1137,7 @@
       ALOGV("%s: X", __func__);
       goto end;
     }
-    ALOGI("%s: Raw Snapshot dimension: %dx%d", __func__,
+    ALOGV("%s: Raw Snapshot dimension: %dx%d", __func__,
          dim.raw_picture_width,
          dim.raw_picture_height);
 
@@ -1178,7 +1179,7 @@
 #if 1
     /* First check if the picture resolution is the same, if not, change it*/
     mHalCamCtrl->getPictureSize(&mPictureWidth, &mPictureHeight);
-    ALOGI("%s: Picture size received: %d x %d", __func__,
+    ALOGV("%s: Picture size received: %d x %d", __func__,
          mPictureWidth, mPictureHeight);
 
     //Use main image as input to encoder to generate thumbnail
@@ -1204,7 +1205,7 @@
         dim.ui_thumbnail_height = mThumbnailHeight;
         dim.ui_thumbnail_width = mThumbnailWidth;
     }
-    ALOGI("%s: Picture size to set: %d x %d", __func__,
+    ALOGV("%s: Picture size to set: %d x %d", __func__,
          dim.picture_width, dim.picture_height);
     ret = cam_config_set_parm(mCameraId, MM_CAMERA_PARM_DIMENSION,&dim);
 #endif
@@ -1231,7 +1232,7 @@
 
     ALOGV("%s: E", __func__);
 
-    ALOGI("%s: Get current dimension", __func__);
+    ALOGV("%s: Get current dimension", __func__);
     /* Query mm_camera to get current dimension */
     memset(&dim, 0, sizeof(cam_ctrl_dimension_t));
     ret = cam_config_get_parm(mCameraId,
@@ -1243,7 +1244,7 @@
     }
 
     /* config the parmeters and see if we need to re-init the stream*/
-    ALOGI("%s: Configure Snapshot Dimension", __func__);
+    ALOGV("%s: Configure Snapshot Dimension", __func__);
     ret = configSnapshotDimension(&dim);
     if (ret != NO_ERROR) {
         ALOGE("%s: Setting snapshot dimension failed", __func__);
@@ -1298,7 +1299,7 @@
         hdrJpegCount = 0;
     }
     /* Take snapshot */
-    ALOGI("%s: Call MM_CAMERA_OPS_SNAPSHOT", __func__);
+    ALOGV("%s: Call MM_CAMERA_OPS_SNAPSHOT", __func__);
     if (NO_ERROR != cam_ops_action(mCameraId,
                                               true,
                                               MM_CAMERA_OPS_SNAPSHOT,
@@ -1334,7 +1335,7 @@
     ALOGV("%s: E", __func__);
 
     /* Take snapshot */
-    ALOGI("%s: Call MM_CAMERA_OPS_SNAPSHOT", __func__);
+    ALOGV("%s: Call MM_CAMERA_OPS_SNAPSHOT", __func__);
     if (NO_ERROR != cam_ops_action(mCameraId,
                                   true,
                                   MM_CAMERA_OPS_RAW,
@@ -1400,13 +1401,13 @@
     memcpy(frame, recvd_frame, sizeof(mm_camera_ch_data_buf_t));
 
     if (mNuberOfVFEOutputs == 1){
-        ALOGI("<DEBUG> Liveshot buffer idx:%d",frame->def.idx);
+        ALOGV("<DEBUG> Liveshot buffer idx:%d",frame->def.idx);
        frame->snapshot.main.frame = frame->def.frame;
        frame->snapshot.main.idx = frame->def.idx;
        frame->snapshot.thumbnail.frame = frame->def.frame;
        frame->snapshot.thumbnail.idx = frame->def.idx;
     } else {
-       ALOGI("<DEBUG> Liveshot buffer idx:%d",frame->video.video.idx);
+       ALOGV("<DEBUG> Liveshot buffer idx:%d",frame->video.video.idx);
        frame->snapshot.main.frame = frame->video.video.frame;
        frame->snapshot.main.idx = frame->video.video.idx;
        frame->snapshot.thumbnail.frame = frame->video.video.frame;
@@ -1471,7 +1472,7 @@
 
     mJpegMaxSize = mPictureWidth * mPictureHeight * 1.5;
 
-    ALOGI("Liveshot res = %d X %d, Thumabnail = %d % %d",
+    ALOGV("Liveshot res = %d X %d, Thumabnail = %d % %d",
           mPictureWidth,mPictureHeight,mThumbnailWidth,mThumbnailHeight);
 
     memset(&crop_info, 0, sizeof(common_crop_t));
@@ -1521,7 +1522,7 @@
     param.ch_type = MM_CAMERA_CH_SNAPSHOT;
 
     /* Take snapshot */
-    ALOGI("%s: Call MM_CAMERA_OPS_GET_BUFFERED_FRAME", __func__);
+    ALOGV("%s: Call MM_CAMERA_OPS_GET_BUFFERED_FRAME", __func__);
 
     mNumOfSnapshot = mHalCamCtrl->getNumOfSnapshots();
     // it's just for stabilization for dequeuing zsl buffer frame
@@ -1557,7 +1558,7 @@
     ALOGV("%s: E", __func__);
 
     /* Start ZSL - it'll start queuing the frames */
-    ALOGI("%s: Call MM_CAMERA_OPS_ZSL", __func__);
+    ALOGV("%s: Call MM_CAMERA_OPS_ZSL", __func__);
     if (NO_ERROR != cam_ops_action(mCameraId,
                                           true,
                                           MM_CAMERA_OPS_ZSL,
@@ -1599,22 +1600,22 @@
        Also, if the queue isn't empty then we need to queue this
        one too till its turn comes (only if it's not already
        queued up there)*/
-    ALOGI("%s: getSnapshotState()=%d, enqueued =%d, Q empty=%d", __func__, getSnapshotState(), enqueued, mSnapshotQueue.isEmpty());
-    ALOGI("%s: mNumOfRecievedJPEG=%d, mNumOfSnapshot =%d", __func__, mNumOfRecievedJPEG, mNumOfSnapshot);
+    ALOGV("%s: getSnapshotState()=%d, enqueued =%d, Q empty=%d", __func__, getSnapshotState(), enqueued, mSnapshotQueue.isEmpty());
+    ALOGV("%s: mNumOfRecievedJPEG=%d, mNumOfSnapshot =%d", __func__, mNumOfRecievedJPEG, mNumOfSnapshot);
     if(mHalCamCtrl->thumbnailWidth == 0 ||  mHalCamCtrl->thumbnailHeight == 0) {
-      ALOGI("Snapshot thumbnail will be dropped as indicated by application");
+      ALOGV("Snapshot thumbnail will be dropped as indicated by application");
       mDropThumbnail = true;
     }
     if((getSnapshotState() == SNAPSHOT_STATE_JPEG_ENCODING) ||
        (!mSnapshotQueue.isEmpty() && !enqueued)){ /*busy and new buffer*/
         /* encoding is going on. Just queue the frame for now.*/
-        ALOGI("%s: JPEG encoding in progress."
+        ALOGV("%s: JPEG encoding in progress."
              "Enqueuing frame id(%d) for later processing.", __func__,
              recvd_frame->snapshot.main.idx);
         mSnapshotQueue.enqueue((void *)recvd_frame);
     } else if (enqueued ||
        (mNumOfRecievedJPEG != mNumOfSnapshot  && mNumOfRecievedJPEG != 0)) { /*not busy, not first*/
-      ALOGI("%s: JPG not busy, not first frame.", __func__);
+      ALOGV("%s: JPG not busy, not first frame.", __func__);
 
       // For full-size live shot, use mainimage to generate thumbnail
       if (isFullSizeLiveshot()) {
@@ -1624,7 +1625,7 @@
       }
       mainframe = recvd_frame->snapshot.main.frame;
       cam_config_get_parm(mHalCamCtrl->mCameraId, MM_CAMERA_PARM_DIMENSION, &dimension);
-      ALOGI("%s: main_fmt =%d, tb_fmt =%d", __func__, dimension.main_img_format, dimension.thumb_format);
+      ALOGV("%s: main_fmt =%d, tb_fmt =%d", __func__, dimension.main_img_format, dimension.thumb_format);
       /*since this is the continue job, we only care about the input buffer*/
       encode_params.thumbnail_buf = (uint8_t *)postviewframe->buffer;
       encode_params.thumbnail_fd = postviewframe->fd;
@@ -1647,7 +1648,7 @@
       setSnapshotState(SNAPSHOT_STATE_JPEG_ENCODING);
     } else {  /*not busy and new buffer (first job)*/
 
-      ALOGI("%s: JPG Idle and  first frame.", __func__);
+      ALOGV("%s: JPG Idle and  first frame.", __func__);
 
         // For full-size live shot, use mainimage to generate thumbnail
         if (isFullSizeLiveshot()){
@@ -1657,14 +1658,14 @@
         }
         mainframe = recvd_frame->snapshot.main.frame;
         cam_config_get_parm(mHalCamCtrl->mCameraId, MM_CAMERA_PARM_DIMENSION, &dimension);
-        ALOGI("%s: main_fmt =%d, tb_fmt =%d", __func__, dimension.main_img_format, dimension.thumb_format);
+        ALOGV("%s: main_fmt =%d, tb_fmt =%d", __func__, dimension.main_img_format, dimension.thumb_format);
 
         dimension.orig_picture_dx = mPictureWidth;
         dimension.orig_picture_dy = mPictureHeight;
 
         if(!mDropThumbnail) {
             if(isZSLMode()) {
-                ALOGI("Setting input thumbnail size to previewWidth= %d   previewheight= %d in ZSL mode",
+                ALOGV("Setting input thumbnail size to previewWidth= %d   previewheight= %d in ZSL mode",
                      mHalCamCtrl->mPreviewWidth, mHalCamCtrl->mPreviewHeight);
                 dimension.thumbnail_width = width = mHalCamCtrl->mPreviewWidth;
                 dimension.thumbnail_height = height = mHalCamCtrl->mPreviewHeight;
@@ -1680,8 +1681,8 @@
         dimension.thumb_format = mThumbnailFormat;
 
         /*TBD: Move JPEG handling to the mm-camera library */
-        ALOGI("Setting callbacks, initializing encoder and start encoding.");
-        ALOGI(" Passing my obj: %x", (unsigned int) this);
+        ALOGV("Setting callbacks, initializing encoder and start encoding.");
+        ALOGV(" Passing my obj: %x", (unsigned int) this);
         set_callbacks(snapshot_jpeg_fragment_cb, snapshot_jpeg_cb, this,
              mHalCamCtrl->mJpegMemory.camera_memory[0]->data, &mJpegOffset);
 
@@ -1701,7 +1702,7 @@
             if (mNuberOfVFEOutputs == 1)
                 hw_encode = false;
         }
-        ALOGI("%s: hw_encode: %d\n",__func__, hw_encode);
+        ALOGV("%s: hw_encode: %d\n",__func__, hw_encode);
 
         if(omxJpegStart(hw_encode) != NO_ERROR){
             ALOGE("Error In omxJpegStart!!! Return");
@@ -1714,7 +1715,7 @@
         else
             mm_jpeg_encoder_setMainImageQuality(85);
 
-        ALOGI("%s: Dimension to encode: main: %dx%d thumbnail: %dx%d", __func__,
+        ALOGV("%s: Dimension to encode: main: %dx%d thumbnail: %dx%d", __func__,
              dimension.orig_picture_dx, dimension.orig_picture_dy,
              dimension.thumbnail_width, dimension.thumbnail_height);
 
@@ -1748,7 +1749,7 @@
         if(isLiveSnapshot() || isFullSizeLiveshot() || isZSLMode()) {
             crop.out1_w= mHalCamCtrl->thumbnailWidth;
             crop.out1_h=  mHalCamCtrl->thumbnailHeight;
-            ALOGI("Thumbnail width= %d  height= %d for livesnapshot", crop.out1_w, crop.out1_h);
+            ALOGV("Thumbnail width= %d  height= %d for livesnapshot", crop.out1_w, crop.out1_h);
         } else {
             crop.out1_w = width;
             crop.out1_h = height;
@@ -1756,6 +1757,10 @@
         thumb_crop_offset.x=mCrop.snapshot.thumbnail_crop.left;
         thumb_crop_offset.y=mCrop.snapshot.thumbnail_crop.top;
 
+        if (crop.out1_w > crop.out2_w || crop.out1_h > crop.out2_h) {
+            crop.out1_w = crop.out2_w;
+            crop.out1_h = crop.out2_h;
+        }
         //update exif parameters in HAL
         mHalCamCtrl->initExifData();
 
@@ -1833,7 +1838,7 @@
     ssize_t offset_addr = 0;
     common_crop_t dummy_crop;
     /* send frame for encoding */
-    ALOGI("%s: Send frame for encoding", __func__);
+    ALOGV("%s: Send frame for encoding", __func__);
     /*TBD: Pass 0 as cropinfo for now as v4l2 doesn't provide
       cropinfo. It'll be changed later.*/
     if(!mActive) {
@@ -1841,7 +1846,7 @@
         return NO_ERROR;
     }
     if(isZSLMode()){
-      ALOGI("%s: set JPEG rotation in ZSL mode", __func__);
+      ALOGV("%s: set JPEG rotation in ZSL mode", __func__);
       mHalCamCtrl->setJpegRotation(isZSLMode());
     }
 #ifdef USE_ION
@@ -1856,7 +1861,7 @@
       if(ioctl(ion_fd, ION_IOC_CLEAN_INV_CACHES, &cache_inv_data) < 0)
           ALOGE("%s: Cache Invalidate failed\n", __func__);
       else {
-          ALOGI("%s: Successful cache invalidate\n", __func__);
+          ALOGV("%s: Successful cache invalidate\n", __func__);
 	  if(!isFullSizeLiveshot()) {
             ion_fd = recvd_frame->snapshot.thumbnail.frame->ion_dev_fd;
             cache_inv_data.vaddr = (void*)recvd_frame->snapshot.thumbnail.frame->buffer;
@@ -1866,7 +1871,7 @@
             if(ioctl(ion_fd, ION_IOC_CLEAN_INV_CACHES, &cache_inv_data) < 0)
               ALOGE("%s: Cache Invalidate failed\n", __func__);
             else
-              ALOGI("%s: Successful cache invalidate\n", __func__);
+              ALOGV("%s: Successful cache invalidate\n", __func__);
           }
       }
     }
@@ -1883,7 +1888,7 @@
     /* Display postview image*/
     /* If it's burst mode, we won't be displaying postview of all the captured
        images - only the first one */
-    ALOGI("%s: Burst mode flag  %d", __func__, mBurstModeFlag);
+    ALOGV("%s: Burst mode flag  %d", __func__, mBurstModeFlag);
 
 end:
     ALOGV("%s: X", __func__);
@@ -1919,7 +1924,7 @@
 
     /* If it's raw snapshot, we just want to tell upperlayer to save the image*/
     if(mSnapshotFormat == PICTURE_FORMAT_RAW) {
-        ALOGI("%s: Call notifyShutter 2nd time in case of RAW", __func__);
+        ALOGV("%s: Call notifyShutter 2nd time in case of RAW", __func__);
         mStopCallbackLock.unlock();
         if(!mHalCamCtrl->mShutterSoundPlayed) {
             notifyShutter(&crop, true);
@@ -1928,7 +1933,7 @@
         mHalCamCtrl->mShutterSoundPlayed = false;
 
         mStopCallbackLock.lock( );
-        ALOGI("%s: Sending Raw Snapshot Callback to Upperlayer", __func__);
+        ALOGV("%s: Sending Raw Snapshot Callback to Upperlayer", __func__);
         buf_index = recvd_frame->def.idx;
 
         if (mHalCamCtrl->mDataCb && mActive &&
@@ -1958,7 +1963,7 @@
             mHalCamCtrl->mPauseFramedispatch = true;
         }
 
-        ALOGI("%s: Call notifyShutter 2nd time", __func__);
+        ALOGV("%s: Call notifyShutter 2nd time", __func__);
         /* The recvd_frame structre we receive from lower library is a local
            variable. So we'll need to save this structure so that we won't
            be later pointing to garbage data when that variable goes out of
@@ -1981,22 +1986,22 @@
             input_width = mPictureWidth;
             input_height = mPictureHeight;
 
-            ALOGI("%s: received frame %d * %d", __func__, input_width, input_height);
+            ALOGV("%s: received frame %d * %d", __func__, input_width, input_height);
             {
                 dnr_buffer = (uint8_t *)malloc(input_width*input_height*3/2);
                 if (dnr_buffer == NULL)
                     ALOGE("dnr_buffer alloc fail");
-                ALOGI("dnr_buffer allocated size : %d", input_width*input_height*3/2);
+                ALOGV("dnr_buffer allocated size : %d", input_width*input_height*3/2);
                 memcpy(dnr_buffer, (uint8_t *)frame->snapshot.main.frame->buffer, input_width*input_height*3/2);
-                ALOGI("dnr_buffer memcpy completed.");
+                ALOGV("dnr_buffer memcpy completed.");
             }
-            ALOGI("[DNR] DNR Processing Start.... %d * %d\n", mPictureWidth, mPictureHeight);
+            ALOGV("[DNR] DNR Processing Start.... %d * %d\n", mPictureWidth, mPictureHeight);
             ret = NO_ERROR;
             if (mHalCamCtrl->LINK_morpho_DNR_ProcessFrame)
                 ret = (int)mHalCamCtrl->LINK_morpho_DNR_ProcessFrame(dnr_buffer, mPictureWidth, mPictureHeight, 1, 1); //bright->normal->dark
-            ALOGI("[DNR] DNR Processing result.... ret = %d\n", ret);
+            ALOGV("[DNR] DNR Processing result.... ret = %d\n", ret);
             memcpy((uint8_t *)recvd_frame->snapshot.main.frame->buffer, (uint8_t *)dnr_buffer, mPictureWidth*mPictureHeight*3/2);
-            ALOGI("[DNR] DNR Processing END....\n");
+            ALOGV("[DNR] DNR Processing END....\n");
             if(dnr_buffer)
                 free(dnr_buffer);
         }
@@ -2006,10 +2011,10 @@
         if (isZSLMode() && mHalCamCtrl->isWDenoiseEnabled()) {
             if(mIsDoingWDN){
                 mWDNQueue.enqueue((void *)frame);
-                ALOGI("%s: Wavelet denoise is going on, queue frame", __func__);
+                ALOGV("%s: Wavelet denoise is going on, queue frame", __func__);
                 rc = NO_ERROR;
             } else {
-                ALOGI("%s: Start Wavelet denoise", __func__);
+                ALOGV("%s: Start Wavelet denoise", __func__);
                 mIsDoingWDN = true; // set the falg to true because we are going to do WDN
 
                 // No WDN is going on so far, we will start it here
@@ -2022,15 +2027,15 @@
         } else if (mHdrInfo.hdr_on) {
             mHdrInfo.recvd_frame[mHdrInfo.num_raw_received] = frame;
             mHdrInfo.num_raw_received++;
-		    ALOGI("%s Total %d Received %d frames, still need to receive %d frames", __func__,
+		    ALOGV("%s Total %d Received %d frames, still need to receive %d frames", __func__,
 			mHdrInfo.num_frame, mHdrInfo.num_raw_received, (mHdrInfo.num_frame - mHdrInfo.num_raw_received));
             if (mHdrInfo.num_raw_received == mHdrInfo.num_frame) {
-                ALOGI(" Received all %d YUV frames, Invoke HDR", mHdrInfo.num_raw_received);
+                ALOGV(" Received all %d YUV frames, Invoke HDR", mHdrInfo.num_raw_received);
                 doHdrProcessing();
             }
         }
         else {
-          ALOGI("%s: encodeDisplayAndSave ", __func__);
+          ALOGV("%s: encodeDisplayAndSave ", __func__);
             rc = encodeDisplayAndSave(frame, 0);
         }
 
@@ -2103,6 +2108,15 @@
           if (notifyCb) {
             notifyCb(CAMERA_MSG_RAW_IMAGE_NOTIFY, 0, 0, mHalCamCtrl->mCallbackCookie);
           }
+
+          if (!isZSLMode() &&
+                  (!isLiveSnapshot() && !isFullSizeLiveshot())) {
+              if(mHalCamCtrl->mDataCb &&
+                 (mHalCamCtrl->mMsgEnabled & CAMERA_MSG_POSTVIEW_FRAME)) {
+                  mHalCamCtrl->mDataCb(CAMERA_MSG_POSTVIEW_FRAME,mHalCamCtrl->mThumbnailMemory.camera_memory[0],
+                                     0, NULL, mHalCamCtrl->mCallbackCookie);
+              }
+          }
         }
     }
 
@@ -2155,7 +2169,7 @@
 
 void QCameraStream_Snapshot::setSnapshotState(int state)
 {
-    ALOGI("%s: Setting snapshot state to: %d",
+    ALOGV("%s: Setting snapshot state to: %d",
          __func__, state);
     mSnapshotState = state;
 }
@@ -2196,7 +2210,7 @@
       mNumOfSnapshot = 1;
   }
   mNumOfRecievedJPEG = 0;
-  ALOGI("%s: Number of images to be captured: %d", __func__, mNumOfSnapshot);
+  ALOGV("%s: Number of images to be captured: %d", __func__, mNumOfSnapshot);
 }
 
 //------------------------------------------------------------------
@@ -2320,7 +2334,7 @@
        multiple snapshot/burst mode */
 
 	if(mHalCamCtrl->isRawSnapshot()) {
-        ALOGD("%s: Acquire Raw Snapshot Channel", __func__);
+        ALOGV("%s: Acquire Raw Snapshot Channel", __func__);
         ret = cam_ops_ch_acquire(mCameraId, MM_CAMERA_CH_RAW);
         if (NO_ERROR != ret) {
             ALOGE("%s: Failure Acquiring Raw Snapshot Channel error =%d\n",
@@ -2330,7 +2344,7 @@
         }
         /* Snapshot channel is acquired */
         setSnapshotState(SNAPSHOT_STATE_CH_ACQUIRED);
-        ALOGI("%s: Register buffer notification. My object: %x",
+        ALOGV("%s: Register buffer notification. My object: %x",
              __func__, (unsigned int) this);
         (void) cam_evt_register_buf_notify(mCameraId, MM_CAMERA_CH_RAW,
                                         snapshot_notify_cb,
@@ -2340,7 +2354,7 @@
         /* Set the state to buffer notification completed */
         setSnapshotState(SNAPSHOT_STATE_BUF_NOTIF_REGD);
     }else{
-        ALOGI("%s: Acquire Snapshot Channel", __func__);
+        ALOGV("%s: Acquire Snapshot Channel", __func__);
         ret = cam_ops_ch_acquire(mCameraId, MM_CAMERA_CH_SNAPSHOT);
         if (NO_ERROR != ret) {
             ALOGE("%s: Failure Acquiring Snapshot Channel error =%d\n", __func__, ret);
@@ -2349,7 +2363,7 @@
         }
         /* Snapshot channel is acquired */
         setSnapshotState(SNAPSHOT_STATE_CH_ACQUIRED);
-        ALOGI("%s: Register buffer notification. My object: %x",
+        ALOGV("%s: Register buffer notification. My object: %x",
              __func__, (unsigned int) this);
         (void) cam_evt_register_buf_notify(mCameraId, MM_CAMERA_CH_SNAPSHOT,
                                         snapshot_notify_cb,
@@ -2444,7 +2458,7 @@
 
     if(isLiveSnapshot() && mHalCamCtrl->mStateLiveshot) {
         if(getSnapshotState() == SNAPSHOT_STATE_JPEG_ENCODING) {
-            ALOGI("Destroy Liveshot Jpeg Instance");
+            ALOGV("Destroy Liveshot Jpeg Instance");
             omxJpegAbort();
         }
         mStopCallbackLock.lock();
@@ -2579,7 +2593,7 @@
     int rc = NO_ERROR;
     mm_camera_ch_data_buf_t *frame = (mm_camera_ch_data_buf_t *)cookie;
 
-    ALOGI("%s: WDN Done status (%d) received",__func__,status);
+    ALOGV("%s: WDN Done status (%d) received",__func__,status);
     Mutex::Autolock lock(mStopCallbackLock);
     if (frame == NULL) {
         ALOGE("%s: cookie is returned NULL", __func__);
@@ -2666,7 +2680,7 @@
             }
         } else {
             // we sent out req for WDN, so we can break here
-            ALOGI("%s: Send out req for doing wavelet denoise, return here", __func__);
+            ALOGV("%s: Send out req for doing wavelet denoise, return here", __func__);
             break;
         }
     } while (true);
@@ -2678,7 +2692,7 @@
     cam_sock_packet_t packet;
     cam_ctrl_dimension_t dim;
 
-    ALOGD("%s: E", __func__);
+    ALOGV("%s: E", __func__);
 
     #if 0
     // get dim on the fly
@@ -2751,12 +2765,12 @@
     packet.msg_type = CAM_SOCK_MSG_TYPE_HDR_START;
     packet.payload.hdr_pkg.cookie = (unsigned long)this;
     packet.payload.hdr_pkg.num_hdr_frames = mHdrInfo.num_frame;
-    ALOGI("%s num frames = %d ", __func__, mHdrInfo.num_frame);
+    ALOGV("%s num frames = %d ", __func__, mHdrInfo.num_frame);
     for (i = 0; i < mHdrInfo.num_frame; i++) {
         packet.payload.hdr_pkg.hdr_main_idx[i] =mHdrInfo.recvd_frame[i]->snapshot.main.idx;
         packet.payload.hdr_pkg.hdr_thm_idx[i] = mHdrInfo.recvd_frame[i]->snapshot.thumbnail.idx;
         packet.payload.hdr_pkg.exp[i] = mHdrInfo.exp[i];
-        ALOGI("%s Adding buffer M %d T %d Exp %d into hdr pkg ", __func__,
+        ALOGV("%s Adding buffer M %d T %d Exp %d into hdr pkg ", __func__,
             packet.payload.hdr_pkg.hdr_main_idx[i],
             packet.payload.hdr_pkg.hdr_thm_idx[i],
             packet.payload.hdr_pkg.exp[i]);
@@ -2790,7 +2804,7 @@
     mm_camera_ch_data_buf_t *frame;
     int i;
 
-    ALOGI("%s: HDR Done status (%d) received",__func__,status);
+    ALOGV("%s: HDR Done status (%d) received",__func__,status);
     Mutex::Autolock lock(mStopCallbackLock);
     /* Regular frame */
     frame = mHdrInfo.recvd_frame[0];
diff --git a/QCameraStream.cpp b/QCameraStream.cpp
index 25e9a9f..a30efca 100644
--- a/QCameraStream.cpp
+++ b/QCameraStream.cpp
@@ -25,7 +25,6 @@
 
 
 #include "QCameraStream.h"
-#include "QCamera_dbg.h"
 
 /* QCameraStream class implementation goes here*/
 /* following code implement the control logic of this class*/
@@ -194,7 +193,7 @@
     ALOGV("QCameraStream::initChannel : E");
     if(MM_CAMERA_CH_PREVIEW_MASK & ch_type_mask){
         rc = cam_ops_ch_acquire(cameraId, MM_CAMERA_CH_PREVIEW);
-        ALOGI("%s:ch_acquire MM_CAMERA_CH_PREVIEW, rc=%d\n",__func__, rc);
+        ALOGV("%s:ch_acquire MM_CAMERA_CH_PREVIEW, rc=%d\n",__func__, rc);
         if(MM_CAMERA_OK != rc) {
                 ALOGE("%s: preview channel acquir error =%d\n", __func__, rc);
                 ALOGV("%s: X", __func__);
@@ -208,7 +207,7 @@
         ALOGV("Buf notify MM_CAMERA_CH_PREVIEW, rc=%d\n",rc);*/
     }else if(MM_CAMERA_CH_VIDEO_MASK & ch_type_mask){
         rc = cam_ops_ch_acquire(cameraId, MM_CAMERA_CH_VIDEO);
-        ALOGI("%s:ch_acquire MM_CAMERA_CH_VIDEO, rc=%d\n",__func__, rc);
+        ALOGV("%s:ch_acquire MM_CAMERA_CH_VIDEO, rc=%d\n",__func__, rc);
         if(MM_CAMERA_OK != rc) {
                 ALOGE("%s: preview channel acquir error =%d\n", __func__, rc);
                 ALOGV("%s: X", __func__);
@@ -247,7 +246,7 @@
 }
 
 status_t QCameraStream::setMode(int enable) {
-  ALOGI("%s :myMode %x ", __func__, myMode);
+  ALOGV("%s :myMode %x ", __func__, myMode);
   if (enable) {
       myMode = (camera_mode_t)(myMode | CAMERA_ZSL_MODE);
   } else {
@@ -306,7 +305,7 @@
     }*/
 
     rc = cam_config_set_parm(mCameraId, MM_CAMERA_PARM_CH_IMAGE_FMT, &fmt);
-    ALOGI("%s: Stream MM_CAMERA_PARM_CH_IMAGE_FMT rc = %d\n", __func__, rc);
+    ALOGV("%s: Stream MM_CAMERA_PARM_CH_IMAGE_FMT rc = %d\n", __func__, rc);
     if(MM_CAMERA_OK != rc) {
         ALOGE("%s:set stream channel format err=%d\n", __func__, ret);
         ALOGV("%s: X", __func__);
diff --git a/QCamera_Intf.h b/QCamera_Intf.h
index 19df6dd..aa84940 100644
--- a/QCamera_Intf.h
+++ b/QCamera_Intf.h
@@ -473,6 +473,8 @@
     MM_CAMERA_PARM_LUX_IDX,
     MM_CAMERA_PARM_GET_AF_STATUS,
     MM_CAMERA_PARM_CHECK_AF_RETRY,
+    MM_CAMERA_PARM_LG_CAF_LOCK,
+    MM_CAMERA_PARM_INFORM_STARTPRVIEW,
     MM_CAMERA_PARM_MAX
 } mm_camera_parm_type_t;
 
@@ -625,6 +627,8 @@
   CAMERA_GET_PARM_LOW_LIGHT_FOR_ZSL,
   CAMERA_GET_PARM_AF_STATUS,
   CAMERA_CHECK_AF_RETRY,
+  CAMERA_SET_LG_CAF_LOCK,
+  CAMERA_SET_INFORM_STARTPREVIEW,
   CAMERA_CTRL_PARM_MAX
 } cam_ctrl_type;
 
diff --git a/QCamera_dbg.h b/QCamera_dbg.h
deleted file mode 100644
index 5afd09b..0000000
--- a/QCamera_dbg.h
+++ /dev/null
@@ -1,15 +0,0 @@
-#ifndef __QCAMERA_DBG_H__
-#define __QCAMERA_DBG_H__
-
-#define LOG_DEBUG 0 
-
-#if !(LOG_DEBUG)
-#define LOG_NDEBUG 1
-
-#undef ALOGI
-#define ALOGI(...)      ALOGV(__VA_ARGS__)
-#undef ALOGD
-#define ALOGD(...)	ALOGV(__VA_ARGS__)
-#endif
-
-#endif	/* __QCAMERA_DBG_H__ */
diff --git a/QualcommCamera2.cpp b/QualcommCamera2.cpp
old mode 100644
new mode 100755
index 3ae44fb..8fb51e9
--- a/QualcommCamera2.cpp
+++ b/QualcommCamera2.cpp
@@ -137,7 +137,7 @@
     return hardware;
 }
 
-#if 0 //mzhu
+#if 0
 QCameraParameters* util_get_HAL_parameter( struct camera_device * device)
 {
     QCameraParameters *param = NULL;
@@ -147,20 +147,19 @@
     }
     return param;
 }
-#endif //mzhu
-
+#endif
 extern "C" int get_number_of_cameras()
 {
     /* try to query every time we get the call!*/
 
-    ALOGE("Q%s: E", __func__);
+    ALOGV("Q%s: E", __func__);
     return android::HAL_getNumberOfCameras( );
 }
 
 extern "C" int get_camera_info(int camera_id, struct camera_info *info)
 {
     int rc = -1;
-    ALOGE("Q%s: E", __func__);
+    ALOGV("Q%s: E", __func__);
     if(info) {
         struct CameraInfo camInfo;
         memset(&camInfo, -1, sizeof (struct CameraInfo));
@@ -175,6 +174,8 @@
     return rc;
 }
 
+static pthread_mutex_t camera_session_lock = PTHREAD_MUTEX_INITIALIZER;
+static unsigned int QCameraSession = 0;
 
 /* HAL should return NULL if it fails to open camera hardware. */
 extern "C" int  camera_device_open(
@@ -182,8 +183,16 @@
           struct hw_device_t** hw_device)
 {
     int rc = -1;
-	int mode = 0; // TODO: need to add 3d/2d mode, etc
+    int mode = 0; // TODO: need to add 3d/2d mode, etc
     camera_device *device = NULL;
+
+    pthread_mutex_lock(&camera_session_lock);
+
+    if(QCameraSession) {
+       ALOGE("%s Mutliple camera open instances are not supported",__func__);
+       pthread_mutex_unlock(&camera_session_lock);
+       return NULL;
+    }
     if(module && id && hw_device) {
         int cameraId = atoi(id);
 
@@ -192,18 +201,20 @@
                 (camera_hardware_t *) malloc(sizeof (camera_hardware_t));
             if(!camHal) {
                 *hw_device = NULL;
-				    ALOGE("%s:  end in no mem", __func__);
-				    return rc;
-		    }
+                ALOGE("%s:  end in no mem", __func__);
+                pthread_mutex_unlock(&camera_session_lock);
+                return rc;
+            }
             /* we have the camera_hardware obj malloced */
             memset(camHal, 0, sizeof (camera_hardware_t));
             camHal->hardware = new QCameraHardwareInterface(cameraId, mode); //HAL_openCameraHardware(cameraId);
             if (camHal->hardware && camHal->hardware->isCameraReady()) {
-				camHal->cameraId = cameraId;
-		        device = &camHal->hw_dev;
+                camHal->cameraId = cameraId;
+                device = &camHal->hw_dev;
                 device->common.close = close_camera_device;
                 device->ops = &camera_ops;
                 device->priv = (void *)camHal;
+                QCameraSession++;
                 rc =  0;
             } else {
                 if (camHal->hardware) {
@@ -215,18 +226,21 @@
             }
         }
     }
-	/* pass actual hw_device ptr to framework. This amkes that we actally be use memberof() macro */
+    /* pass actual hw_device ptr to framework. This amkes that we actally be use memberof() macro */
     *hw_device = (hw_device_t*)&device->common;
     ALOGV("%s:  end rc %d", __func__, rc);
+    pthread_mutex_unlock(&camera_session_lock);
     return rc;
 }
 
 extern "C"  int close_camera_device( hw_device_t *hw_dev)
 {
-    ALOGE("Q%s: device =%p E", __func__, hw_dev);
+    ALOGV("Q%s: device =%p E", __func__, hw_dev);
     int rc =  -1;
     camera_device_t *device = (camera_device_t *)hw_dev;
 
+    pthread_mutex_lock(&camera_session_lock);
+
     if(device) {
         camera_hardware_t *camHal = (camera_hardware_t *)device->priv;
         if(camHal ) {
@@ -236,12 +250,16 @@
                     hardware->release( );
                 }
             }
+            if (QCameraSession)
+                QCameraSession--;
             if(hardware != NULL)
                 delete hardware;
             free(camHal);
         }
         rc = 0;
     }
+
+    pthread_mutex_unlock(&camera_session_lock);
     return rc;
 }
 
@@ -308,7 +326,7 @@
     if(hardware != NULL){
         rc = hardware->startPreview( );
     }
-    ALOGE("Q%s: X", __func__);
+    ALOGV("Q%s: X", __func__);
     return rc;
 }
 
diff --git a/inc/omx_debug.h b/inc/omx_debug.h
old mode 100755
new mode 100644
index ae49149..53e4cf2
--- a/inc/omx_debug.h
+++ b/inc/omx_debug.h
@@ -40,9 +40,9 @@
   #define LOG_TAG "mm-still-omx"
   #include <utils/Log.h>
   #ifdef NEW_LOG_API
-    #define OMXDBG(fmt, args...) ALOGI(fmt, ##args)
+    #define OMXDBG(fmt, args...) ALOGV(fmt, ##args)
   #else
-    #define OMXDBG(fmt, args...) LOGI(fmt, ##args)
+    #define OMXDBG(fmt, args...) LOGV(fmt, ##args)
   #endif
 #endif
 
diff --git a/inc/omx_jpeg_common.h b/inc/omx_jpeg_common.h
old mode 100755
new mode 100644
diff --git a/mm-camera-interface/mm_camera.c b/mm-camera-interface/mm_camera.c
index 12b61c0..cd0571f 100644
--- a/mm-camera-interface/mm_camera.c
+++ b/mm-camera-interface/mm_camera.c
@@ -497,6 +497,12 @@
     case MM_CAMERA_PARM_CHECK_AF_RETRY:
         return mm_camera_send_native_ctrl_cmd(my_obj,   CAMERA_CHECK_AF_RETRY,
                  0, (void *)NULL);
+    case MM_CAMERA_PARM_LG_CAF_LOCK:
+        return mm_camera_send_native_ctrl_cmd(my_obj,   CAMERA_SET_LG_CAF_LOCK,
+                 0, (void *)NULL);
+    case MM_CAMERA_PARM_INFORM_STARTPRVIEW:
+        return mm_camera_send_native_ctrl_cmd(my_obj,   CAMERA_SET_INFORM_STARTPREVIEW,
+                 0, (void *)NULL);
     default:
         rc = mm_camera_set_general_parm(my_obj, parm);
         break;
@@ -978,10 +984,10 @@
     do{
         n_try--;
         my_obj->ctrl_fd = open(dev_name,O_RDWR | O_NONBLOCK);
-		ALOGI("%s:  ctrl_fd = %d", __func__, my_obj->ctrl_fd);
-        ALOGI("Errno:%d",errno);
+		ALOGV("%s:  ctrl_fd = %d", __func__, my_obj->ctrl_fd);
+        ALOGV("Errno:%d",errno);
         if((my_obj->ctrl_fd > 0) || (errno != EIO) || (n_try <= 0 )) {
-			ALOGE("%s:  opened, break out while loop", __func__);
+			ALOGV("%s:  opened, break out while loop", __func__);
 
             break;
 		}
@@ -990,23 +996,23 @@
         usleep(sleep_msec*1000);
     }while(n_try>0);
 
-	ALOGI("%s:  after while loop", __func__);
+	ALOGV("%s:  after while loop", __func__);
     if (my_obj->ctrl_fd <= 0) {
         CDBG("%s: cannot open control fd of '%s' Errno = %d\n",
                  __func__, mm_camera_util_get_dev_name(my_obj),errno);
         return -MM_CAMERA_E_GENERAL;
     }
-	ALOGI("%s:  2\n", __func__);
+	ALOGV("%s:  2\n", __func__);
 
     /* open domain socket*/
     n_try=MM_CAMERA_DEV_OPEN_TRIES;
     do{
         n_try--;
         my_obj->ds_fd = mm_camera_socket_create(my_obj->my_id, MM_CAMERA_SOCK_TYPE_UDP); // TODO: UDP for now, change to TCP
-        ALOGI("%s:  ds_fd = %d", __func__, my_obj->ds_fd);
-        ALOGI("Errno:%d",errno);
+        ALOGV("%s:  ds_fd = %d", __func__, my_obj->ds_fd);
+        ALOGV("Errno:%d",errno);
         if((my_obj->ds_fd > 0) || (n_try <= 0 )) {
-            ALOGE("%s:  opened, break out while loop", __func__);
+            ALOGV("%s:  opened, break out while loop", __func__);
             break;
         }
         CDBG("%s:failed with I/O error retrying after %d milli-seconds",
@@ -1014,7 +1020,7 @@
         usleep(sleep_msec*1000);
     }while(n_try>0);
 
-    ALOGI("%s:  after while loop for domain socket open", __func__);
+    ALOGV("%s:  after while loop for domain socket open", __func__);
     if (my_obj->ds_fd <= 0) {
         CDBG_ERROR("%s: cannot open domain socket fd of '%s' Errno = %d\n",
                  __func__, mm_camera_util_get_dev_name(my_obj),errno);
diff --git a/mm-camera-interface/mm_camera_channel.c b/mm-camera-interface/mm_camera_channel.c
index 44a8dd2..e987575 100644
--- a/mm-camera-interface/mm_camera_channel.c
+++ b/mm-camera-interface/mm_camera_channel.c
@@ -41,7 +41,7 @@
 
 #if 0
 #undef CDBG
-#define CDBG ALOGE
+#define CDBG ALOGV
 #endif
 /* static functions prototype declarations */
 static int mm_camera_channel_skip_frames(mm_camera_obj_t *my_obj,
@@ -376,7 +376,7 @@
      * but the rc value needs to be thread safe
      */
     int i;
-    ALOGI("%s: Trying to register",__func__);
+    ALOGV("%s: Trying to register",__func__);
 //    pthread_mutex_lock(&my_obj->ch[ch_type].mutex);
     for( i=0 ;i < MM_CAMERA_BUF_CB_MAX; i++ ) {
         if(my_obj->ch[ch_type].buf_cb[i].cb==NULL) {
@@ -385,7 +385,7 @@
         }
     }
 //    pthread_mutex_unlock(&my_obj->ch[ch_type].mutex);
-    ALOGI("%s: Done register",__func__);
+    ALOGV("%s: Done register",__func__);
     return MM_CAMERA_OK;
 }
 
@@ -517,7 +517,7 @@
                           &my_obj->ch[ch_type].snapshot.main, evt,
                           &crop->snapshot.main_crop);
             if(!rc && !my_obj->full_liveshot) {
-              ALOGE("%s: should not come here for Live Shot", __func__);
+              ALOGV("%s: should not come here for Live Shot", __func__);
               rc = mm_camera_stream_fsm_fn_vtbl(my_obj,
                               &my_obj->ch[ch_type].snapshot.thumbnail, evt,
                               &crop->snapshot.thumbnail_crop);
diff --git a/mm-camera-interface/mm_camera_dbg.h b/mm-camera-interface/mm_camera_dbg.h
index 5204429..ea51899 100644
--- a/mm-camera-interface/mm_camera_dbg.h
+++ b/mm-camera-interface/mm_camera_dbg.h
@@ -41,7 +41,7 @@
     #include <utils/Log.h>
   #else
     #include <stdio.h>
-    #define ALOGE CDBG
+    #define ALOGV CDBG
   #endif
   #undef CDBG
   #define CDBG(fmt, args...) do{}while(0)
@@ -52,7 +52,7 @@
     #define LOG_NIDEBUG 0
     #define LOG_TAG "mm-libcamera2"
     #include <utils/Log.h>
-    #define CDBG(fmt, args...) ALOGE(fmt, ##args)
+    #define CDBG(fmt, args...) ALOGV(fmt, ##args)
   #else
     #include <stdio.h>
     #define CDBG(fmt, args...) fprintf(stderr, fmt, ##args)
diff --git a/mm-camera-interface/mm_camera_notify.c b/mm-camera-interface/mm_camera_notify.c
index c76f572..7c62c22 100644
--- a/mm-camera-interface/mm_camera_notify.c
+++ b/mm-camera-interface/mm_camera_notify.c
@@ -42,7 +42,7 @@
 #if 0
 #undef CDBG
 #undef LOG_TAG
-#define CDBG ALOGE
+#define CDBG ALOGV
 #define LOG_TAG "NotifyLogs"
 #endif
 
@@ -396,7 +396,7 @@
     mm_camera_ch_data_buf_t data[MM_CAMERA_BUF_CB_MAX];
 
     if (!my_obj->ch[MM_CAMERA_CH_PREVIEW].acquired) {
-        ALOGE("Preview channel is not in acquired state \n");
+        ALOGV("Preview channel is not in acquired state \n");
         return;
     }
     stream = &my_obj->ch[MM_CAMERA_CH_PREVIEW].preview.stream;
@@ -572,7 +572,7 @@
     mm_camera_stream_t *stream;
     mm_camera_frame_queue_t *q;
     if (!my_obj->ch[MM_CAMERA_CH_SNAPSHOT].acquired) {
-        ALOGE("Snapshot channel is not in acquired state \n");
+        ALOGV("Snapshot channel is not in acquired state \n");
         return;
     }
     q = &my_obj->ch[MM_CAMERA_CH_SNAPSHOT].snapshot.main.frame.readyq;
@@ -605,7 +605,7 @@
     mm_camera_frame_queue_t *q;
 
     if (!my_obj->ch[MM_CAMERA_CH_SNAPSHOT].acquired) {
-        ALOGE("Snapshot channel is not in acquired state \n");
+        ALOGV("Snapshot channel is not in acquired state \n");
         return;
     }
     q = &my_obj->ch[MM_CAMERA_CH_SNAPSHOT].snapshot.thumbnail.frame.readyq;
@@ -634,7 +634,7 @@
     mm_camera_ch_data_buf_t data[MM_CAMERA_BUF_CB_MAX];
 
     if (!my_obj->ch[MM_CAMERA_CH_VIDEO].acquired) {
-        ALOGE("Snapshot channel is not in acquired state \n");
+        ALOGV("Snapshot channel is not in acquired state \n");
         return;
     }
     stream = &my_obj->ch[MM_CAMERA_CH_VIDEO].video.video;
@@ -663,7 +663,7 @@
 
             ALOGV("Video thread callback returned");
             if( my_obj->ch[MM_CAMERA_CH_VIDEO].buf_cb[i].cb_type==MM_CAMERA_BUF_CB_COUNT ) {
-                ALOGE("<DEBUG>:%s: Additional cb called for buffer %p:%d",__func__,stream,idx);
+                ALOGV("<DEBUG>:%s: Additional cb called for buffer %p:%d",__func__,stream,idx);
                 if(--(my_obj->ch[MM_CAMERA_CH_VIDEO].buf_cb[i].cb_count) == 0 )
                     my_obj->ch[MM_CAMERA_CH_VIDEO].buf_cb[i].cb=NULL;
             }
@@ -676,7 +676,7 @@
             buf_cb[i].cb(&data[i],buf_cb[i].user_data);
         }
         /*if( buf_cb[i].cb_type==MM_CAMERA_BUF_CB_COUNT ) {
-                ALOGE("<DEBUG>:%s: Additional cb called for buffer %p:%d",__func__,stream,idx);
+                ALOGV("<DEBUG>:%s: Additional cb called for buffer %p:%d",__func__,stream,idx);
                 if(--(buf_cb[i].cb_count) == 0 )
                     buf_cb[i].cb=NULL;
         }*/
diff --git a/mm-camera-interface/mm_camera_poll_thread.c b/mm-camera-interface/mm_camera_poll_thread.c
index c59369c..98986ce 100644
--- a/mm-camera-interface/mm_camera_poll_thread.c
+++ b/mm-camera-interface/mm_camera_poll_thread.c
@@ -96,7 +96,7 @@
         CDBG("%s: wait", __func__);
         rc = pthread_cond_timedwait(&poll_cb->cond_v, &poll_cb->mutex, &ts);
         if (rc) {
-            ALOGE("%s: error on pthread_cond_timedwait: %s", __func__, strerror(rc));
+            ALOGV("%s: error on pthread_cond_timedwait: %s", __func__, strerror(rc));
             break;
         }
     }
@@ -315,7 +315,7 @@
         ts.tv_sec += 2;
         rc = pthread_cond_timedwait(&poll_cb->cond_v, &poll_cb->mutex, &ts);
         if (rc) {
-            ALOGE("%s: error on pthread_cond_timedwait: %s", __func__, strerror(rc));
+            ALOGV("%s: error on pthread_cond_timedwait: %s", __func__, strerror(rc));
             break;
         }
     }
@@ -409,7 +409,7 @@
         poll_cb->data.poll_type = MM_CAMERA_POLL_TYPE_EVT;
     }
 
-    ALOGI("%s: ch_type = %d, poll_type = %d, read fd = %d, write fd = %d",
+    ALOGV("%s: ch_type = %d, poll_type = %d, read fd = %d, write fd = %d",
          __func__, ch_type, poll_cb->data.poll_type,
          poll_cb->data.pfds[0], poll_cb->data.pfds[1]);
     /* launch the thread */
diff --git a/mm-camera-interface/mm_camera_stream.c b/mm-camera-interface/mm_camera_stream.c
index 8fff76c..4953ad4 100644
--- a/mm-camera-interface/mm_camera_stream.c
+++ b/mm-camera-interface/mm_camera_stream.c
@@ -432,7 +432,7 @@
         __func__, stream->fd, rc);
       goto end;
     }
-    ALOGI("%s: stream fd=%d, ioctl VIDIOC_REQBUFS: memtype = %d, num_frames = %d, rc=%d\n",
+    ALOGV("%s: stream fd=%d, ioctl VIDIOC_REQBUFS: memtype = %d, num_frames = %d, rc=%d\n",
         __func__, stream->fd, bufreq.memory, bufreq.count, rc);
 
 end:
@@ -455,9 +455,9 @@
 
     for(i = 0; i < vbuf->num; i++){
         int idx = vbuf->buf.mp[i].idx;
-        ALOGI("%s: enqueue buf index = %d\n",__func__, idx);
+        ALOGV("%s: enqueue buf index = %d\n",__func__, idx);
         if(idx < MM_CAMERA_MAX_NUM_FRAMES) {
-            ALOGI("%s: stream_fd = %d, frame_fd = %d, frame ID = %d, offset = %d\n",
+            ALOGV("%s: stream_fd = %d, frame_fd = %d, frame ID = %d, offset = %d\n",
                      __func__, stream->fd, stream->frame.frame[i].frame.fd,
                      idx, stream->frame.frame_offset[idx]);
             rc = mm_camera_stream_qbuf(my_obj, stream, stream->frame.frame[idx].idx);
diff --git a/mm-camera-interface/mm_jpeg_encoder.c b/mm-camera-interface/mm_jpeg_encoder.c
index a53ae15..8ae4230 100644
--- a/mm-camera-interface/mm_jpeg_encoder.c
+++ b/mm-camera-interface/mm_jpeg_encoder.c
@@ -44,7 +44,7 @@
     #define LOG_NIDEBUG 0
     #define LOG_TAG "mm-camera jpeg"
     #include <utils/Log.h>
-    #define CDBG(fmt, args...) ALOGE(fmt, ##args)
+    #define CDBG(fmt, args...) ALOGV(fmt, ##args)
     #endif
 #endif
 
diff --git a/mm-camera-interface/mm_omx_jpeg_encoder.c b/mm-camera-interface/mm_omx_jpeg_encoder.c
index 3bf42cd..1c676cf 100644
--- a/mm-camera-interface/mm_omx_jpeg_encoder.c
+++ b/mm-camera-interface/mm_omx_jpeg_encoder.c
@@ -173,7 +173,7 @@
     expectedValue2 = 0;
     pthread_cond_signal(&cond);
     pthread_mutex_unlock(&lock);
-    ALOGI("%s:filled len = %u", __func__, (uint32_t)pBuffer->nFilledLen);
+    ALOGV("%s:filled len = %u", __func__, (uint32_t)pBuffer->nFilledLen);
     if (mmcamera_jpeg_callback && encoding)
         mmcamera_jpeg_callback(0, user_data);
     return 0;
@@ -184,12 +184,12 @@
     ALOGV("%s", __func__);
     if (error == OMX_EVENT_JPEG_ERROR) {
         if (mmcamera_jpeg_callback && encoding) {
-            ALOGI("%s:OMX_EVENT_JPEG_ERROR\n", __func__);
+            ALOGV("%s:OMX_EVENT_JPEG_ERROR\n", __func__);
             mmcamera_jpeg_callback(JPEG_EVENT_ERROR, user_data);
         }
     } else if (error == OMX_EVENT_THUMBNAIL_DROPPED) {
         if (mmcamera_jpeg_callback && encoding) {
-            ALOGI("%s:(OMX_EVENT_THUMBNAIL_DROPPED\n", __func__);
+            ALOGV("%s:(OMX_EVENT_THUMBNAIL_DROPPED\n", __func__);
             mmcamera_jpeg_callback(JPEG_EVENT_THUMBNAIL_DROPPED, user_data);
         }
     }
@@ -201,8 +201,8 @@
                             OMX_IN OMX_U32 nData1, OMX_IN OMX_U32 nData2,
                             OMX_IN OMX_PTR pEventData)
 {
-    ALOGI("%s", __func__);
-    ALOGI("%s:got event %d ndata1 %u ndata2 %u", __func__,
+    ALOGV("%s", __func__);
+    ALOGV("%s:got event %d ndata1 %u ndata2 %u", __func__,
       eEvent, nData1, nData2);
     pthread_mutex_lock(&lock);
     expectedEvent = eEvent;
@@ -217,17 +217,17 @@
 
 void waitForEvent(int event, int value1, int value2 ){
     pthread_mutex_lock(&lock);
-    ALOGI("%s:Waiting for:event=%d, value1=%d, value2=%d",
+    ALOGV("%s:Waiting for:event=%d, value1=%d, value2=%d",
       __func__, event, value1, value2);
     while (! (expectedEvent == event &&
     expectedValue1 == value1 && expectedValue2 == value2)) {
         pthread_cond_wait(&cond, &lock);
-        ALOGI("%s:After cond_wait:expectedEvent=%d, expectedValue1=%d, expectedValue2=%d",
+        ALOGV("%s:After cond_wait:expectedEvent=%d, expectedValue1=%d, expectedValue2=%d",
           __func__, expectedEvent, expectedValue1, expectedValue2);
-        ALOGI("%s:After cond_wait:event=%d, value1=%d, value2=%d",
+        ALOGV("%s:After cond_wait:event=%d, value1=%d, value2=%d",
           __func__, event, value1, value2);
     }
-    ALOGI("%s:done:expectedEvent=%d, expectedValue1=%d, expectedValue2=%d",
+    ALOGV("%s:done:expectedEvent=%d, expectedValue1=%d, expectedValue2=%d",
       __func__, expectedEvent, expectedValue1, expectedValue2);
     pthread_mutex_unlock(&lock);
 }
@@ -236,7 +236,7 @@
     uint32_t* p_y_offset, uint32_t* p_cbcr_offset, uint32_t* p_buf_size,
     uint8_t *num_planes, uint32_t planes[])
 {
-    ALOGI("%s:", __func__);
+    ALOGV("%s:", __func__);
     if ((NULL == p_y_offset) || (NULL == p_cbcr_offset)) {
         return false;
     }
@@ -267,7 +267,7 @@
 
 int8_t omxJpegOpen()
 {
-    ALOGI("%s", __func__);
+    ALOGV("%s", __func__);
     pthread_mutex_lock(&jpege_mutex);
     libmmstillomx = dlopen("libmmstillomx.so", RTLD_NOW);
     if (!libmmstillomx) {
@@ -318,7 +318,7 @@
         jpeg_fmt = OMX_YCRCBLP_H2V2;
         break;
     default:
-        ALOGI("Camera format %d not supported", fmt);
+        ALOGV("Camera format %d not supported", fmt);
         break;
     }
     return jpeg_fmt;
@@ -326,12 +326,12 @@
 
 int8_t omxJpegEncodeNext(omx_jpeg_encode_params *encode_params)
 {
-    ALOGI("%s:E", __func__);
+    ALOGV("%s:E", __func__);
     pthread_mutex_lock(&jpege_mutex);
     encoding = 1;
     int orientation;
     if(inputPort == NULL || inputPort1 == NULL || outputPort == NULL) {
-      ALOGI("%s:pointer is null: X", __func__);
+      ALOGV("%s:pointer is null: X", __func__);
       pthread_mutex_unlock(&jpege_mutex);
       return -1;
     }
@@ -341,19 +341,19 @@
     OMX_GetParameter(pHandle, OMX_IndexParamPortDefinition, inputPort);
     OMX_GetParameter(pHandle, OMX_IndexParamPortDefinition, outputPort);
 
-    ALOGI("%s:nFrameWidth=%d nFrameHeight=%d nBufferSize=%d w=%d h=%d",
+    ALOGV("%s:nFrameWidth=%d nFrameHeight=%d nBufferSize=%d w=%d h=%d",
       __func__, inputPort->format.image.nFrameWidth,
       inputPort->format.image.nFrameHeight, inputPort->nBufferSize,
       bufferoffset.width, bufferoffset.height);
     OMX_GetExtensionIndex(pHandle,"omx.qcom.jpeg.exttype.buffer_offset",
       &buffer_offset);
-    ALOGI("%s:Buffer w %d h %d yOffset %d cbcrOffset %d totalSize %d\n",
+    ALOGV("%s:Buffer w %d h %d yOffset %d cbcrOffset %d totalSize %d\n",
       __func__, bufferoffset.width, bufferoffset.height, bufferoffset.yOffset,
       bufferoffset.cbcrOffset,bufferoffset.totalSize);
     OMX_SetParameter(pHandle, buffer_offset, &bufferoffset);
     OMX_SetParameter(pHandle, OMX_IndexParamPortDefinition, inputPort1);
     OMX_GetParameter(pHandle, OMX_IndexParamPortDefinition, inputPort1);
-    ALOGI("%s: thumbnail widht %d height %d", __func__,
+    ALOGV("%s: thumbnail widht %d height %d", __func__,
       thumbnail.width, thumbnail.height);
 
     userpreferences.color_format =
@@ -418,7 +418,7 @@
     pmem_info1.fd = encode_params->thumbnail_fd;
     pmem_info1.offset = 0;
 
-    ALOGI("%s: input1 buff size %d", __func__, inputPort1->nBufferSize);
+    ALOGV("%s: input1 buff size %d", __func__, inputPort1->nBufferSize);
     OMX_UseBuffer(pHandle, &pInBuffers1, 2, &pmem_info1,
       inputPort1->nBufferSize, (void *) encode_params->thumbnail_buf);
     OMX_UseBuffer(pHandle, &pOutBuffers, 1, NULL, inputPort->nBufferSize,
@@ -427,7 +427,7 @@
     OMX_EmptyThisBuffer(pHandle, pInBuffers1);
     OMX_FillThisBuffer(pHandle, pOutBuffers);
     pthread_mutex_unlock(&jpege_mutex);
-    ALOGI("%s:X", __func__);
+    ALOGV("%s:X", __func__);
     return true;
 }
 
@@ -437,7 +437,7 @@
     uint8_t num_planes;
     uint32_t planes[10];
     int orientation;
-    ALOGI("%s:E", __func__);
+    ALOGV("%s:E", __func__);
 
     inputPort = malloc(sizeof(OMX_PARAM_PORTDEFINITIONTYPE));
     outputPort = malloc(sizeof(OMX_PARAM_PORTDEFINITIONTYPE));
@@ -466,7 +466,7 @@
         encode_params->scaling_params->in2_h) {
         if (jpegRotation) {
             userpreferences.preference = OMX_JPEG_PREF_SOFTWARE_ONLY;
-            ALOGI("%s:Scaling and roation true: setting pref to sw\n",
+            ALOGV("%s:Scaling and roation true: setting pref to sw\n",
                 __func__);
             hw_encode = 0;
         }
@@ -479,14 +479,14 @@
         bufferoffset.totalSize = encode_params->a_cbcroffset * 1.5;
     }
     OMX_GetExtensionIndex(pHandle,"omx.qcom.jpeg.exttype.buffer_offset",&buffer_offset);
-    ALOGI(" Buffer width = %d, Buffer  height = %d, yOffset =%d, cbcrOffset =%d, totalSize = %d\n",
+    ALOGV(" Buffer width = %d, Buffer  height = %d, yOffset =%d, cbcrOffset =%d, totalSize = %d\n",
                  bufferoffset.width, bufferoffset.height, bufferoffset.yOffset,
                  bufferoffset.cbcrOffset,bufferoffset.totalSize);
     OMX_SetParameter(pHandle, buffer_offset, &bufferoffset);
 
 
     if (encode_params->a_cbcroffset > 0) {
-        ALOGI("Using acbcroffset\n");
+        ALOGV("Using acbcroffset\n");
         bufferoffset1.cbcrOffset = encode_params->a_cbcroffset;
         OMX_GetExtensionIndex(pHandle,"omx.qcom.jpeg.exttype.acbcr_offset",&buffer_offset);
         OMX_SetParameter(pHandle, buffer_offset, &bufferoffset1);
@@ -515,7 +515,7 @@
 
     OMX_SetParameter(pHandle, OMX_IndexParamPortDefinition, inputPort1);
     OMX_GetParameter(pHandle, OMX_IndexParamPortDefinition, inputPort1);
-    ALOGI("%s: thumbnail width %d height %d", __func__,
+    ALOGV("%s: thumbnail width %d height %d", __func__,
       encode_params->dimension->thumbnail_width,
       encode_params->dimension->thumbnail_height);
 
@@ -530,7 +530,7 @@
 
 
 
-      ALOGI("%s:Scaling params in1_w %d in1_h %d out1_w %d out1_h %d"
+      ALOGV("%s:Scaling params in1_w %d in1_h %d out1_w %d out1_h %d"
                   "main_img in2_w %d in2_h %d out2_w %d out2_h %d\n", __func__,
       encode_params->scaling_params->in1_w,
       encode_params->scaling_params->in1_h,
@@ -541,7 +541,7 @@
       encode_params->scaling_params->out2_w,
       encode_params->scaling_params->out2_h);
    /*Main image scaling*/
-    ALOGI("%s:%d/n",__func__,__LINE__);
+    ALOGV("%s:%d/n",__func__,__LINE__);
 
 
     if (encode_params->scaling_params->in2_w &&
@@ -550,40 +550,40 @@
       /* Scaler information  for main image */
         recttype.nWidth = CEILING2(encode_params->scaling_params->in2_w);
         recttype.nHeight = CEILING2(encode_params->scaling_params->in2_h);
-        ALOGI("%s:%d/n",__func__,__LINE__);
+        ALOGV("%s:%d/n",__func__,__LINE__);
 
         if (encode_params->main_crop_offset) {
             recttype.nLeft = encode_params->main_crop_offset->x;
             recttype.nTop = encode_params->main_crop_offset->y;
-            ALOGI("%s:%d/n",__func__,__LINE__);
+            ALOGV("%s:%d/n",__func__,__LINE__);
 
         } else {
             recttype.nLeft = 0;
             recttype.nTop = 0;
-            ALOGI("%s:%d/n",__func__,__LINE__);
+            ALOGV("%s:%d/n",__func__,__LINE__);
 
         }
-        ALOGI("%s:%d/n",__func__,__LINE__);
+        ALOGV("%s:%d/n",__func__,__LINE__);
 
         recttype.nPortIndex = 1;
         OMX_SetConfig(pHandle, OMX_IndexConfigCommonInputCrop, &recttype);
-        ALOGI("%s:%d/n",__func__,__LINE__);
+        ALOGV("%s:%d/n",__func__,__LINE__);
 
         if (encode_params->scaling_params->out2_w &&
             encode_params->scaling_params->out2_h) {
             recttype.nWidth = (encode_params->scaling_params->out2_w);
             recttype.nHeight = (encode_params->scaling_params->out2_h);
-            ALOGI("%s:%d/n",__func__,__LINE__);
+            ALOGV("%s:%d/n",__func__,__LINE__);
 
 
             recttype.nPortIndex = 1;
             OMX_SetConfig(pHandle, OMX_IndexConfigCommonOutputCrop, &recttype);
-            ALOGI("%s:%d/n",__func__,__LINE__);
+            ALOGV("%s:%d/n",__func__,__LINE__);
 
         }
 
     } else {
-        ALOGI("%s: There is no main image scaling information",
+        ALOGV("%s: There is no main image scaling information",
           __func__);
     }
   /*case of thumbnail*/
@@ -602,13 +602,13 @@
             (encode_params->scaling_params->out1_h !=
             encode_params->dimension->thumbnail_height)) {
 
-            ALOGI("%s:%d/n",__func__,__LINE__);
+            ALOGV("%s:%d/n",__func__,__LINE__);
             thumbnail.cropWidth = CEILING2(encode_params->dimension->thumbnail_width);
             thumbnail.cropHeight = CEILING2(encode_params->dimension->thumbnail_height);
         }
         if (encode_params->scaling_params->in1_w &&
             encode_params->scaling_params->in1_h) {
-            ALOGI("%s:%d/n",__func__,__LINE__);
+            ALOGV("%s:%d/n",__func__,__LINE__);
             thumbnail.cropWidth = CEILING2(encode_params->scaling_params->in1_w);
             thumbnail.cropHeight = CEILING2(encode_params->scaling_params->in1_h);
         }
@@ -616,7 +616,7 @@
         thumbnail.height = encode_params->scaling_params->out1_h;
 
         if (encode_params->thumb_crop_offset) {
-            ALOGI("%s:%d/n",__func__,__LINE__);
+            ALOGV("%s:%d/n",__func__,__LINE__);
 
             thumbnail.left = encode_params->thumb_crop_offset->x;
             thumbnail.top = encode_params->thumb_crop_offset->y;
@@ -627,18 +627,18 @@
         }
     } else {
         thumbnail.scaling = 0;
-        ALOGI("%s: There is no thumbnail scaling information",
+        ALOGV("%s: There is no thumbnail scaling information",
           __func__);
     }
     OMX_GetExtensionIndex(pHandle,"omx.qcom.jpeg.exttype.user_preferences",
       &user_preferences);
-    ALOGI("%s:User Preferences: color_format %d"
+    ALOGV("%s:User Preferences: color_format %d"
       "thumbnail_color_format = %d encoder preference =%d\n", __func__,
       userpreferences.color_format,userpreferences.thumbnail_color_format,
       userpreferences.preference);
     OMX_SetParameter(pHandle,user_preferences,&userpreferences);
 
-    ALOGI("%s Thumbnail present? : %d ", __func__,
+    ALOGV("%s Thumbnail present? : %d ", __func__,
                  encode_params->hasThumbnail);
     if (encode_params->hasThumbnail) {
     OMX_GetExtensionIndex(pHandle, "omx.qcom.jpeg.exttype.thumbnail", &type);
@@ -652,7 +652,7 @@
     OMX_GetExtensionIndex(pHandle, "omx.qcom.jpeg.exttype.thumbnail_quality",
     &thumbnailQualityType);
 
-    ALOGI("%s: thumbnail quality %u %d",
+    ALOGV("%s: thumbnail quality %u %d",
       __func__, thumbnailQualityType, jpegThumbnailQuality);
     OMX_GetParameter(pHandle, thumbnailQualityType, &thumbnailQuality);
     thumbnailQuality.nQFactor = jpegThumbnailQuality;
@@ -660,7 +660,7 @@
     rotType.nPortIndex = OUTPUT_PORT;
     rotType.nRotation = jpegRotation;
     OMX_SetConfig(pHandle, OMX_IndexConfigCommonRotate, &rotType);
-    ALOGI("Set rotation to %d\n",jpegRotation);
+    ALOGV("Set rotation to %d\n",jpegRotation);
     OMX_GetExtensionIndex(pHandle, "omx.qcom.jpeg.exttype.exif", &exif);
 
     //Set omx parameter for all exif tags
@@ -673,14 +673,14 @@
     pmem_info.fd = encode_params->snapshot_fd;
     pmem_info.offset = 0;
 
-    ALOGI("input buffer size is %d",size);
+    ALOGV("input buffer size is %d",size);
     OMX_UseBuffer(pHandle, &pInBuffers, 0, &pmem_info, size,
     (void *) encode_params->snapshot_buf);
 
     pmem_info1.fd = encode_params->thumbnail_fd;
     pmem_info1.offset = 0;
 
-    ALOGI("%s: input1 buff size %d", __func__, inputPort1->nBufferSize);
+    ALOGV("%s: input1 buff size %d", __func__, inputPort1->nBufferSize);
     OMX_UseBuffer(pHandle, &pInBuffers1, 2, &pmem_info1,
       inputPort1->nBufferSize, (void *) encode_params->thumbnail_buf);
 
@@ -688,7 +688,7 @@
     OMX_UseBuffer(pHandle, &pOutBuffers, 1, NULL, size, (void *) out_buffer);
 
     waitForEvent(OMX_EventCmdComplete, OMX_CommandStateSet, OMX_StateIdle);
-    ALOGI("%s:State changed to OMX_StateIdle\n", __func__);
+    ALOGV("%s:State changed to OMX_StateIdle\n", __func__);
     OMX_SendCommand(pHandle, OMX_CommandStateSet, OMX_StateExecuting, NULL);
     waitForEvent(OMX_EventCmdComplete, OMX_CommandStateSet, OMX_StateExecuting);
 
@@ -696,14 +696,14 @@
     OMX_EmptyThisBuffer(pHandle, pInBuffers1);
     OMX_FillThisBuffer(pHandle, pOutBuffers);
     pthread_mutex_unlock(&jpege_mutex);
-    ALOGI("%s:X", __func__);
+    ALOGV("%s:X", __func__);
     return true;
 }
 
 void omxJpegFinish()
 {
     pthread_mutex_lock(&jpege_mutex);
-    ALOGI("%s:encoding=%d", __func__, encoding);
+    ALOGV("%s:encoding=%d", __func__, encoding);
     if (encoding) {
         encoding = 0;
         OMX_SendCommand(pHandle, OMX_CommandStateSet, OMX_StateIdle, NULL);
@@ -718,7 +718,7 @@
 
 void omxJpegClose()
 {
-    ALOGI("%s:", __func__);
+    ALOGV("%s:", __func__);
     dlclose(libmmstillomx);
 }
 
@@ -730,13 +730,13 @@
     user_data = NULL;
     pthread_mutex_unlock(&jpegcb_mutex);
     pthread_mutex_lock(&jpege_mutex);
-    ALOGI("%s: encoding=%d", __func__, encoding);
+    ALOGV("%s: encoding=%d", __func__, encoding);
     if (encoding) {
       encoding = 0;
       OMX_SendCommand(pHandle, OMX_CommandFlush, NULL, NULL);
-      ALOGI("%s:waitForEvent: OMX_CommandFlush", __func__);
+      ALOGV("%s:waitForEvent: OMX_CommandFlush", __func__);
       waitForEvent(OMX_EVENT_JPEG_ABORT, 0, 0);
-      ALOGI("%s:waitForEvent: OMX_CommandFlush: DONE", __func__);
+      ALOGV("%s:waitForEvent: OMX_CommandFlush: DONE", __func__);
       OMX_SendCommand(pHandle, OMX_CommandStateSet, OMX_StateIdle, NULL);
       OMX_SendCommand(pHandle, OMX_CommandStateSet, OMX_StateLoaded, NULL);
       OMX_FreeBuffer(pHandle, 0, pInBuffers);
@@ -751,7 +751,7 @@
 int8_t mm_jpeg_encoder_setMainImageQuality(uint32_t quality)
 {
     pthread_mutex_lock(&jpege_mutex);
-    ALOGI("%s: current main inage quality %d ," \
+    ALOGV("%s: current main inage quality %d ," \
     " new quality : %d\n", __func__, jpegMainimageQuality, quality);
     if (quality <= 100)
         jpegMainimageQuality = quality;
@@ -762,7 +762,7 @@
 int8_t mm_jpeg_encoder_setThumbnailQuality(uint32_t quality)
 {
     pthread_mutex_lock(&jpege_mutex);
-    ALOGI("%s: current thumbnail quality %d ," \
+    ALOGV("%s: current thumbnail quality %d ," \
     " new quality : %d\n", __func__, jpegThumbnailQuality, quality);
     if (quality <= 100)
         jpegThumbnailQuality = quality;
@@ -776,7 +776,7 @@
 
     /*Set ZSL Mode*/
     isZSLMode = isZSL;
-    ALOGI("%s: Setting ZSL Mode to %d Rotation = %d\n",__func__,isZSLMode,rotation);
+    ALOGV("%s: Setting ZSL Mode to %d Rotation = %d\n",__func__,isZSLMode,rotation);
     /* Set rotation configuration */
     switch (rotation) {
     case 0:
@@ -787,7 +787,7 @@
         break;
     default:
         /* Invalid rotation mode, set to default */
-        ALOGI("%s:Setting Default rotation mode", __func__);
+        ALOGV("%s:Setting Default rotation mode", __func__);
         jpegRotation = 0;
         break;
     }