Name: Quick Color Management System
Short Name: qcms
URL: https://github.com/jrmuizel/qcms/tree/v4
Version: v4
Date: 2012-03-13
License: MIT
License File: COPYING
Security Critical: yes

Description:
Contains support for applying an ICC color profile to an image.  The code is
originally based on tinycms, re-written by Mozilla for better security and
performance.  This copy is a source-drop from Mozilla on March 13, 2012.
This branch is based off of upstream/v4.

Local Modifications:
Some files only have license headers in the master branch.
 - Added the same license headers to the versions brought down from the 'v4'
   branch src URL qcms/tree/v4
The following changes have been made since qcms was imported:
 - Add bgra output support.
 - Use HAVE_POSIX_MEMALIGN instead of HAS_POSIX_MEMALIG
   (https://bugzilla.mozilla.org/show_bug.cgi?id=692922)
 - Applied upstream patch:
   - https://bug752254.bugzilla.mozilla.org/attachment.cgi?id=626102
 - Applied upstream patch for sanitizing gamma table:
   - Expanded gamma clamp range to allow 1.0.
 - Do not short-circuit bogus profile check for A2B0 or B2A0 unless v4 enabled.
 - Only reference code from transform-sse1.c and transform-sse2.c when SSE is
   enabled.
 - Limit the use an x86-only attribute to 32-bit x86 builds.
 - Fix integer truncation warning/errors on Win64 build.
 - Apply upstream thread safety (fix) patch from
   - https://bugzilla.mozilla.org/show_bug.cgi?id=853169
 - Apply upstream fix for qcms_profile_from_memory from
   - https://bugzilla.mozilla.org/show_bug.cgi?id=969226
 - Apply upstream simplification of qcmstypes.h
   - https://hg.mozilla.org/mozilla-central/rev/b5be94737a83
 - Check for unused tag_len in read_nested_curveType()
 - Apply qcms_transform_precacheLUT_float does not properly free dest buffer
   - https://bugzilla.mozilla.org/show_bug.cgi?id=701348
 - Add qcms_profile_match api
 - Add qcms_profile_get_description api71
 - Convert MLUC profile description embedded nulls to '.'
 - [APPLE port] Use en-localized profile description names
 - [APPLE port] Use mmod data for profile descriptions
 - Minor variable name change: description -> description_offset
 - Avoid divisions creating sample points in the float cube LUT builder
 - Add bgra (z,y,x) sampled transform lookup table api
 - Apply upstream fix reject invalid sizes from
 - lut_inverse_interp16: remove odd whitespace formatting
 - lut_inverse_interp16: better handle degenerate TRC curves
 - Add vcgt tag reader and API to read its RGB gamma data
 - Consolidate loop over channels and elements in VCGT parser
 - Limit vcgt table to a maximum of 1024 entries
 - Add float to half float conversion routine
 - Use half float conversion tables (not functions)
 - Add matrix transform flag and matrix extraction api
 - Add tone reproduction curve (TRC) extraction api
 - lut_inverse_interp16: interpolate degenerate zeros in TRC curves
 - Make half float code self-contained: add halffloat.h
 - lut_inverse_interp16: fix black level inversion error
 - Apply upstream fix of uninitialized value
   - https://github.com/jrmuizel/qcms/commit/0edb697
 - Apply Keep the output of the TRC between 0 and 1
   - https://bugzilla.mozilla.org/show_bug.cgi?id=764181
 - Drop SSE1 code as Chromium mandates SSE2 as a minimum requirement
 - Apply Fix potential leaks in qcms_transform_create
   - https://bugzilla.mozilla.org/show_bug.cgi?id=1168480
 - Apply fix for crash in qcms_transform_data_rgb_out_lut_sse1
   - https://bugzilla.mozilla.org/show_bug.cgi?id=1163740
 - Add SSE2 code for qcms_transform_data_rgba_out_lut_sse2
 - Turbo charge SSE2 qcms_transform_data_rgba_out_lut_sse2
 - Check matrix transforms have the same PCS
 - Apply Don't reject valid profiles with no CLUT offset
   - https://bugzilla.mozilla.org/show_bug.cgi?id=1176551
 - Runtime detect qcms_transform_data_tetra_clut_rgba_sse2 use
 - LUT8/16 profiles with an empty CLUT are invalid
 - Caching transform prelude to save computation in V4 profiles
 - Use the caching transform prelude for non-SSE code in transform.c
 - Expand QCMS tests. Add Munsell test for transform accuracy
 - Compute RMS error from color error dE in the Munsell test
 - Store color profile version and add a version read API
 - Add support for VCGT tag formula gamma
 - Minimize transform RMS in qcms_transform_data_rgb(a)_out_lut
 - Allow negative XYZ for display profiles on the APPLE port
 - Add a color profile white point transform api
 - Compute the pole and zero values needed by lut_inverse_interp16 once
 - Store the profile media white point during iccread.c
 - Add an API to check for profile media white point
 - Add a qcms_profile_get_white_point() api
 - Set the media white point of the sRGB profile
 - Don't build QCMS on Android and iOS
 - Fix para curve tag interval paramater use
 - Verify internal sRGB profile tristimulus match the standard sRGB profile
 - Expose unsigned short version of TRC curve
 - Add qcms_profile_ntsc_relative_gamut_size api
 - Fix build issue of qcms_tests for MIPS Linux
 - Update primaries used to build internal sRGB profile
 - Update internal sRGB profile test report output
 - Add more internal sRGB profile tests
 - Fix build_output_lut to return correct data for parametric curves
 - Make build_output_lut output 4096 points for parametric curves
 - Use a static table in build_output_lut to invert para curves
 - Make qcms_test_output_trc handle normal gamma curves
 - Add API to output parametric gamma curve data
 - Fix an unitialized read in gamma curve data.
