summaryrefslogtreecommitdiff
path: root/libs
diff options
context:
space:
mode:
authorSally Qi <sallyqi@google.com>2022-04-04 15:46:33 -0700
committerSally Qi <sallyqi@google.com>2022-04-05 15:48:09 -0700
commitfa3c56a7d0e10e778af6bee3c2dfdd16a6687915 (patch)
tree601893f1d3d11e39452e2685a5fde59130abe1ad /libs
parent6451714a234f10fe5c206319ad3cd62d00389a20 (diff)
downloadnative-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.cpp10
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);