diff options
author | Sally Qi <sallyqi@google.com> | 2022-04-04 15:46:33 -0700 |
---|---|---|
committer | Sally Qi <sallyqi@google.com> | 2022-04-05 15:48:09 -0700 |
commit | fa3c56a7d0e10e778af6bee3c2dfdd16a6687915 (patch) | |
tree | 601893f1d3d11e39452e2685a5fde59130abe1ad /libs | |
parent | 6451714a234f10fe5c206319ad3cd62d00389a20 (diff) | |
download | native-fa3c56a7d0e10e778af6bee3c2dfdd16a6687915.tar.gz |
Skia HLG should scale to [0, 1] instead of [0, 12]
Bug: 224841108
Test: test HLG video on Instagram
Change-Id: Ib87d42eb23cdef48967f64ff9609aef5af34a719
Diffstat (limited to 'libs')
-rw-r--r-- | libs/renderengine/skia/ColorSpaces.cpp | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/libs/renderengine/skia/ColorSpaces.cpp b/libs/renderengine/skia/ColorSpaces.cpp index f367a84946..37ff5dfede 100644 --- a/libs/renderengine/skia/ColorSpaces.cpp +++ b/libs/renderengine/skia/ColorSpaces.cpp @@ -65,7 +65,15 @@ sk_sp<SkColorSpace> toSkColorSpace(ui::Dataspace dataspace) { case HAL_DATASPACE_TRANSFER_SMPTE_170M: return SkColorSpace::MakeRGB(SkNamedTransferFn::kRec2020, gamut); case HAL_DATASPACE_TRANSFER_HLG: - return SkColorSpace::MakeRGB(SkNamedTransferFn::kHLG, gamut); + // return HLG transfer but scale by 1/12 + skcms_TransferFunction hlgFn; + if (skcms_TransferFunction_makeScaledHLGish(&hlgFn, 1.f / 12.f, 2.f, 2.f, + 1.f / 0.17883277f, 0.28466892f, + 0.55991073f)) { + return SkColorSpace::MakeRGB(hlgFn, gamut); + } else { + return SkColorSpace::MakeRGB(SkNamedTransferFn::kSRGB, gamut); + } case HAL_DATASPACE_TRANSFER_UNSPECIFIED: default: return SkColorSpace::MakeRGB(SkNamedTransferFn::kSRGB, gamut); |