File colorspace-fix-assertion-part2.patch of Package zimg

From bb17c9433bfdc78e296982aad32981bcb9d5514c Mon Sep 17 00:00:00 2001
From: sekrit-twc <noreply@example.com>
Date: Tue, 17 Mar 2020 10:40:15 -0700
Subject: [PATCH] colorspace: fix assertions

---
 src/zimg/colorspace/operation.cpp | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/src/zimg/colorspace/operation.cpp b/src/zimg/colorspace/operation.cpp
index 1218c7b..76f9d7a 100644
--- a/src/zimg/colorspace/operation.cpp
+++ b/src/zimg/colorspace/operation.cpp
@@ -65,7 +65,8 @@ std::unique_ptr<Operation> create_lms_to_ictcp_operation(const ColorspaceDefinit
 std::unique_ptr<Operation> create_gamma_to_linear_operation(const ColorspaceDefinition &in, const ColorspaceDefinition &out, const OperationParams &params, CPUClass cpu)
 {
 	zassert_d(in.primaries == out.primaries, "primaries mismatch");
-	zassert_d(in.matrix == MatrixCoefficients::RGB && out.matrix == MatrixCoefficients::RGB, "must be RGB");
+	zassert_d((in.matrix == MatrixCoefficients::RGB || in.matrix == MatrixCoefficients::REC_2100_LMS) &&
+	          (out.matrix == MatrixCoefficients::RGB || out.matrix == MatrixCoefficients::REC_2100_LMS), "must be RGB or LMS");
 	zassert_d(in.transfer != TransferCharacteristics::LINEAR && out.transfer == TransferCharacteristics::LINEAR, "wrong transfer characteristics");
 
 	if (in.transfer == TransferCharacteristics::ARIB_B67 && use_display_referred_b67(in.primaries, params))
@@ -77,7 +78,8 @@ std::unique_ptr<Operation> create_gamma_to_linear_operation(const ColorspaceDefi
 std::unique_ptr<Operation> create_linear_to_gamma_operation(const ColorspaceDefinition &in, const ColorspaceDefinition &out, const OperationParams &params, CPUClass cpu)
 {
 	zassert_d(in.primaries == out.primaries, "primaries mismatch");
-	zassert_d(in.matrix == MatrixCoefficients::RGB && out.matrix == MatrixCoefficients::RGB, "must be RGB");
+	zassert_d((in.matrix == MatrixCoefficients::RGB || in.matrix == MatrixCoefficients::REC_2100_LMS) &&
+	          (out.matrix == MatrixCoefficients::RGB || out.matrix == MatrixCoefficients::REC_2100_LMS), "must be RGB or LMS");
 	zassert_d(in.transfer == TransferCharacteristics::LINEAR && out.transfer != TransferCharacteristics::LINEAR, "wrong transfer characteristics");
 
 	if (out.transfer == TransferCharacteristics::ARIB_B67 && use_display_referred_b67(out.primaries, params))
-- 
2.25.1

openSUSE Build Service is sponsored by