gralloc: Default flexible YUV format to NV21_ZSL
There could be buffers allocated in flexible YUV format without any camera usage flags. Default the format for such buffers to NV21. Fixes CTS tests testYuvImageWriterReaderOperation, testAbandonedSurfaceExceptions Change-Id: I72693b1d35d2803df16d3588b3428bcf1ab0b3eb
This commit is contained in:
committed by
Shuzhen Wang
parent
330b21d64e
commit
81a519f599
@@ -289,13 +289,18 @@ int gpu_context_t::alloc_impl(int w, int h, int format, int usage,
|
|||||||
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) {
|
||||||
if (format == HAL_PIXEL_FORMAT_YCbCr_420_888) {
|
if (format == HAL_PIXEL_FORMAT_YCbCr_420_888) {
|
||||||
grallocFormat = HAL_PIXEL_FORMAT_YCrCb_420_SP; //NV21
|
grallocFormat = HAL_PIXEL_FORMAT_NV21_ZSL; //NV21
|
||||||
} else {
|
} else {
|
||||||
grallocFormat = HAL_PIXEL_FORMAT_YCbCr_420_SP_VENUS; //NV12 preview
|
grallocFormat = HAL_PIXEL_FORMAT_YCbCr_420_SP_VENUS; //NV12 preview
|
||||||
}
|
}
|
||||||
} else if(usage & GRALLOC_USAGE_HW_COMPOSER)
|
} else if(usage & GRALLOC_USAGE_HW_COMPOSER)
|
||||||
//XXX: If we still haven't set a format, default to RGBA8888
|
//XXX: If we still haven't set a format, default to RGBA8888
|
||||||
grallocFormat = HAL_PIXEL_FORMAT_RGBA_8888;
|
grallocFormat = HAL_PIXEL_FORMAT_RGBA_8888;
|
||||||
|
else if(format == HAL_PIXEL_FORMAT_YCbCr_420_888) {
|
||||||
|
//If no other usage flags are detected, default the
|
||||||
|
//flexible YUV format to NV21_ZSL
|
||||||
|
grallocFormat = HAL_PIXEL_FORMAT_NV21_ZSL;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool useFbMem = false;
|
bool useFbMem = false;
|
||||||
|
|||||||
Reference in New Issue
Block a user