gralloc: Fix NV12 and NV21 stride
NV12 spec says that the chroma stride is the same as the luma stride. The camera hardware produces YUV data per this spec. NV21 has the same behaviour with the chroma samples reversed. Venus also conforms to this. Change-Id: I6e107b2a3ba6f51e135348bd147a9c26be003bb2
This commit is contained in:
@@ -566,8 +566,7 @@ int getYUVPlaneInfo(private_handle_t* hnd, struct android_ycbcr* ycbcr)
|
||||
case HAL_PIXEL_FORMAT_YCbCr_422_SP:
|
||||
case HAL_PIXEL_FORMAT_YCbCr_420_SP_VENUS:
|
||||
case HAL_PIXEL_FORMAT_NV12_ENCODEABLE: //Same as YCbCr_420_SP_VENUS
|
||||
ystride = hnd->width;
|
||||
cstride = hnd->width/2;
|
||||
ystride = cstride = hnd->width;
|
||||
ycbcr->y = (void*)hnd->base;
|
||||
ycbcr->cb = (void*)(hnd->base + ystride * hnd->height);
|
||||
ycbcr->cr = (void*)(hnd->base + ystride * hnd->height + 1);
|
||||
@@ -581,8 +580,7 @@ int getYUVPlaneInfo(private_handle_t* hnd, struct android_ycbcr* ycbcr)
|
||||
case HAL_PIXEL_FORMAT_YCrCb_420_SP_ADRENO:
|
||||
case HAL_PIXEL_FORMAT_NV21_ZSL:
|
||||
case HAL_PIXEL_FORMAT_RAW_SENSOR:
|
||||
ystride = hnd->width;
|
||||
cstride = hnd->width/2;
|
||||
ystride = cstride = hnd->width;
|
||||
ycbcr->y = (void*)hnd->base;
|
||||
ycbcr->cr = (void*)(hnd->base + ystride * hnd->height);
|
||||
ycbcr->cb = (void*)(hnd->base + ystride * hnd->height + 1);
|
||||
|
||||
Reference in New Issue
Block a user