Merge "display: Add support for interleaved YUY2 and YUYV format."

This commit is contained in:
Linux Build Service Account
2013-09-27 15:17:38 -07:00
committed by Gerrit - the friendly Code Review server
6 changed files with 23 additions and 2 deletions

View File

@@ -129,6 +129,8 @@ static int get_format(int format) {
case HAL_PIXEL_FORMAT_RGB_888: return MDP_RGB_888;
case HAL_PIXEL_FORMAT_RGBA_8888: return MDP_RGBA_8888;
case HAL_PIXEL_FORMAT_BGRA_8888: return MDP_BGRA_8888;
case HAL_PIXEL_FORMAT_YCrCb_422_I: return MDP_YCRYCB_H2V1;
case HAL_PIXEL_FORMAT_YCbCr_422_I: return MDP_YCBYCR_H2V1;
case HAL_PIXEL_FORMAT_YCrCb_422_SP: return MDP_Y_CRCB_H2V1;
case HAL_PIXEL_FORMAT_YCrCb_420_SP: return MDP_Y_CRCB_H2V2;
case HAL_PIXEL_FORMAT_YCbCr_422_SP: return MDP_Y_CBCR_H2V1;

View File

@@ -152,6 +152,8 @@ int AdrenoMemInfo::getStride(int width, int format)
case HAL_PIXEL_FORMAT_YV12:
case HAL_PIXEL_FORMAT_YCbCr_422_SP:
case HAL_PIXEL_FORMAT_YCrCb_422_SP:
case HAL_PIXEL_FORMAT_YCbCr_422_I:
case HAL_PIXEL_FORMAT_YCrCb_422_I:
stride = ALIGN(width, 16);
break;
case HAL_PIXEL_FORMAT_YCbCr_420_SP_VENUS:
@@ -324,6 +326,8 @@ size_t getBufferSizeAndDimensions(int width, int height, int format,
break;
case HAL_PIXEL_FORMAT_YCbCr_422_SP:
case HAL_PIXEL_FORMAT_YCrCb_422_SP:
case HAL_PIXEL_FORMAT_YCbCr_422_I:
case HAL_PIXEL_FORMAT_YCrCb_422_I:
if(width & 1) {
ALOGE("width is odd for the YUV422_SP format");
return -EINVAL;

View File

@@ -100,6 +100,7 @@ enum {
HAL_PIXEL_FORMAT_RG_88 = 0x10E,
HAL_PIXEL_FORMAT_YCbCr_444_SP = 0x10F,
HAL_PIXEL_FORMAT_YCrCb_444_SP = 0x110,
HAL_PIXEL_FORMAT_YCrCb_422_I = 0x111,
HAL_PIXEL_FORMAT_INTERLACE = 0x180,
};

View File

@@ -400,6 +400,10 @@ void HwcDebug::getHalPixelFormatStr(int format, char pixFormatStr[])
case HAL_PIXEL_FORMAT_YCbCr_422_I:
strcpy(pixFormatStr, "YCbCr_422_I_YUY2");
break;
case HAL_PIXEL_FORMAT_YCrCb_422_I:
strlcpy(pixFormatStr, "YCrCb_422_I_YVYU",
sizeof("YCrCb_422_I_YVYU"));
break;
case HAL_PIXEL_FORMAT_NV12_ENCODEABLE:
strcpy(pixFormatStr, "NV12_ENCODEABLE");
break;

View File

@@ -114,6 +114,10 @@ int getMdpFormat(int format) {
return MDP_Y_CBCR_H2V2;
case HAL_PIXEL_FORMAT_YCrCb_422_SP:
return MDP_Y_CRCB_H2V1;
case HAL_PIXEL_FORMAT_YCbCr_422_I:
return MDP_YCBYCR_H2V1;
case HAL_PIXEL_FORMAT_YCrCb_422_I:
return MDP_YCRYCB_H2V1;
case HAL_PIXEL_FORMAT_YCbCr_444_SP:
return MDP_Y_CBCR_H1V1;
case HAL_PIXEL_FORMAT_YCrCb_444_SP:
@@ -128,7 +132,6 @@ int getMdpFormat(int format) {
//---graphics.h--------
//HAL_PIXEL_FORMAT_RGBA_5551
//HAL_PIXEL_FORMAT_RGBA_4444
//HAL_PIXEL_FORMAT_YCbCr_422_I
//---gralloc_priv.h-----
//HAL_PIXEL_FORMAT_YCrCb_420_SP_ADRENO = 0x7FA30C01
//HAL_PIXEL_FORMAT_R_8 = 0x10D
@@ -169,7 +172,11 @@ int getHALFormat(int mdpFormat) {
return HAL_PIXEL_FORMAT_YCbCr_420_SP;
case MDP_Y_CRCB_H2V1:
return HAL_PIXEL_FORMAT_YCrCb_422_SP;
case MDP_Y_CBCR_H1V1:
case MDP_YCBYCR_H2V1:
return HAL_PIXEL_FORMAT_YCbCr_422_I;
case MDP_YCRYCB_H2V1:
return HAL_PIXEL_FORMAT_YCrCb_422_I;
case MDP_Y_CBCR_H1V1:
return HAL_PIXEL_FORMAT_YCbCr_444_SP;
case MDP_Y_CRCB_H1V1:
return HAL_PIXEL_FORMAT_YCrCb_444_SP;

View File

@@ -488,6 +488,8 @@ 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_YCBYCR_H2V1:
case MDP_YCRYCB_H2V1:
return true;
default:
return false;
@@ -518,6 +520,7 @@ inline const char* getFormatString(int format){
formats[MDP_ARGB_8888] = STR(MDP_ARGB_8888);
formats[MDP_RGB_888] = STR(MDP_RGB_888);
formats[MDP_Y_CRCB_H2V2] = STR(MDP_Y_CRCB_H2V2);
formats[MDP_YCBYCR_H2V1] = STR(MDP_YCBYCR_H2V1);
formats[MDP_YCRYCB_H2V1] = STR(MDP_YCRYCB_H2V1);
formats[MDP_CBYCRY_H2V1] = STR(MDP_CBYCRY_H2V1);
formats[MDP_Y_CRCB_H2V1] = STR(MDP_Y_CRCB_H2V1);