hwc: Add support for YCrCb_420_SP_VENUS(NV21_VENUS)
* Earlier, camera preview buffers were of NV21(YCrCb_420_SP) and the video buffers were of NV12_VENUS(YCbCr_420_SP_VENUS) format. Now that the video encoder has support for NV21, both the camera and video buffers can be of NV21_VENUS(YCrCb_420_SP_VENUS) format. * If the preview and video buffer sizes are the same, CPP double pass to generate video and preview buffers can be avoided and the buffers can now be generated within a single pass with CPP duplication thereby saving power. * Add support in gralloc for NV12_VENUS format to achieve the same. Change-Id: I7001f975f2cafa21c893e7384ddbddd5f2788b1d
This commit is contained in:
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user