diff options
author | ST-Ericsson <void@stericsson.com> | 2012-08-20 17:20:39 +0200 |
---|---|---|
committer | Bernhard Rosenkraenzer <Bernhard.Rosenkranzer@linaro.org> | 2012-12-01 01:14:19 +0100 |
commit | ce8c6c683f9d3f8e5e3840a46c6a9c88d014fa53 (patch) | |
tree | 20e955005cc2e62cb182a41565a1537fe779b4fc | |
parent | 8adc040180836ef1e133ba25cf54888be9aa8d48 (diff) | |
download | native-ce8c6c683f9d3f8e5e3840a46c6a9c88d014fa53.tar.gz |
Graphics: Add support for YUV bitmap formats
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 1163a636e7..0e4966c7c8 100644 --- a/libs/gui/SurfaceTexture.cpp +++ b/libs/gui/SurfaceTexture.cpp @@ -533,8 +533,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; |