Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ffda356e authored by Dheepthi S's avatar Dheepthi S Committed by Alec Mouri
Browse files

Add AHARDWAREBUFFER_FORMAT_YCBCR_P210...

* To PublicFormat
* To various checks in AHardwareBuffer

Bug: 370458610
Flag: EXEMPT NDK
Change-Id: I7e82febd419bc9cd6cbd74ff6fef168d864eb784
parent ffdc6e00
Loading
Loading
Loading
Loading
+8 −1
Original line number Diff line number Diff line
@@ -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;
+1 −0
Original line number Diff line number Diff line
@@ -60,6 +60,7 @@ enum class PublicFormat {
    JPEG_R = 0x1005,
    HEIC = 0x48454946,
    HEIC_ULTRAHDR = 0x1006,
    YCBCR_P210 = 0x3c,
};

/* Convert from android.graphics.ImageFormat/PixelFormat enums to graphics.h HAL