diff options
author | ST-Ericsson <void@stericsson.com> | 2012-08-20 17:20:39 +0200 |
---|---|---|
committer | Patrik Ryd <patrik.ryd@linaro.org> | 2012-09-19 13:54:43 +0200 |
commit | 0898fc2ab642c45613f531ce04afba482fc49769 (patch) | |
tree | a85f808e36cfca870e15d6e292ebb52f77257a5c | |
parent | 4b72377ba0ffcb3d2da4a919a6abe9a49af49f84 (diff) | |
download | native-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.h | 7 | ||||
-rw-r--r-- | libs/gui/SurfaceTexture.cpp | 10 | ||||
-rw-r--r-- | libs/ui/PixelFormat.cpp | 18 |
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; |