display: Add support to HAL_PIXEL_FORMAT_NV21_ZSL format
Add Support to HAL_PIXEL_FORMAT_NV21_ZSL format in gralloc for camera capture usecase. This support is required because, CPP module requires 64 byte aligned width and height to resolve corruption in bottom/left edge of the landscape/portrait buffer. Change-Id: Id3e0e5f3d695d5111f3469f78a1d52aad9bea4f4 (cherry picked from commit 512ee1dcef6fa47dfdcf3990fea29bd85f967f02)
This commit is contained in:
committed by
Arun Kumar K.R
parent
62e1d731cd
commit
ff511027c4
@@ -161,6 +161,9 @@ int AdrenoMemInfo::getStride(int width, int format)
|
|||||||
case HAL_PIXEL_FORMAT_BLOB:
|
case HAL_PIXEL_FORMAT_BLOB:
|
||||||
stride = width;
|
stride = width;
|
||||||
break;
|
break;
|
||||||
|
case HAL_PIXEL_FORMAT_NV21_ZSL:
|
||||||
|
stride = ALIGN(width, 64);
|
||||||
|
break;
|
||||||
default: break;
|
default: break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -340,6 +343,10 @@ size_t getBufferSizeAndDimensions(int width, int height, int format,
|
|||||||
alignedw = width;
|
alignedw = width;
|
||||||
size = width;
|
size = width;
|
||||||
break;
|
break;
|
||||||
|
case HAL_PIXEL_FORMAT_NV21_ZSL:
|
||||||
|
alignedh = ALIGN(height, 64);
|
||||||
|
size = ALIGN((alignedw*alignedh) + (alignedw* alignedh)/2, 4096);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
ALOGE("unrecognized pixel format: 0x%x", format);
|
ALOGE("unrecognized pixel format: 0x%x", format);
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|||||||
@@ -267,7 +267,10 @@ int gpu_context_t::alloc_impl(int w, int h, int format, int usage,
|
|||||||
//the usage bits, gralloc assigns a format.
|
//the usage bits, gralloc assigns a format.
|
||||||
if(format == HAL_PIXEL_FORMAT_IMPLEMENTATION_DEFINED) {
|
if(format == HAL_PIXEL_FORMAT_IMPLEMENTATION_DEFINED) {
|
||||||
if(usage & GRALLOC_USAGE_HW_VIDEO_ENCODER)
|
if(usage & GRALLOC_USAGE_HW_VIDEO_ENCODER)
|
||||||
grallocFormat = HAL_PIXEL_FORMAT_NV12_ENCODEABLE; //NV12
|
grallocFormat = HAL_PIXEL_FORMAT_YCbCr_420_SP_VENUS;
|
||||||
|
else if((usage & GRALLOC_USAGE_HW_CAMERA_MASK)
|
||||||
|
== GRALLOC_USAGE_HW_CAMERA_ZSL)
|
||||||
|
grallocFormat = HAL_PIXEL_FORMAT_NV21_ZSL; //NV21 ZSL
|
||||||
else if(usage & GRALLOC_USAGE_HW_CAMERA_READ)
|
else if(usage & GRALLOC_USAGE_HW_CAMERA_READ)
|
||||||
grallocFormat = HAL_PIXEL_FORMAT_YCrCb_420_SP; //NV21
|
grallocFormat = HAL_PIXEL_FORMAT_YCrCb_420_SP; //NV21
|
||||||
else if(usage & GRALLOC_USAGE_HW_CAMERA_WRITE)
|
else if(usage & GRALLOC_USAGE_HW_CAMERA_WRITE)
|
||||||
|
|||||||
@@ -105,6 +105,7 @@ enum {
|
|||||||
HAL_PIXEL_FORMAT_YCrCb_444_SP = 0x110,
|
HAL_PIXEL_FORMAT_YCrCb_444_SP = 0x110,
|
||||||
HAL_PIXEL_FORMAT_YCrCb_422_I = 0x111,
|
HAL_PIXEL_FORMAT_YCrCb_422_I = 0x111,
|
||||||
HAL_PIXEL_FORMAT_BGRX_8888 = 0x112,
|
HAL_PIXEL_FORMAT_BGRX_8888 = 0x112,
|
||||||
|
HAL_PIXEL_FORMAT_NV21_ZSL = 0x113,
|
||||||
HAL_PIXEL_FORMAT_INTERLACE = 0x180,
|
HAL_PIXEL_FORMAT_INTERLACE = 0x180,
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user