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

Commit 80b335b2 authored by Sally Qi's avatar Sally Qi Committed by Android (Google) Code Review
Browse files

Merge "Fix HDR colorspace crash during tonemapping"

parents c44d4ea4 a1672b6e
Loading
Loading
Loading
Loading
+4 −15
Original line number Diff line number Diff line
@@ -155,24 +155,13 @@ android_dataspace ColorSpaceToADataSpace(SkColorSpace* colorSpace, SkColorType c

    skcms_TransferFunction fn;
    if (!colorSpace->isNumericalTransferFn(&fn)) {
        // pq with the default white point
        auto rec2020PQ = SkColorSpace::MakeRGB(GetPQSkTransferFunction(), SkNamedGamut::kRec2020);
        if (SkColorSpace::Equals(colorSpace, rec2020PQ.get())) {
        auto res = skcms_TransferFunction_getType(&fn);
        if (res == skcms_TFType_PQish) {
            return HAL_DATASPACE_BT2020_PQ;
        }
        // standard PQ
        rec2020PQ = SkColorSpace::MakeRGB(SkNamedTransferFn::kPQ, SkNamedGamut::kRec2020);
        if (SkColorSpace::Equals(colorSpace, rec2020PQ.get())) {
            return HAL_DATASPACE_BT2020_PQ;
        }
        // HLG
        const auto hlgFn = GetHLGScaleTransferFunction();
        if (hlgFn.has_value()) {
            auto rec2020HLG = SkColorSpace::MakeRGB(hlgFn.value(), SkNamedGamut::kRec2020);
            if (SkColorSpace::Equals(colorSpace, rec2020HLG.get())) {
        if (res == skcms_TFType_HLGish) {
            return static_cast<android_dataspace>(HAL_DATASPACE_BT2020_HLG);
        }
        }
        LOG_ALWAYS_FATAL("Only select non-numerical transfer functions are supported");
    }