summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorST-Ericsson <void@stericsson.com>2012-08-20 17:20:39 +0200
committerPatrik Ryd <patrik.ryd@linaro.org>2012-09-19 13:54:43 +0200
commit0898fc2ab642c45613f531ce04afba482fc49769 (patch)
treea85f808e36cfca870e15d6e292ebb52f77257a5c
parent4b72377ba0ffcb3d2da4a919a6abe9a49af49f84 (diff)
downloadnative-linaro_android_4.1.1.tar.gz
Graphics: Add support for YUV bitmap formatslinaro_android_4.1.1
Support for the proprietary YCBCR42XMB and other YUV/YVU bitmap formats has been added to PixelFormat and CameraParameters. Change-Id: I88ed8153c2f1c4f772ef3496e1d4a637154ef420 Signed-off-by: Patrik Ryd <patrik.ryd@stericsson.com> Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/70893
-rw-r--r--include/ui/PixelFormat.h7
-rw-r--r--libs/gui/SurfaceTexture.cpp10
-rw-r--r--libs/ui/PixelFormat.cpp18
3 files changed, 35 insertions, 0 deletions
diff --git a/include/ui/PixelFormat.h b/include/ui/PixelFormat.h
index 9f3e267139..cfd6326b42 100644
--- a/include/ui/PixelFormat.h
+++ b/include/ui/PixelFormat.h
@@ -64,6 +64,13 @@ enum {
PIXEL_FORMAT_RGBA_5551 = HAL_PIXEL_FORMAT_RGBA_5551, // 16-bit ARGB
PIXEL_FORMAT_RGBA_4444 = HAL_PIXEL_FORMAT_RGBA_4444, // 16-bit ARGB
PIXEL_FORMAT_A_8 = 8, // 8-bit A
+#ifdef TARGET_BOARD_SNOWBALL
+ // Added Support for YUV42XMBN,
+ // Required for Copybit CC acceleration
+ PIXEL_FORMAT_YCBCR42XMBN = HAL_PIXEL_FORMAT_YCBCR42XMBN,
+ PIXEL_FORMAT_YCbCr_420_SP = HAL_PIXEL_FORMAT_YCbCr_420_SP,
+ PIXEL_FORMAT_YCbCr_420_P = HAL_PIXEL_FORMAT_YCbCr_420_P,
+#endif
};
typedef int32_t PixelFormat;
diff --git a/libs/gui/SurfaceTexture.cpp b/libs/gui/SurfaceTexture.cpp
index 8e006ae500..db3e6aca7c 100644
--- a/libs/gui/SurfaceTexture.cpp
+++ b/libs/gui/SurfaceTexture.cpp
@@ -503,8 +503,18 @@ bool SurfaceTexture::isExternalFormat(uint32_t format)
case HAL_PIXEL_FORMAT_YV12:
// Legacy/deprecated YUV formats
case HAL_PIXEL_FORMAT_YCbCr_422_SP:
+#ifdef TARGET_BOARD_SNOWBALL
+ case HAL_PIXEL_FORMAT_YCbCr_420_SP:
+#else
case HAL_PIXEL_FORMAT_YCrCb_420_SP:
+#endif
case HAL_PIXEL_FORMAT_YCbCr_422_I:
+#ifdef TARGET_BOARD_SNOWBALL
+ case HAL_PIXEL_FORMAT_YCrCb_422_SP:
+ case HAL_PIXEL_FORMAT_YCrCb_422_P:
+ case HAL_PIXEL_FORMAT_YCrCb_420_SP:
+ case HAL_PIXEL_FORMAT_YCrCb_420_P:
+#endif
return true;
}
diff --git a/libs/ui/PixelFormat.cpp b/libs/ui/PixelFormat.cpp
index 3ced41d164..4918b31561 100644
--- a/libs/ui/PixelFormat.cpp
+++ b/libs/ui/PixelFormat.cpp
@@ -100,11 +100,29 @@ status_t getPixelFormatInfo(PixelFormat format, PixelFormatInfo* info)
// YUV format from the HAL are handled here
switch (format) {
case HAL_PIXEL_FORMAT_YCbCr_422_SP:
+#ifdef TARGET_BOARD_SNOWBALL
+ case HAL_PIXEL_FORMAT_YCrCb_422_SP:
+ case HAL_PIXEL_FORMAT_YCbCr_422_P:
+#endif
case HAL_PIXEL_FORMAT_YCbCr_422_I:
+#ifdef TARGET_BOARD_SNOWBALL
+ case HAL_PIXEL_FORMAT_CbYCrY_422_I:
+#endif
info->bitsPerPixel = 16;
goto done;
+#ifdef TARGET_BOARD_SNOWBALL
+ case HAL_PIXEL_FORMAT_YCbCr_420_SP:
+#endif
case HAL_PIXEL_FORMAT_YCrCb_420_SP:
case HAL_PIXEL_FORMAT_YV12:
+#ifdef TARGET_BOARD_SNOWBALL
+ case HAL_PIXEL_FORMAT_YCbCr_420_SP_TILED:
+ case HAL_PIXEL_FORMAT_YCrCb_420_SP_TILED:
+ case HAL_PIXEL_FORMAT_YCbCr_420_P:
+ case HAL_PIXEL_FORMAT_YCbCr_420_I:
+ case HAL_PIXEL_FORMAT_CbYCrY_420_I:
+ case HAL_PIXEL_FORMAT_YCBCR42XMBN:
+#endif
info->bitsPerPixel = 12;
done:
info->format = format;