camera_test: some fixes for resolving segfaults and adding glbce

Change-Id: I0ba8aa2ad585fee34b29863e71f7f672830802bf
Signed-off-by: Sundar Raman <sunds@ti.com>
diff --git a/test/CameraHal/camera_test.h b/test/CameraHal/camera_test.h
index 6ff8eb3..ad750ff 100644
--- a/test/CameraHal/camera_test.h
+++ b/test/CameraHal/camera_test.h
@@ -4,7 +4,8 @@
 #define PRINTOVER(arg...)     LOGD(#arg)
 #define LOG_FUNCTION_NAME         LOGD("%d: %s() ENTER", __LINE__, __FUNCTION__);
 #define LOG_FUNCTION_NAME_EXIT    LOGD("%d: %s() EXIT", __LINE__, __FUNCTION__);
-#define KEY_GBCE   "gbce"
+#define KEY_GBCE            "gbce"
+#define KEY_GLBCE           "glbce"
 #define KEY_CAMERA          "camera-index"
 #define KEY_SATURATION      "saturation"
 #define KEY_BRIGHTNESS      "brightness"
@@ -19,11 +20,7 @@
 #define KEY_VSTAB           "vstab"
 #define KEY_COMPENSATION    "exposure-compensation"
 
-#if defined(OMAP_ENHANCEMENT) && defined(TARGET_OMAP3)
-#define KEY_IPP             "ippMode"
-#else
 #define KEY_IPP             "ipp"
-#endif
 
 #define KEY_BUFF_STARV      "buff-starvation"
 #define KEY_METERING_MODE   "meter-mode"
diff --git a/test/CameraHal/camera_test_menu.cpp b/test/CameraHal/camera_test_menu.cpp
index 4680229..e365444 100644
--- a/test/CameraHal/camera_test_menu.cpp
+++ b/test/CameraHal/camera_test_menu.cpp
@@ -62,6 +62,7 @@
 int ManualConvergenceValuesIDX = 0;
 int ManualConvergenceDefaultValueIDX = 2;
 int gbceIDX = 0;
+int glbceIDX = 0;
 int rotation = 0;
 bool reSizePreview = true;
 bool hardwareActive = false;
@@ -1137,6 +1138,7 @@
     zoomIDX = 0;
     videoCodecIDX = 0;
     gbceIDX = 0;
+    glbceIDX = 0;
 #ifdef TARGET_OMAP4
     ///Temporary fix until OMAP3 and OMAP4 3A values are synced
     contrast = 90;
@@ -1169,6 +1171,7 @@
     params.set(KEY_CAF, caf_mode);
     params.set(KEY_ISO, iso_mode);
     params.set(KEY_GBCE, gbce[gbceIDX]);
+    params.set(KEY_GLBCE, gbce[glbceIDX]);
     params.set(KEY_SHARPNESS, sharpness);
     params.set(KEY_CONTRAST, contrast);
     params.set(CameraParameters::KEY_ZOOM, zoom[zoomIDX].idx);
@@ -1179,7 +1182,7 @@
     params.setPreviewFrameRate(frameRate[ARRAY_SIZE(frameRate) - 1].fps);
     params.set(params.KEY_ANTIBANDING, antibanding[antibanding_mode]);
     params.set(params.KEY_FOCUS_MODE, focus[focus_mode]);
-    params.set(KEY_IPP, ippIDX);
+    params.set(KEY_IPP, ipp_mode[ippIDX]);
     params.set(CameraParameters::KEY_JPEG_QUALITY, jpegQuality);
     params.setPreviewFormat(pixelformat[previewFormat].pixformat);
     params.setPictureFormat(codingformat[pictureFormat]);
@@ -1322,6 +1325,7 @@
         printf("   u. Capture Mode:   %s\n", capture[capture_mode]);
         printf("   k. IPP Mode:       %s\n", ipp_mode[ippIDX]);
         printf("   K. GBCE: %s\n", gbce[gbceIDX]);
