123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174 |
- 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
- - Add API to output parametric gamma curve data
- - https://bugs.chromium.org/p/chromium/issues/detail?id=615667
- - Fix an unitialized read in gamma curve data.
- - https://bugs.chromium.org/p/chromium/issues/detail?id=635042
- - Only accept valid input ranges when reading VCGT formula
- - https://bugs.chromium.org/p/chromium/issues/detail?id=708145
- - Fix overflow when reading parametric gamma curves
- - https://bugs.chromium.org/p/chromium/issues/detail?id=708143
- - Disable some asserts when running in libfuzzer
- - https://bugs.chromium.org/p/chromium/issues/detail?id=711418
- - Fix integer overflow in lut_inverse_interp16
- - https://bugs.chromium.org/p/chromium/issues/detail?id=711751
- For the Chromium changes, since the import, in a patch format run:
- git diff b8456f38 src
|