diff options
author | 2022-02-16 14:44:44 -0800 | |
---|---|---|
committer | 2022-03-03 15:04:46 -0800 | |
commit | 4120991d92a0265ce480672f704612556328057e (patch) | |
tree | bd8a5b7a530b525d2b75e1741bc657b53d6de47f /libs/nativewindow/AHardwareBuffer.cpp | |
parent | 263d41cc2de81bb13eaa9e5ae934e9faba4078bc (diff) |
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
Diffstat (limited to 'libs/nativewindow/AHardwareBuffer.cpp')
-rw-r--r-- | libs/nativewindow/AHardwareBuffer.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
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; |