diff options
Diffstat (limited to 'gralloc/gr_utils.cpp')
-rw-r--r-- | gralloc/gr_utils.cpp | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/gralloc/gr_utils.cpp b/gralloc/gr_utils.cpp index b9ddcecb..05a63628 100644 --- a/gralloc/gr_utils.cpp +++ b/gralloc/gr_utils.cpp @@ -236,6 +236,32 @@ bool IsGPUFlagSupported(uint64_t usage) { return ret; } +int GetBpp(int format) { + if (IsUncompressedRGBFormat(format)) { + return GetBppForUncompressedRGB(format); + } + switch (format) { + case HAL_PIXEL_FORMAT_COMPRESSED_RGBA_ASTC_4x4_KHR: + case HAL_PIXEL_FORMAT_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR: + case HAL_PIXEL_FORMAT_RAW8: + case HAL_PIXEL_FORMAT_Y8: + return 1; + case HAL_PIXEL_FORMAT_RAW16: + case HAL_PIXEL_FORMAT_Y16: + case HAL_PIXEL_FORMAT_YCbCr_422_SP: + case HAL_PIXEL_FORMAT_YCrCb_422_SP: + case HAL_PIXEL_FORMAT_YCbCr_422_I: + case HAL_PIXEL_FORMAT_YCrCb_422_I: + case HAL_PIXEL_FORMAT_CbYCrY_422_I: + return 2; + case HAL_PIXEL_FORMAT_YCbCr_420_P010_VENUS: + case HAL_PIXEL_FORMAT_YCbCr_420_P010: + return 3; + default: + return -1; + } +} + // Returns the final buffer size meant to be allocated with ion unsigned int GetSize(const BufferInfo &info, unsigned int alignedw, unsigned int alignedh) { unsigned int size = 0; |