163 lines
8.8 KiB
Plaintext
163 lines
8.8 KiB
Plaintext
|
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: src/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.
|
||
|
|
||
|
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.
|
||
|
- https://code.google.com/p/chromium/issues/detail?id=490016
|
||
|
- 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
|
||
|
- https://code.google.com/p/chromium/issues/detail?id=401971
|
||
|
- Add qcms_profile_get_description api
|
||
|
- https://code.google.com/p/chromium/issues/detail?id=401971
|
||
|
- Convert MLUC profile description embedded nulls to '.'
|
||
|
- https://code.google.com/p/chromium/issues/detail?id=401971
|
||
|
- [APPLE port] Use en-localized profile description names
|
||
|
- https://code.google.com/p/chromium/issues/detail?id=401971
|
||
|
- [APPLE port] Use mmod data for profile descriptions
|
||
|
- https://code.google.com/p/chromium/issues/detail?id=401971
|
||
|
- Minor variable name change: description -> description_offset
|
||
|
- https://code.google.com/p/chromium/issues/detail?id=401971
|
||
|
- Avoid divisions creating sample points in the float cube LUT builder
|
||
|
- https://code.google.com/p/chromium/issues/detail?id=443863
|
||
|
- Add bgra (z,y,x) sampled transform lookup table api
|
||
|
- https://code.google.com/p/chromium/issues/detail?id=443863
|
||
|
- Apply upstream fix reject invalid sizes from
|
||
|
- https://bugzilla.mozilla.org/show_bug.cgi?id=1132468
|
||
|
- lut_inverse_interp16: remove odd whitespace formatting
|
||
|
- https://code.google.com/p/chromium/issues/detail?id=458024
|
||
|
- lut_inverse_interp16: better handle degenerate TRC curves
|
||
|
- https://code.google.com/p/chromium/issues/detail?id=458024
|
||
|
- Add vcgt tag reader and API to read its RGB gamma data
|
||
|
- https://code.google.com/p/chromium/issues/detail?id=471749
|
||
|
- Consolidate loop over channels and elements in VCGT parser
|
||
|
- https://code.google.com/p/chromium/issues/detail?id=471749
|
||
|
- Limit vcgt table to a maximum of 1024 entries
|
||
|
- https://code.google.com/p/chromium/issues/detail?id=471749
|
||
|
- Add float to half float conversion routine
|
||
|
- https://code.google.com/p/chromium/issues/detail?id=491784
|
||
|
- Use half float conversion tables (not functions)
|
||
|
- https://code.google.com/p/chromium/issues/detail?id=491784
|
||
|
- Add matrix transform flag and matrix extraction api
|
||
|
- https://code.google.com/p/chromium/issues/detail?id=491826
|
||
|
- Add tone reproduction curve (TRC) extraction api
|
||
|
- https://code.google.com/p/chromium/issues/detail?id=491826
|
||
|
- lut_inverse_interp16: interpolate degenerate zeros in TRC curves
|
||
|
- https://code.google.com/p/chromium/issues/detail?id=458024
|
||
|
- Make half float code self-contained: add halffloat.h
|
||
|
- https://code.google.com/p/chromium/issues/detail?id=491784
|
||
|
- lut_inverse_interp16: fix black level inversion error
|
||
|
- https://code.google.com/p/chromium/issues/detail?id=504681
|
||
|
- 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
|
||
|
- https://code.google.com/p/chromium/issues/detail?id=506856
|
||
|
- 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
|
||
|
- https://code.google.com/p/chromium/issues/detail?id=506607
|
||
|
- Turbo charge SSE2 qcms_transform_data_rgba_out_lut_sse2
|
||
|
- https://code.google.com/p/chromium/issues/detail?id=506607
|
||
|
- Check matrix transforms have the same PCS
|
||
|
- https://code.google.com/p/chromium/issues/detail?id=510682
|
||
|
- 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
|
||
|
- https://code.google.com/p/chromium/issues/detail?id=506607
|
||
|
- LUT8/16 profiles with an empty CLUT are invalid
|
||
|
- https://code.google.com/p/chromium/issues/detail?id=487284
|
||
|
- Caching transform prelude to save computation in V4 profiles
|
||
|
- https://code.google.com/p/chromium/issues/detail?id=506607
|
||
|
- Use the caching transform prelude for non-SSE code in transform.c
|
||
|
- https://code.google.com/p/chromium/issues/detail?id=506607
|
||
|
- Expand QCMS tests. Add Munsell test for transform accuracy
|
||
|
- https://code.google.com/p/chromium/issues/detail?id=532910
|
||
|
- Compute RMS error from color error dE in the Munsell test
|
||
|
- https://code.google.com/p/chromium/issues/detail?id=532910
|
||
|
- Store color profile version and add a version read API
|
||
|
- https://code.google.com/p/chromium/issues/detail?id=532258
|
||
|
- Add support for VCGT tag formula gamma
|
||
|
- https://code.google.com/p/chromium/issues/detail?id=551568
|
||
|
- Minimize transform RMS in qcms_transform_data_rgb(a)_out_lut
|
||
|
- https://code.google.com/p/chromium/issues/detail?id=532910
|
||
|
- Allow negative XYZ for display profiles on the APPLE port
|
||
|
- https://code.google.com/p/chromium/issues/detail?id=562951
|
||
|
- Add a color profile white point transform api
|
||
|
- https://code.google.com/p/chromium/issues/detail?id=564355
|
||
|
- Compute the pole and zero values needed by lut_inverse_interp16 once
|
||
|
- https://code.google.com/p/chromium/issues/detail?id=505793
|
||
|
- Store the profile media white point during iccread.c
|
||
|
- https://code.google.com/p/chromium/issues/detail?id=565222
|
||
|
- Add an API to check for profile media white point
|
||
|
- https://code.google.com/p/chromium/issues/detail?id=565222
|
||
|
- Add a qcms_profile_get_white_point() api
|
||
|
- https://code.google.com/p/chromium/issues/detail?id=565222
|
||
|
- Set the media white point of the sRGB profile
|
||
|
- https://code.google.com/p/chromium/issues/detail?id=565222
|
||
|
- Don't build QCMS on Android and iOS
|
||
|
- https://code.google.com/p/chromium/issues/detail?id=577155
|
||
|
- Fix para curve tag interval paramater use
|
||
|
- https://code.google.com/p/chromium/issues/detail?id=580920
|
||
|
- Verify internal sRGB profile tristimulus match the standard sRGB profile
|
||
|
- https://code.google.com/p/chromium/issues/detail?id=580917
|
||
|
- Expose unsigned short version of TRC curve
|
||
|
- https://code.google.com/p/chromium/issues/detail?id=495196
|
||
|
- Add qcms_profile_ntsc_relative_gamut_size api
|
||
|
- https://code.google.com/p/chromium/issues/detail?id=582870
|
||
|
- Fix build issue of qcms_tests for MIPS Linux
|
||
|
- https://code.google.com/p/chromium/issues/detail?id=590227
|
||
|
- Update primaries used to build internal sRGB profile
|
||
|
- https://code.google.com/p/chromium/issues/detail?id=580917
|
||
|
- Update internal sRGB profile test report output
|
||
|
- https://code.google.com/p/chromium/issues/detail?id=580917
|
||
|
- Add more internal sRGB profile tests
|
||
|
- https://code.google.com/p/chromium/issues/detail?id=580917
|
||
|
- Fix build_output_lut to return correct data for parametric curves
|
||
|
- https://bugs.chromium.org/p/chromium/issues/detail?id=600338
|
||
|
- Make build_output_lut output 4096 points for parametric curves
|
||
|
- https://bugs.chromium.org/p/chromium/issues/detail?id=600338
|
||
|
- Use a static table in build_output_lut to invert para curves
|
||
|
- https://bugs.chromium.org/p/chromium/issues/detail?id=600338
|
||
|
- Make qcms_test_output_trc handle normal gamma curves
|
||
|
- https://bugs.chromium.org/p/chromium/issues/detail?id=600338
|
||
|
|
||
|
For the Chromium changes, since the import, in a patch format run:
|
||
|
git diff b8456f38 src
|