Clamp out-of-range XYZ values rather than assert()ing.
[libdcp.git] / src / rgb_xyz.cc
index 509e320a32dac03e3a154d2aa25fcfd9d92c7372..c27e18c7e81c52a908e6068f1fac53f334447d5b 100644 (file)
@@ -166,9 +166,12 @@ libdcp::rgb_to_xyz (
                        e.y = e.y * DCI_COEFFICIENT * 65535;
                        e.z = e.z * DCI_COEFFICIENT * 65535;
 
-                       assert (e.x >= 0 && e.x < 65536);
-                       assert (e.y >= 0 && e.y < 65536);
-                       assert (e.z >= 0 && e.z < 65536);
+                       e.x = max (0.0, e.x);
+                       e.y = max (0.0, e.y);
+                       e.z = max (0.0, e.z);
+                       e.x = min (65535.0, e.x);
+                       e.y = min (65535.0, e.y);
+                       e.z = min (65535.0, e.z);
 
                        /* Out gamma LUT */
                        xyz->data(0)[jn] = lut_out->lut()[(int) e.x] * 4096;