From 4120991d92a0265ce480672f704612556328057e Mon Sep 17 00:00:00 2001 From: Jason Macnak Date: Wed, 16 Feb 2022 14:44:44 -0800 Subject: Support AHardwareBuffer_lockPlanes() with P010 ... which has 10 bits of data packed into 16 bit channels. Bug: b/216638710 Test: lock and sample P010 buffer with aosp/1990450 Change-Id: Ib9c4c7755527a1533d0e1ec8eda49bf024c640bb --- libs/nativewindow/AHardwareBuffer.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'libs/nativewindow/AHardwareBuffer.cpp') diff --git a/libs/nativewindow/AHardwareBuffer.cpp b/libs/nativewindow/AHardwareBuffer.cpp index ef7602f24e..af55623ac5 100644 --- a/libs/nativewindow/AHardwareBuffer.cpp +++ b/libs/nativewindow/AHardwareBuffer.cpp @@ -207,7 +207,11 @@ int AHardwareBuffer_lockPlanes(AHardwareBuffer* buffer, uint64_t usage, if (result == 0) { outPlanes->planeCount = 3; outPlanes->planes[0].data = yuvData.y; - outPlanes->planes[0].pixelStride = 1; + if (format == AHARDWAREBUFFER_FORMAT_YCbCr_P010) { + outPlanes->planes[0].pixelStride = 2; + } else { + outPlanes->planes[0].pixelStride = 1; + } outPlanes->planes[0].rowStride = yuvData.ystride; outPlanes->planes[1].data = yuvData.cb; outPlanes->planes[1].pixelStride = yuvData.chroma_step; -- cgit v1.2.3-59-g8ed1b