diff options
-rw-r--r-- | libcopybit/copybit.cpp | 2 | ||||
-rw-r--r-- | libgralloc/alloc_controller.cpp | 13 | ||||
-rw-r--r-- | libgralloc/gralloc_priv.h | 2 | ||||
-rw-r--r-- | sdm/include/core/layer_buffer.h | 1 | ||||
-rw-r--r-- | sdm/libs/core/fb/hw_device.cpp | 2 | ||||
-rw-r--r-- | sdm/libs/hwc/hwc_buffer_allocator.cpp | 1 | ||||
-rw-r--r-- | sdm/libs/hwc/hwc_display.cpp | 1 | ||||
-rw-r--r-- | sdm/libs/utils/formats.cpp | 1 |
8 files changed, 23 insertions, 0 deletions
diff --git a/libcopybit/copybit.cpp b/libcopybit/copybit.cpp index 10f5943a..80b3cfe6 100644 --- a/libcopybit/copybit.cpp +++ b/libcopybit/copybit.cpp @@ -148,6 +148,8 @@ static int get_format(int format) { case HAL_PIXEL_FORMAT_YCbCr_420_SP_VENUS: return MDP_Y_CBCR_H2V2_VENUS; case HAL_PIXEL_FORMAT_YCrCb_420_SP_VENUS: return MDP_Y_CRCB_H2V2_VENUS; case HAL_PIXEL_FORMAT_NV12_ENCODEABLE: return MDP_Y_CBCR_H2V2; + case HAL_PIXEL_FORMAT_CbYCrY_422_I: return MDP_CBYCRY_H2V1; + case HAL_PIXEL_FORMAT_BGR_888: return MDP_BGR_888; } return -1; } diff --git a/libgralloc/alloc_controller.cpp b/libgralloc/alloc_controller.cpp index 583767a7..cb57e9c2 100644 --- a/libgralloc/alloc_controller.cpp +++ b/libgralloc/alloc_controller.cpp @@ -217,6 +217,7 @@ bool isUncompressedRgbFormat(int format) case HAL_PIXEL_FORMAT_R_8: case HAL_PIXEL_FORMAT_RG_88: case HAL_PIXEL_FORMAT_BGRX_8888: + case HAL_PIXEL_FORMAT_BGR_888: case HAL_PIXEL_FORMAT_RGBA_1010102: case HAL_PIXEL_FORMAT_ARGB_2101010: case HAL_PIXEL_FORMAT_RGBX_1010102: @@ -276,6 +277,7 @@ void AdrenoMemInfo::getAlignedWidthAndHeight(int width, int height, int format, case HAL_PIXEL_FORMAT_YCbCr_422_I: case HAL_PIXEL_FORMAT_YCrCb_422_I: case HAL_PIXEL_FORMAT_YCbCr_420_P010: + case HAL_PIXEL_FORMAT_CbYCrY_422_I: aligned_w = ALIGN(width, 16); break; case HAL_PIXEL_FORMAT_YCbCr_420_SP_VENUS: @@ -639,6 +641,7 @@ unsigned int getSize(int format, int width, int height, int usage, case HAL_PIXEL_FORMAT_YCrCb_422_SP: case HAL_PIXEL_FORMAT_YCbCr_422_I: case HAL_PIXEL_FORMAT_YCrCb_422_I: + case HAL_PIXEL_FORMAT_CbYCrY_422_I: if(width & 1) { ALOGE("width is odd for the YUV422_SP format"); return 0; @@ -873,6 +876,16 @@ int getYUVPlaneInfo(private_handle_t* hnd, struct android_ycbcr* ycbcr) ycbcr->cstride = cstride; ycbcr->chroma_step = 1; break; + case HAL_PIXEL_FORMAT_CbYCrY_422_I: + ystride = width * 2; + cstride = 0; + ycbcr->y = (void*)hnd->base; + ycbcr->cr = NULL; + ycbcr->cb = NULL; + ycbcr->ystride = ystride; + ycbcr->cstride = 0; + ycbcr->chroma_step = 0; + break; //Unsupported formats case HAL_PIXEL_FORMAT_YCbCr_422_I: case HAL_PIXEL_FORMAT_YCrCb_422_I: diff --git a/libgralloc/gralloc_priv.h b/libgralloc/gralloc_priv.h index 738b63ff..5797546a 100644 --- a/libgralloc/gralloc_priv.h +++ b/libgralloc/gralloc_priv.h @@ -118,6 +118,8 @@ #define HAL_PIXEL_FORMAT_BGRX_1010102 0x11C #define HAL_PIXEL_FORMAT_XBGR_2101010 0x11D #define HAL_PIXEL_FORMAT_YCbCr_420_P010 0x11F +#define HAL_PIXEL_FORMAT_CbYCrY_422_I 0x120 +#define HAL_PIXEL_FORMAT_BGR_888 0x121 #define HAL_PIXEL_FORMAT_INTERLACE 0x180 diff --git a/sdm/include/core/layer_buffer.h b/sdm/include/core/layer_buffer.h index 4b42e7b0..0a8a4734 100644 --- a/sdm/include/core/layer_buffer.h +++ b/sdm/include/core/layer_buffer.h @@ -149,6 +149,7 @@ enum LayerBufferFormat { //!< y(0), u(0), y(1), v(0), y(2), u(2), y(3), v(2) //!< y(n-1), u(n-1), y(n), v(n-1) + kFormatCbYCrY422H2V1Packed, kFormatInvalid = 0xFFFFFFFF, }; diff --git a/sdm/libs/core/fb/hw_device.cpp b/sdm/libs/core/fb/hw_device.cpp index f6c9ae0f..7d97d528 100644 --- a/sdm/libs/core/fb/hw_device.cpp +++ b/sdm/libs/core/fb/hw_device.cpp @@ -613,6 +613,7 @@ DisplayError HWDevice::SetFormat(const LayerBufferFormat &source, uint32_t *targ case kFormatRGBX8888Ubwc: *target = MDP_RGBX_8888_UBWC; break; case kFormatBGR565Ubwc: *target = MDP_RGB_565_UBWC; break; case kFormatYCbCr420SPVenusUbwc: *target = MDP_Y_CBCR_H2V2_UBWC; break; + case kFormatCbYCrY422H2V1Packed: *target = MDP_CBYCRY_H2V1; break; case kFormatRGBA1010102: *target = MDP_RGBA_1010102; break; case kFormatARGB2101010: *target = MDP_ARGB_2101010; break; case kFormatRGBX1010102: *target = MDP_RGBX_1010102; break; @@ -683,6 +684,7 @@ DisplayError HWDevice::SetStride(HWDeviceType device_type, LayerBufferFormat for *target = width; break; case kFormatYCbCr422H2V1Packed: + case kFormatCbYCrY422H2V1Packed: case kFormatYCrCb422H2V1SemiPlanar: case kFormatYCrCb422H1V2SemiPlanar: case kFormatYCbCr422H2V1SemiPlanar: diff --git a/sdm/libs/hwc/hwc_buffer_allocator.cpp b/sdm/libs/hwc/hwc_buffer_allocator.cpp index bda316f6..7e32d65b 100644 --- a/sdm/libs/hwc/hwc_buffer_allocator.cpp +++ b/sdm/libs/hwc/hwc_buffer_allocator.cpp @@ -211,6 +211,7 @@ int HWCBufferAllocator::SetBufferInfo(LayerBufferFormat format, int *target, int case kFormatYCrCb420SemiPlanar: *target = HAL_PIXEL_FORMAT_YCrCb_420_SP; break; case kFormatYCbCr420SemiPlanar: *target = HAL_PIXEL_FORMAT_YCbCr_420_SP; break; case kFormatYCbCr422H2V1Packed: *target = HAL_PIXEL_FORMAT_YCbCr_422_I; break; + case kFormatCbYCrY422H2V1Packed: *target = HAL_PIXEL_FORMAT_CbYCrY_422_I; break; case kFormatYCbCr422H2V1SemiPlanar: *target = HAL_PIXEL_FORMAT_YCbCr_422_SP; break; case kFormatYCbCr420SemiPlanarVenus: *target = HAL_PIXEL_FORMAT_YCbCr_420_SP_VENUS; break; case kFormatYCrCb420SemiPlanarVenus: *target = HAL_PIXEL_FORMAT_YCrCb_420_SP_VENUS; break; diff --git a/sdm/libs/hwc/hwc_display.cpp b/sdm/libs/hwc/hwc_display.cpp index a87706c3..83230a3d 100644 --- a/sdm/libs/hwc/hwc_display.cpp +++ b/sdm/libs/hwc/hwc_display.cpp @@ -991,6 +991,7 @@ LayerBufferFormat HWCDisplay::GetSDMFormat(const int32_t &source, const int flag case HAL_PIXEL_FORMAT_YCbCr_420_SP: format = kFormatYCbCr420SemiPlanar; break; case HAL_PIXEL_FORMAT_YCbCr_422_SP: format = kFormatYCbCr422H2V1SemiPlanar; break; case HAL_PIXEL_FORMAT_YCbCr_422_I: format = kFormatYCbCr422H2V1Packed; break; + case HAL_PIXEL_FORMAT_CbYCrY_422_I: format = kFormatCbYCrY422H2V1Packed; break; case HAL_PIXEL_FORMAT_RGBA_1010102: format = kFormatRGBA1010102; break; case HAL_PIXEL_FORMAT_ARGB_2101010: format = kFormatARGB2101010; break; case HAL_PIXEL_FORMAT_RGBX_1010102: format = kFormatRGBX1010102; break; diff --git a/sdm/libs/utils/formats.cpp b/sdm/libs/utils/formats.cpp index 8e9d0b80..43abb631 100644 --- a/sdm/libs/utils/formats.cpp +++ b/sdm/libs/utils/formats.cpp @@ -98,6 +98,7 @@ const char *GetFormatString(const LayerBufferFormat &format) { case kFormatYCrCb422H2V1SemiPlanar: return "Y_CRCB_422_H2V2"; case kFormatYCbCr420SPVenusUbwc: return "Y_CBCR_420_VENUS_UBWC"; case kFormatYCbCr422H2V1Packed: return "YCBYCR_422_H2V1"; + case kFormatCbYCrY422H2V1Packed: return "CBYCRY_422_H2V1"; case kFormatRGBA1010102: return "RGBA_1010102"; case kFormatARGB2101010: return "ARGB_2101010"; case kFormatRGBX1010102: return "RGBX_1010102"; |