gralloc: Override gralloc calculated size only if bufferSize is greater.
bufferSize set using native window set buffer size will override gralloc calculated size only if bufferSize is greater. Fix for 720P, 1080P HD content playback is not working on 7x27A due to buffer size mismatch between requested size by frameworks and allocated size by gralloc for HAL_PIXEL_FORMAT_YCrCb_420_SP and HAL_PIXEL_FORMAT_YCrCb_420_SP format Change-Id: I16d04e406ab8f1f35e0e0a70e19d99a019adc5ef CRs-Fixed: 451783
This commit is contained in:
committed by
Gerrit - the friendly Code Review server
parent
22dd8e7ef2
commit
73f952ae3f
@@ -283,8 +283,6 @@ size_t getBufferSizeAndDimensions(int width, int height, int format,
|
||||
size += ALIGN( alignedw * ALIGN(height/2, 32), 8192);
|
||||
break;
|
||||
case HAL_PIXEL_FORMAT_NV12_ENCODEABLE:
|
||||
case HAL_PIXEL_FORMAT_YCbCr_420_SP:
|
||||
case HAL_PIXEL_FORMAT_YCrCb_420_SP:
|
||||
case HAL_PIXEL_FORMAT_YV12:
|
||||
if ((format == HAL_PIXEL_FORMAT_YV12) && ((width&1) || (height&1))) {
|
||||
ALOGE("w or h is odd for the YV12 format");
|
||||
@@ -301,6 +299,11 @@ size_t getBufferSizeAndDimensions(int width, int height, int format,
|
||||
}
|
||||
size = ALIGN(size, 4096);
|
||||
break;
|
||||
case HAL_PIXEL_FORMAT_YCbCr_420_SP:
|
||||
case HAL_PIXEL_FORMAT_YCrCb_420_SP:
|
||||
alignedh = height;
|
||||
size = ALIGN((alignedw*alignedh) + (alignedw* alignedh)/2, 4096);
|
||||
break;
|
||||
case HAL_PIXEL_FORMAT_YCbCr_422_SP:
|
||||
case HAL_PIXEL_FORMAT_YCrCb_422_SP:
|
||||
if(width & 1) {
|
||||
|
||||
Reference in New Issue
Block a user