Merge "sdm: Add support for new pixel formats in HAL"
This commit is contained in:
committed by
Gerrit - the friendly Code Review server
commit
b89af0f155
@@ -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_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_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_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;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -197,6 +197,7 @@ bool isUncompressedRgbFormat(int format)
|
|||||||
case HAL_PIXEL_FORMAT_R_8:
|
case HAL_PIXEL_FORMAT_R_8:
|
||||||
case HAL_PIXEL_FORMAT_RG_88:
|
case HAL_PIXEL_FORMAT_RG_88:
|
||||||
case HAL_PIXEL_FORMAT_BGRX_8888:
|
case HAL_PIXEL_FORMAT_BGRX_8888:
|
||||||
|
case HAL_PIXEL_FORMAT_BGR_888:
|
||||||
case HAL_PIXEL_FORMAT_RGBA_1010102:
|
case HAL_PIXEL_FORMAT_RGBA_1010102:
|
||||||
case HAL_PIXEL_FORMAT_ARGB_2101010:
|
case HAL_PIXEL_FORMAT_ARGB_2101010:
|
||||||
case HAL_PIXEL_FORMAT_RGBX_1010102:
|
case HAL_PIXEL_FORMAT_RGBX_1010102:
|
||||||
@@ -256,6 +257,7 @@ void AdrenoMemInfo::getAlignedWidthAndHeight(int width, int height, int format,
|
|||||||
case HAL_PIXEL_FORMAT_YCbCr_422_I:
|
case HAL_PIXEL_FORMAT_YCbCr_422_I:
|
||||||
case HAL_PIXEL_FORMAT_YCrCb_422_I:
|
case HAL_PIXEL_FORMAT_YCrCb_422_I:
|
||||||
case HAL_PIXEL_FORMAT_YCbCr_420_P010:
|
case HAL_PIXEL_FORMAT_YCbCr_420_P010:
|
||||||
|
case HAL_PIXEL_FORMAT_CbYCrY_422_I:
|
||||||
aligned_w = ALIGN(width, 16);
|
aligned_w = ALIGN(width, 16);
|
||||||
break;
|
break;
|
||||||
case HAL_PIXEL_FORMAT_YCbCr_420_SP_VENUS:
|
case HAL_PIXEL_FORMAT_YCbCr_420_SP_VENUS:
|
||||||
@@ -587,6 +589,7 @@ unsigned int getSize(int format, int width, int height, int usage,
|
|||||||
case HAL_PIXEL_FORMAT_YCrCb_422_SP:
|
case HAL_PIXEL_FORMAT_YCrCb_422_SP:
|
||||||
case HAL_PIXEL_FORMAT_YCbCr_422_I:
|
case HAL_PIXEL_FORMAT_YCbCr_422_I:
|
||||||
case HAL_PIXEL_FORMAT_YCrCb_422_I:
|
case HAL_PIXEL_FORMAT_YCrCb_422_I:
|
||||||
|
case HAL_PIXEL_FORMAT_CbYCrY_422_I:
|
||||||
if(width & 1) {
|
if(width & 1) {
|
||||||
ALOGE("width is odd for the YUV422_SP format");
|
ALOGE("width is odd for the YUV422_SP format");
|
||||||
return 0;
|
return 0;
|
||||||
@@ -807,6 +810,16 @@ int getYUVPlaneInfo(private_handle_t* hnd, struct android_ycbcr* ycbcr)
|
|||||||
ycbcr->cstride = cstride;
|
ycbcr->cstride = cstride;
|
||||||
ycbcr->chroma_step = 1;
|
ycbcr->chroma_step = 1;
|
||||||
break;
|
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
|
//Unsupported formats
|
||||||
case HAL_PIXEL_FORMAT_YCbCr_422_I:
|
case HAL_PIXEL_FORMAT_YCbCr_422_I:
|
||||||
case HAL_PIXEL_FORMAT_YCrCb_422_I:
|
case HAL_PIXEL_FORMAT_YCrCb_422_I:
|
||||||
|
|||||||
@@ -118,6 +118,8 @@
|
|||||||
#define HAL_PIXEL_FORMAT_BGRX_1010102 0x11C
|
#define HAL_PIXEL_FORMAT_BGRX_1010102 0x11C
|
||||||
#define HAL_PIXEL_FORMAT_XBGR_2101010 0x11D
|
#define HAL_PIXEL_FORMAT_XBGR_2101010 0x11D
|
||||||
#define HAL_PIXEL_FORMAT_YCbCr_420_P010 0x11F
|
#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
|
#define HAL_PIXEL_FORMAT_INTERLACE 0x180
|
||||||
|
|
||||||
|
|||||||
@@ -149,6 +149,7 @@ enum LayerBufferFormat {
|
|||||||
//!< y(0), u(0), y(1), v(0), y(2), u(2), y(3), v(2)
|
//!< 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)
|
//!< y(n-1), u(n-1), y(n), v(n-1)
|
||||||
|
|
||||||
|
kFormatCbYCrY422H2V1Packed,
|
||||||
kFormatInvalid = 0xFFFFFFFF,
|
kFormatInvalid = 0xFFFFFFFF,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -613,6 +613,7 @@ DisplayError HWDevice::SetFormat(const LayerBufferFormat &source, uint32_t *targ
|
|||||||
case kFormatRGBX8888Ubwc: *target = MDP_RGBX_8888_UBWC; break;
|
case kFormatRGBX8888Ubwc: *target = MDP_RGBX_8888_UBWC; break;
|
||||||
case kFormatBGR565Ubwc: *target = MDP_RGB_565_UBWC; break;
|
case kFormatBGR565Ubwc: *target = MDP_RGB_565_UBWC; break;
|
||||||
case kFormatYCbCr420SPVenusUbwc: *target = MDP_Y_CBCR_H2V2_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 kFormatRGBA1010102: *target = MDP_RGBA_1010102; break;
|
||||||
case kFormatARGB2101010: *target = MDP_ARGB_2101010; break;
|
case kFormatARGB2101010: *target = MDP_ARGB_2101010; break;
|
||||||
case kFormatRGBX1010102: *target = MDP_RGBX_1010102; break;
|
case kFormatRGBX1010102: *target = MDP_RGBX_1010102; break;
|
||||||
@@ -683,6 +684,7 @@ DisplayError HWDevice::SetStride(HWDeviceType device_type, LayerBufferFormat for
|
|||||||
*target = width;
|
*target = width;
|
||||||
break;
|
break;
|
||||||
case kFormatYCbCr422H2V1Packed:
|
case kFormatYCbCr422H2V1Packed:
|
||||||
|
case kFormatCbYCrY422H2V1Packed:
|
||||||
case kFormatYCrCb422H2V1SemiPlanar:
|
case kFormatYCrCb422H2V1SemiPlanar:
|
||||||
case kFormatYCrCb422H1V2SemiPlanar:
|
case kFormatYCrCb422H1V2SemiPlanar:
|
||||||
case kFormatYCbCr422H2V1SemiPlanar:
|
case kFormatYCbCr422H2V1SemiPlanar:
|
||||||
|
|||||||
@@ -211,6 +211,7 @@ int HWCBufferAllocator::SetBufferInfo(LayerBufferFormat format, int *target, int
|
|||||||
case kFormatYCrCb420SemiPlanar: *target = HAL_PIXEL_FORMAT_YCrCb_420_SP; break;
|
case kFormatYCrCb420SemiPlanar: *target = HAL_PIXEL_FORMAT_YCrCb_420_SP; break;
|
||||||
case kFormatYCbCr420SemiPlanar: *target = HAL_PIXEL_FORMAT_YCbCr_420_SP; break;
|
case kFormatYCbCr420SemiPlanar: *target = HAL_PIXEL_FORMAT_YCbCr_420_SP; break;
|
||||||
case kFormatYCbCr422H2V1Packed: *target = HAL_PIXEL_FORMAT_YCbCr_422_I; 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 kFormatYCbCr422H2V1SemiPlanar: *target = HAL_PIXEL_FORMAT_YCbCr_422_SP; break;
|
||||||
case kFormatYCbCr420SemiPlanarVenus: *target = HAL_PIXEL_FORMAT_YCbCr_420_SP_VENUS; break;
|
case kFormatYCbCr420SemiPlanarVenus: *target = HAL_PIXEL_FORMAT_YCbCr_420_SP_VENUS; break;
|
||||||
case kFormatYCrCb420SemiPlanarVenus: *target = HAL_PIXEL_FORMAT_YCrCb_420_SP_VENUS; break;
|
case kFormatYCrCb420SemiPlanarVenus: *target = HAL_PIXEL_FORMAT_YCrCb_420_SP_VENUS; break;
|
||||||
|
|||||||
@@ -1014,6 +1014,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_420_SP: format = kFormatYCbCr420SemiPlanar; break;
|
||||||
case HAL_PIXEL_FORMAT_YCbCr_422_SP: format = kFormatYCbCr422H2V1SemiPlanar; 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_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_RGBA_1010102: format = kFormatRGBA1010102; break;
|
||||||
case HAL_PIXEL_FORMAT_ARGB_2101010: format = kFormatARGB2101010; break;
|
case HAL_PIXEL_FORMAT_ARGB_2101010: format = kFormatARGB2101010; break;
|
||||||
case HAL_PIXEL_FORMAT_RGBX_1010102: format = kFormatRGBX1010102; break;
|
case HAL_PIXEL_FORMAT_RGBX_1010102: format = kFormatRGBX1010102; break;
|
||||||
|
|||||||
@@ -98,6 +98,7 @@ const char *GetFormatString(const LayerBufferFormat &format) {
|
|||||||
case kFormatYCrCb422H2V1SemiPlanar: return "Y_CRCB_422_H2V2";
|
case kFormatYCrCb422H2V1SemiPlanar: return "Y_CRCB_422_H2V2";
|
||||||
case kFormatYCbCr420SPVenusUbwc: return "Y_CBCR_420_VENUS_UBWC";
|
case kFormatYCbCr420SPVenusUbwc: return "Y_CBCR_420_VENUS_UBWC";
|
||||||
case kFormatYCbCr422H2V1Packed: return "YCBYCR_422_H2V1";
|
case kFormatYCbCr422H2V1Packed: return "YCBYCR_422_H2V1";
|
||||||
|
case kFormatCbYCrY422H2V1Packed: return "CBYCRY_422_H2V1";
|
||||||
case kFormatRGBA1010102: return "RGBA_1010102";
|
case kFormatRGBA1010102: return "RGBA_1010102";
|
||||||
case kFormatARGB2101010: return "ARGB_2101010";
|
case kFormatARGB2101010: return "ARGB_2101010";
|
||||||
case kFormatRGBX1010102: return "RGBX_1010102";
|
case kFormatRGBX1010102: return "RGBX_1010102";
|
||||||
|
|||||||
Reference in New Issue
Block a user