diff options
| author | 2024-09-18 22:17:55 +0530 | |
|---|---|---|
| committer | 2024-12-09 18:06:04 +0000 | |
| commit | a7d8b1fb28eb60067bafcc8843cdedac5755f20a (patch) | |
| tree | 8d839cc88056c7a1d0dd0143c68d2ece77794135 /libs | |
| parent | e57dca0191097d5d2b521ff617e3527e1cfed9c3 (diff) | |
Add AHARDWAREBUFFER_FORMAT_YCBCR_P210...
* To PublicFormat
* To various checks in AHardwareBuffer
Bug: 294442993
Bug: 370458610
Flag: EXEMPT NDK
Change-Id: I7e82febd419bc9cd6cbd74ff6fef168d864eb784
Merged-In: I7e82febd419bc9cd6cbd74ff6fef168d864eb784
Diffstat (limited to 'libs')
| -rw-r--r-- | libs/nativewindow/AHardwareBuffer.cpp | 9 | ||||
| -rw-r--r-- | libs/ui/include/ui/PublicFormat.h | 1 |
2 files changed, 9 insertions, 1 deletions
diff --git a/libs/nativewindow/AHardwareBuffer.cpp b/libs/nativewindow/AHardwareBuffer.cpp index dd78049b16..fb987daff9 100644 --- a/libs/nativewindow/AHardwareBuffer.cpp +++ b/libs/nativewindow/AHardwareBuffer.cpp @@ -112,6 +112,10 @@ static_assert( static_cast<int>(aidl::android::hardware::graphics::common::PixelFormat::RGBA_10101010) == AHARDWAREBUFFER_FORMAT_R10G10B10A10_UNORM, "HAL and AHardwareBuffer pixel format don't match"); +static_assert( + static_cast<int>(aidl::android::hardware::graphics::common::PixelFormat::YCBCR_P210) == + AHARDWAREBUFFER_FORMAT_YCbCr_P210, + "HAL and AHardwareBuffer pixel format don't match"); static enum AHardwareBufferStatus filterStatus(status_t status) { switch (status) { @@ -300,8 +304,10 @@ int AHardwareBuffer_lockPlanes(AHardwareBuffer* buffer, uint64_t usage, if (result == 0) { outPlanes->planeCount = 3; outPlanes->planes[0].data = yuvData.y; - // P010 is word-aligned 10-bit semiplaner, and YCbCr_422_I is a single interleaved plane + // P010 & P210 are word-aligned 10-bit semiplaner, and YCbCr_422_I is a single interleaved + // plane if (format == AHARDWAREBUFFER_FORMAT_YCbCr_P010 || + format == AHARDWAREBUFFER_FORMAT_YCbCr_P210 || format == AHARDWAREBUFFER_FORMAT_YCbCr_422_I) { outPlanes->planes[0].pixelStride = 2; } else { @@ -724,6 +730,7 @@ bool AHardwareBuffer_formatIsYuv(uint32_t format) { case AHARDWAREBUFFER_FORMAT_YCrCb_420_SP: case AHARDWAREBUFFER_FORMAT_YCbCr_422_I: case AHARDWAREBUFFER_FORMAT_YCbCr_P010: + case AHARDWAREBUFFER_FORMAT_YCbCr_P210: return true; default: return false; diff --git a/libs/ui/include/ui/PublicFormat.h b/libs/ui/include/ui/PublicFormat.h index 2248ccab0c..7b7f5022d9 100644 --- a/libs/ui/include/ui/PublicFormat.h +++ b/libs/ui/include/ui/PublicFormat.h @@ -59,6 +59,7 @@ enum class PublicFormat { DEPTH_JPEG = 0x69656963, JPEG_R = 0x1005, HEIC = 0x48454946, + YCBCR_P210 = 0x3c, }; /* Convert from android.graphics.ImageFormat/PixelFormat enums to graphics.h HAL |