merge in jb-release history after reset to jb-dev
diff --git a/camera/AppCallbackNotifier.cpp b/camera/AppCallbackNotifier.cpp
index 63ed000..678b719 100644
--- a/camera/AppCallbackNotifier.cpp
+++ b/camera/AppCallbackNotifier.cpp
@@ -473,6 +473,49 @@
     if (pixelFormat!=NULL) {
         if (strcmp(pixelFormat, CameraParameters::PIXEL_FORMAT_YUV422I) == 0) {
             bytesPerPixel = 2;
+            bufferSrc = ( unsigned char * ) y_uv[0] + offset;
+            uint32_t xOff = offset % stride;
+            uint32_t yOff = offset / stride;
+            uint8_t *bufferSrcUV = ((uint8_t*)y_uv[1] + (stride/2)*yOff + xOff);
+            uint8_t *bufferSrcUVEven = bufferSrcUV;
+
+            uint8_t *bufferDstY = ( uint8_t * ) dst;
+            uint8_t *bufferDstU = bufferDstY + 1;
+            uint8_t *bufferDstV = bufferDstY + 3;
+
+            // going to convert from NV12 here and return
+            for ( int i = 0 ; i < height; i ++ ) {
+                for ( int j = 0 ; j < width / 2 ; j++ ) {
+
+                    // Y
+                    *bufferDstY = *bufferSrc;
+                    bufferSrc++;
+                    bufferDstY += 2;
+
+                    *bufferDstY = *bufferSrc;
+                    bufferSrc++;
+                    bufferDstY += 2;
+
+                    // V
+                    *bufferDstV = *(bufferSrcUV + 1);
+                    bufferDstV += 4;
+
+                    // U
+                    *bufferDstU = *bufferSrcUV;
+                    bufferDstU += 4;
+
+                    bufferSrcUV += 2;
+                }
+                if ( i % 2 ) {
+                    bufferSrcUV += ( stride - width);
+                    bufferSrcUVEven = bufferSrcUV;
+                } else {
+                    bufferSrcUV = bufferSrcUVEven;
+                }
+                bufferSrc += ( stride - width);
+            }
+
+            return;
         } else if (strcmp(pixelFormat, CameraParameters::PIXEL_FORMAT_YUV420SP) == 0 ||
                    strcmp(pixelFormat, CameraParameters::PIXEL_FORMAT_YUV420P) == 0) {
             bytesPerPixel = 1;
diff --git a/camera/OMXCameraAdapter/OMXCameraAdapter.cpp b/camera/OMXCameraAdapter/OMXCameraAdapter.cpp
index b3fcf67..180b441 100755
--- a/camera/OMXCameraAdapter/OMXCameraAdapter.cpp
+++ b/camera/OMXCameraAdapter/OMXCameraAdapter.cpp
@@ -429,13 +429,9 @@
     ///@todo Include more camera parameters
     if ( (valstr = params.getPreviewFormat()) != NULL )
         {
-        if (strcmp(valstr, (const char *) CameraParameters::PIXEL_FORMAT_YUV422I) == 0)
-            {
-            CAMHAL_LOGDA("CbYCrY format selected");
-            pixFormat = OMX_COLOR_FormatCbYCrY;
-            }
-        else if(strcmp(valstr, (const char *) CameraParameters::PIXEL_FORMAT_YUV420SP) == 0 ||
-                strcmp(valstr, (const char *) CameraParameters::PIXEL_FORMAT_YUV420P) == 0)
+        if(strcmp(valstr, (const char *) CameraParameters::PIXEL_FORMAT_YUV420SP) == 0 ||
+           strcmp(valstr, (const char *) CameraParameters::PIXEL_FORMAT_YUV420P) == 0 ||
+           strcmp(valstr, (const char *) CameraParameters::PIXEL_FORMAT_YUV422I) == 0)
             {
             CAMHAL_LOGDA("YUV420SP format selected");
             pixFormat = OMX_COLOR_FormatYUV420SemiPlanar;