diff options
| author | 2022-06-29 21:21:49 +0000 | |
|---|---|---|
| committer | 2022-06-29 21:21:49 +0000 | |
| commit | 618c76e5c04f99f2e295fcd2ffcb896476a68f38 (patch) | |
| tree | db84b827307260c3e1e05d5d30a08c08d427e158 /libs/nativewindow/AHardwareBuffer.cpp | |
| parent | 31afdea9a497881604f2395b7a870d4ee21497c6 (diff) | |
| parent | 552bdbb3f7e423c4047ed209917a12f8cadf86e9 (diff) | |
Merge "Merge tm-dev-plus-aosp-without-vendor@8763363" into stage-aosp-master
Diffstat (limited to 'libs/nativewindow/AHardwareBuffer.cpp')
| -rw-r--r-- | libs/nativewindow/AHardwareBuffer.cpp | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/libs/nativewindow/AHardwareBuffer.cpp b/libs/nativewindow/AHardwareBuffer.cpp index af55623ac5..4a1784ea0b 100644 --- a/libs/nativewindow/AHardwareBuffer.cpp +++ b/libs/nativewindow/AHardwareBuffer.cpp @@ -30,7 +30,7 @@ #include <private/android/AHardwareBufferHelpers.h> #include <android/hardware/graphics/common/1.1/types.h> - +#include <aidl/android/hardware/graphics/common/PixelFormat.h> static constexpr int kFdBufferSize = 128 * sizeof(int); // 128 ints @@ -374,7 +374,7 @@ int AHardwareBuffer_isSupported(const AHardwareBuffer_Desc* desc) { if (!AHardwareBuffer_isValidDescription(desc, /*log=*/false)) return 0; bool supported = false; - GraphicBuffer* gBuffer = new GraphicBuffer(); + sp<GraphicBuffer> gBuffer(new GraphicBuffer()); status_t err = gBuffer->isSupported(desc->width, desc->height, desc->format, desc->layers, desc->usage, &supported); @@ -513,10 +513,6 @@ bool AHardwareBuffer_isValidDescription(const AHardwareBuffer_Desc* desc, bool l ALOGE_IF(log, "AHARDWAREBUFFER_USAGE_SENSOR_DIRECT_DATA requires AHARDWAREBUFFER_FORMAT_BLOB"); return false; } - if (desc->usage & AHARDWAREBUFFER_USAGE_GPU_DATA_BUFFER) { - ALOGE_IF(log, "AHARDWAREBUFFER_USAGE_GPU_DATA_BUFFER requires AHARDWAREBUFFER_FORMAT_BLOB"); - return false; - } } if ((desc->usage & (AHARDWAREBUFFER_USAGE_CPU_READ_MASK | AHARDWAREBUFFER_USAGE_CPU_WRITE_MASK)) && @@ -594,8 +590,12 @@ bool AHardwareBuffer_isValidPixelFormat(uint32_t format) { "HAL and AHardwareBuffer pixel format don't match"); static_assert(HAL_PIXEL_FORMAT_YCBCR_P010 == AHARDWAREBUFFER_FORMAT_YCbCr_P010, "HAL and AHardwareBuffer pixel format don't match"); + static_assert(static_cast<int>(aidl::android::hardware::graphics::common::PixelFormat::R_8) == + AHARDWAREBUFFER_FORMAT_R8_UNORM, + "HAL and AHardwareBuffer pixel format don't match"); switch (format) { + case AHARDWAREBUFFER_FORMAT_R8_UNORM: case AHARDWAREBUFFER_FORMAT_R8G8B8A8_UNORM: case AHARDWAREBUFFER_FORMAT_R8G8B8X8_UNORM: case AHARDWAREBUFFER_FORMAT_R5G6B5_UNORM: @@ -649,6 +649,8 @@ bool AHardwareBuffer_formatIsYuv(uint32_t format) { uint32_t AHardwareBuffer_bytesPerPixel(uint32_t format) { switch (format) { + case AHARDWAREBUFFER_FORMAT_R8_UNORM: + return 1; case AHARDWAREBUFFER_FORMAT_R5G6B5_UNORM: case AHARDWAREBUFFER_FORMAT_D16_UNORM: return 2; |