+        printf("   O. GLBCE %s\n", gbce[glbceIDX]);
         printf("   o. Jpeg Quality:   %d\n", jpegQuality);
         printf("   #. Burst Images:  %3d\n", burst);
         printf("   :. Thumbnail Size:  %4d x %4d - %s\n",previewSize[thumbSizeIDX].width, previewSize[thumbSizeIDX].height, previewSize[thumbSizeIDX].desc);
@@ -1482,10 +1486,12 @@
         case '4':
             previewSizeIDX += 1;
             previewSizeIDX %= ARRAY_SIZE(previewSize);
-            if ( strcmp(params.get(KEY_STEREO_CAMERA), "false") == 0 ) {
-                params.setPreviewSize(previewSize[previewSizeIDX].width, previewSize[previewSizeIDX].height);
-            } else {
-                params.setPreviewSize(previewSize[previewSizeIDX].width, previewSize[previewSizeIDX].height*2);
+            if ( NULL != params.get(KEY_STEREO_CAMERA) ) {
+                if ( strcmp(params.get(KEY_STEREO_CAMERA), "false") == 0 ) {
+                    params.setPreviewSize(previewSize[previewSizeIDX].width, previewSize[previewSizeIDX].height);
+                } else {
+                    params.setPreviewSize(previewSize[previewSizeIDX].width, previewSize[previewSizeIDX].height*2);
+                }
             }
             reSizePreview = true;
 
@@ -1593,8 +1599,10 @@
             break;
         case '$':
             pictureFormat += 1;
-            if ( strcmp(params.get(KEY_STEREO_CAMERA), "false") == 0 && pictureFormat > 4 )
-                pictureFormat = 0;
+            if ( NULL != params.get(KEY_STEREO_CAMERA) ) {
+                if ( strcmp(params.get(KEY_STEREO_CAMERA), "false") == 0 && pictureFormat > 4 )
+                    pictureFormat = 0;
+            }
             pictureFormat %= ARRAY_SIZE(codingformat);
             params.setPictureFormat(codingformat[pictureFormat]);
             if ( hardwareActive )
@@ -1693,11 +1701,7 @@
             ippIDX %= ARRAY_SIZE(ipp_mode);
             ippIDX_old = ippIDX;
 
-#if defined(OMAP_ENHANCEMENT) && defined(TARGET_OMAP3)
             params.set(KEY_IPP, ipp_mode[ippIDX]);
-#else
-            params.set(KEY_IPP, ippIDX);
-#endif
 
             if ( hardwareActive )
                 camera->setParameters(params.flatten());
@@ -1713,6 +1717,15 @@
                 camera->setParameters(params.flatten());
             break;
 
+        case 'O':
+            glbceIDX+= 1;
+            glbceIDX %= ARRAY_SIZE(gbce);
+            params.set(KEY_GLBCE, gbce[glbceIDX]);
+
+            if ( hardwareActive )
+                camera->setParameters(params.flatten());
+            break;
+
         case 'F':
             if ( hardwareActive )
                 camera->sendCommand(CAMERA_CMD_START_FACE_DETECTION, 0, 0);
diff --git a/test/CameraHal/camera_test_script.cpp b/test/CameraHal/camera_test_script.cpp
index c6b1cde..a0b8ade 100644
--- a/test/CameraHal/camera_test_script.cpp
+++ b/test/CameraHal/camera_test_script.cpp
@@ -293,9 +293,12 @@
                     height = atoi(res);
                 }
 
-                if ( strcmp(params.get(KEY_STEREO_CAMERA), "true") == 0 ) {
-                    height *=2;
+                if ( NULL != params.get(KEY_STEREO_CAMERA) ) {
+                    if ( strcmp(params.get(KEY_STEREO_CAMERA), "true") == 0 ) {
+                        height *=2;
+                    }
                 }
+
                 printf("Resolution: %d x %d\n", width, height);
                 params.setPreviewSize(width, height);
                 reSizePreview = true;
@@ -588,6 +591,11 @@
                 if ( hardwareActive )
                     camera->sendCommand(CAMERA_CMD_STOP_FACE_DETECTION, 0, 0);
 
+            case 'O':
+                params.set(KEY_GLBCE, (cmd+1));
+                if ( hardwareActive )
+                    camera->setParameters(params.flatten());
+
                 break;
 
             case 'u':