From b98941f2ce9091577986a44598c213e23211158a Mon Sep 17 00:00:00 2001 From: Sally Qi Date: Mon, 18 Apr 2022 19:55:40 -0700 Subject: [PATCH] Fix Photos crash when open 10-bit HDR videos - use make_optional to wrap skcms transfer function Bug: 229578704 Test: open vides on Photos app Change-Id: I7686807244c04890dbadfbfe3ae5b16a18cf328d --- libs/hwui/utils/Color.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/libs/hwui/utils/Color.cpp b/libs/hwui/utils/Color.cpp index 28f547703dde0..3afb419f9b8bb 100644 --- a/libs/hwui/utils/Color.cpp +++ b/libs/hwui/utils/Color.cpp @@ -399,10 +399,12 @@ skcms_TransferFunction GetPQSkTransferFunction(float sdr_white_level) { // Skia skcms' default HLG maps encoded [0, 1] to linear [1, 12] in order to follow ARIB // but LinearEffect expects a decoded [0, 1] range instead to follow Rec 2100. std::optional GetHLGScaleTransferFunction() { - std::optional hlgFn = {}; - skcms_TransferFunction_makeScaledHLGish(&hlgFn.value(), 1.f / 12.f, 2.f, 2.f, 1.f / 0.17883277f, - 0.28466892f, 0.55991073f); - return hlgFn; + 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 std::make_optional(hlgFn); + } + return {}; } } // namespace uirenderer