diff options
-rw-r--r-- | libcopybit/copybit.cpp | 1 | ||||
-rw-r--r-- | libgralloc/alloc_controller.cpp | 8 | ||||
-rwxr-xr-x | libgralloc/gralloc_priv.h | 1 | ||||
-rw-r--r-- | libhwcomposer/hwc_dump_layers.cpp | 3 | ||||
-rw-r--r-- | liboverlay/overlayUtils.cpp | 4 | ||||
-rw-r--r-- | liboverlay/overlayUtils.h | 2 |
6 files changed, 19 insertions, 0 deletions
diff --git a/libcopybit/copybit.cpp b/libcopybit/copybit.cpp index 02f0c7e2..10f5943a 100644 --- a/libcopybit/copybit.cpp +++ b/libcopybit/copybit.cpp @@ -146,6 +146,7 @@ static int get_format(int format) { case HAL_PIXEL_FORMAT_YCbCr_420_SP: return MDP_Y_CBCR_H2V2; case HAL_PIXEL_FORMAT_YCrCb_420_SP_ADRENO: return MDP_Y_CBCR_H2V2_ADRENO; 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; } return -1; diff --git a/libgralloc/alloc_controller.cpp b/libgralloc/alloc_controller.cpp index 3e17061a..41a9707a 100644 --- a/libgralloc/alloc_controller.cpp +++ b/libgralloc/alloc_controller.cpp @@ -173,6 +173,10 @@ void AdrenoMemInfo::getAlignedWidthAndHeight(int width, int height, int format, aligned_w = VENUS_Y_STRIDE(COLOR_FMT_NV12, width); aligned_h = VENUS_Y_SCANLINES(COLOR_FMT_NV12, height); break; + case HAL_PIXEL_FORMAT_YCrCb_420_SP_VENUS: + aligned_w = VENUS_Y_STRIDE(COLOR_FMT_NV21, width); + aligned_h = VENUS_Y_SCANLINES(COLOR_FMT_NV21, height); + break; case HAL_PIXEL_FORMAT_BLOB: break; case HAL_PIXEL_FORMAT_NV21_ZSL: @@ -517,6 +521,9 @@ unsigned int getSize(int format, int width, int height, int usage, case HAL_PIXEL_FORMAT_NV12_ENCODEABLE: size = VENUS_BUFFER_SIZE(COLOR_FMT_NV12, width, height); break; + case HAL_PIXEL_FORMAT_YCrCb_420_SP_VENUS: + size = VENUS_BUFFER_SIZE(COLOR_FMT_NV21, width, height); + break; case HAL_PIXEL_FORMAT_BLOB: if(height != 1) { ALOGE("%s: Buffers with format HAL_PIXEL_FORMAT_BLOB \ @@ -680,6 +687,7 @@ int getYUVPlaneInfo(private_handle_t* hnd, struct android_ycbcr* ycbcr) case HAL_PIXEL_FORMAT_YCrCb_420_SP: case HAL_PIXEL_FORMAT_YCrCb_422_SP: case HAL_PIXEL_FORMAT_YCrCb_420_SP_ADRENO: + case HAL_PIXEL_FORMAT_YCrCb_420_SP_VENUS: case HAL_PIXEL_FORMAT_NV21_ZSL: case HAL_PIXEL_FORMAT_RAW_SENSOR: case HAL_PIXEL_FORMAT_RAW10: diff --git a/libgralloc/gralloc_priv.h b/libgralloc/gralloc_priv.h index 676c3bcb..a38c36c2 100755 --- a/libgralloc/gralloc_priv.h +++ b/libgralloc/gralloc_priv.h @@ -103,6 +103,7 @@ #define HAL_PIXEL_FORMAT_YCrCb_422_I 0x111 #define HAL_PIXEL_FORMAT_BGRX_8888 0x112 #define HAL_PIXEL_FORMAT_NV21_ZSL 0x113 +#define HAL_PIXEL_FORMAT_YCrCb_420_SP_VENUS 0x114 #define HAL_PIXEL_FORMAT_INTERLACE 0x180 //v4l2_fourcc('Y', 'U', 'Y', 'L'). 24 bpp YUYV 4:2:2 10 bit per component diff --git a/libhwcomposer/hwc_dump_layers.cpp b/libhwcomposer/hwc_dump_layers.cpp index aad984d0..fca8a5c7 100644 --- a/libhwcomposer/hwc_dump_layers.cpp +++ b/libhwcomposer/hwc_dump_layers.cpp @@ -448,6 +448,9 @@ void HwcDebug::getHalPixelFormatStr(int format, char pixFormatStr[]) case HAL_PIXEL_FORMAT_YCbCr_420_SP_VENUS: strlcpy(pixFormatStr, "YCbCr_420_SP_VENUS", sizeof(pixFormatStr)); break; + case HAL_PIXEL_FORMAT_YCrCb_420_SP_VENUS: + strlcpy(pixFormatStr, "YCrCb_420_SP_VENUS", sizeof(pixFormatStr)); + break; default: size_t len = sizeof(pixFormatStr); snprintf(pixFormatStr, len, "Unknown0x%X", format); diff --git a/liboverlay/overlayUtils.cpp b/liboverlay/overlayUtils.cpp index b37eba9e..d87bee60 100644 --- a/liboverlay/overlayUtils.cpp +++ b/liboverlay/overlayUtils.cpp @@ -128,6 +128,8 @@ int getMdpFormat(int format) { //NV12 encodeable format maps to the venus format on //B-Family targets return MDP_Y_CBCR_H2V2_VENUS; + case HAL_PIXEL_FORMAT_YCrCb_420_SP_VENUS: + return MDP_Y_CRCB_H2V2_VENUS; default: //Unsupported by MDP //---gralloc_priv.h----- @@ -227,6 +229,8 @@ int getHALFormat(int mdpFormat) { return HAL_PIXEL_FORMAT_YCrCb_444_SP; case MDP_Y_CBCR_H2V2_VENUS: return HAL_PIXEL_FORMAT_YCbCr_420_SP_VENUS; + case MDP_Y_CRCB_H2V2_VENUS: + return HAL_PIXEL_FORMAT_YCrCb_420_SP_VENUS; default: ALOGE("%s: Unsupported MDP format = 0x%x", __func__, mdpFormat); return -1; diff --git a/liboverlay/overlayUtils.h b/liboverlay/overlayUtils.h index 5e3bd1fb..17ec2683 100644 --- a/liboverlay/overlayUtils.h +++ b/liboverlay/overlayUtils.h @@ -420,6 +420,7 @@ inline bool isYuv(uint32_t format) { case MDP_Y_CR_CB_H2V2: case MDP_Y_CR_CB_GH2V2: case MDP_Y_CBCR_H2V2_VENUS: + case MDP_Y_CRCB_H2V2_VENUS: case MDP_YCBYCR_H2V1: case MDP_YCRYCB_H2V1: return true; @@ -478,6 +479,7 @@ inline const char* getFormatString(int format){ formats[MDP_BGR_565] = STR(MDP_BGR_565); formats[MDP_BGR_888] = STR(MDP_BGR_888); formats[MDP_Y_CBCR_H2V2_VENUS] = STR(MDP_Y_CBCR_H2V2_VENUS); + formats[MDP_Y_CRCB_H2V2_VENUS] = STR(MDP_Y_CRCB_H2V2_VENUS); formats[MDP_BGRX_8888] = STR(MDP_BGRX_8888); formats[MDP_RGBA_8888_TILE] = STR(MDP_RGBA_8888_TILE); formats[MDP_ARGB_8888_TILE] = STR(MDP_ARGB_8888_TILE); |