From d68392bec3edfd02bc24f8be35d84acbbd62f02c Mon Sep 17 00:00:00 2001 From: Emilian Peev Date: Tue, 4 Sep 2012 12:09:17 +0300 Subject: CameraHal: Add support for UYVY reprocessing NOTE: Currently UYVY is mapped to 'CameraParameters::PIXEL_FORMAT_YUV422I' which is not entirely correct. The Google pixelformat expects YUYV ordering of the components. Change-Id: Ia82e08363d6804e51c447eb845da2ca23fc29ae9 Signed-off-by: Emilian Peev Signed-off-by: Vladimir Petrov --- camera/BufferSourceAdapter.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'camera/BufferSourceAdapter.cpp') diff --git a/camera/BufferSourceAdapter.cpp b/camera/BufferSourceAdapter.cpp index a595b4b..97a7809 100644 --- a/camera/BufferSourceAdapter.cpp +++ b/camera/BufferSourceAdapter.cpp @@ -31,8 +31,7 @@ static int getANWFormat(const char* parameters_format) if (parameters_format != NULL) { if (strcmp(parameters_format, android::CameraParameters::PIXEL_FORMAT_YUV422I) == 0) { CAMHAL_LOGDA("CbYCrY format selected"); - // TODO(XXX): not defined yet - format = -1; + format = HAL_PIXEL_FORMAT_TI_UYVY; } else if (strcmp(parameters_format, android::CameraParameters::PIXEL_FORMAT_YUV420SP) == 0) { CAMHAL_LOGDA("YUV420SP format selected"); format = HAL_PIXEL_FORMAT_TI_NV12; @@ -78,6 +77,8 @@ static const char* getFormatFromANW(int format) return android::CameraParameters::PIXEL_FORMAT_YUV420SP; case HAL_PIXEL_FORMAT_TI_Y16: return android::CameraParameters::PIXEL_FORMAT_BAYER_RGGB; + case HAL_PIXEL_FORMAT_TI_UYVY: + return android::CameraParameters::PIXEL_FORMAT_YUV422I; default: break; } @@ -88,6 +89,7 @@ static CameraFrame::FrameType formatToOutputFrameType(const char* format) { switch (getANWFormat(format)) { case HAL_PIXEL_FORMAT_TI_NV12: case HAL_PIXEL_FORMAT_TI_Y16: + case HAL_PIXEL_FORMAT_TI_UYVY: // Assuming NV12 1D is RAW or Image frame return CameraFrame::RAW_FRAME; default: @@ -102,6 +104,7 @@ static int getHeightFromFormat(const char* format, int stride, int size) { case HAL_PIXEL_FORMAT_TI_NV12: return (size / (3 * stride)) * 2; case HAL_PIXEL_FORMAT_TI_Y16: + case HAL_PIXEL_FORMAT_TI_UYVY: return (size / stride) / 2; default: break; -- cgit v1.2.3