blob: de1fe85eead465bb3302d1876aa1cb009e1148ab [file] [log] [blame]
hbono@chromium.org920a8a92010-11-22 09:17:38 +00001Name: libjpeg-turbo
Tom Hudson0d47d2d2016-05-04 13:22:56 -04002URL: https://github.com/libjpeg-turbo/libjpeg-turbo/
Peter Kastingad8b3b02021-07-13 09:58:54 -07003Version: b201838d8b5f2f80c9f86ec8405a62a002232b2c (post 2.1.0)
steveblock@chromium.org4c160802012-08-01 00:42:33 +00004License: Custom license
Tom Hudson0d47d2d2016-05-04 13:22:56 -04005License File: LICENSE.md
hbono@chromium.org98626972011-08-03 03:13:08 +00006Security Critical: yes
torne@chromium.org3963fbc2014-09-04 12:56:33 +00007License Android Compatible: yes
hbono@chromium.org920a8a92010-11-22 09:17:38 +00008
cdn@chromium.org7deb8d62011-03-14 19:29:03 +00009Description:
noel@chromium.org3395bcc2014-04-14 06:56:00 +000010This consists of the components:
Peter Kastingad8b3b02021-07-13 09:58:54 -070011* libjpeg-turbo b201838d8b5f2f80c9f86ec8405a62a002232b2c (post 2.1.0)
Tom Hudson0d47d2d2016-05-04 13:22:56 -040012* This file (README.chromium)
Chris Blumecca8c4d2019-03-01 01:09:50 -080013* A build file (BUILD.gn)
14* An OWNERS file
15* A codereview.settings file
Tom Hudson0d47d2d2016-05-04 13:22:56 -040016* Patched header files used by Chromium
Jonathan Wright24e31052021-04-26 12:10:48 +010017* Deleted unused directories: cmakescripts, doc, fuzz, java, release,
18 sharedlib, simd/loongson, simd/mips, simd/powerpc, and win
Jonathan Wrightdb870df2020-08-05 11:42:22 +010019* Deleted unused files: appveyor.yml, CMakeLists.txt, doxygen.config,
Jonathan Wright24e31052021-04-26 12:10:48 +010020 doxygen-extra.css, .gitattributes, md5/CMakeLists.txt, md5/md5cmp.c,
21 simd/CMakeLists.txt, tjexample.c, tjexampletest.in, tjexampletest.java.in and
22 .travis.yml
Jonathan Wrightbbb82822020-11-25 13:36:43 +000023* Deleted legacy Arm Neon assembly files (supporting old compiler versions that
24 do not generate performant code from intrinsics):
25 simd/arm/aarch32/jsimd_neon.S, simd/arm/aarch64/jsimd_neon.S.
Aaron Gablec9c87552015-08-03 09:34:32 -070026
hbono@chromium.org920a8a92010-11-22 09:17:38 +000027This libjpeg-turbo can replace our libjpeg-6b without any modifications in the
28Chromium code.
29
30Same as our copy of libjpeg-6b, this libjpeg-turbo also added a new file
31jpeglibmangler.h and included it from jpeglib.h that changes the names of all
32externally visible functions to chromium_* so that we can avoid conflicts that
hbono@chromium.org98626972011-08-03 03:13:08 +000033arise when system libraries attempt to use our libjpeg. Also, we applied the
34following changes which are not merged to upstream:
noel@chromium.org3395bcc2014-04-14 06:56:00 +000035
Jonathan Wrightbbb82822020-11-25 13:36:43 +000036* Configuration files jconfig.h, jconfigint.h and neon-compat.h were generated
37 and then altered manually to be compatible on all of Chromium's platforms.
Noel Gordon9fee17f2016-05-06 00:32:29 +100038 http://crbug.com/608347
Chris Davis14eba7a2019-07-09 19:46:32 -070039* Fix static const data duplication of jpeg_nbits_table. A unique copy
40 was in the jchuff.obj and jcphuff.obj resulting in an added 65k in
41 .rdata in chrome.dll and chrome_child.dll. Declaring extern const
42 in the header instead of static const and moving the definition to
Chris Davisd460d6b2019-08-15 15:30:00 -070043 a new .c file fixes this so only one copy is referenced. Also added
44 extern wrappers around usage in asm files. The jpeg_nbits_table.inc
Elliott Hughes341272d2020-08-06 16:24:16 -070045 file was also deleted. It was also necessary to give this table hidden
46 visibility to avoid invalid relocations (ignored by ld but rejected by
47 lld) arising from attempts to reference the table from assembler on
48 32-bit x86. This only affects shared libraries, but that's important
49 for downstream Android builds.
Jonathan Wrightbbb82822020-11-25 13:36:43 +000050* Patches to enable running the upstream unit tests through GTest.
Jonathan Wright11070fb2020-06-16 18:46:21 +010051 The upstream unit tests are defined here under the section 'TESTS':
52 https://github.com/libjpeg-turbo/libjpeg-turbo/blob/master/CMakeLists.txt
53 These changes are tracked by Chromium issue: https://crbug.com/993876
Jonathan Wright6cb95b82020-06-11 16:10:15 +010054 - Refactor tjunittest.c to provide test interface
Jonathan Wrighta145af12020-06-11 23:22:17 +010055 - Move tjunittest logs from stdout to stderr
Jonathan Wright285aa142020-06-12 15:14:35 +010056 - Refactor tjbench.c to provide test interface
Jonathan Wright681ce7f2020-06-12 18:20:50 +010057 - Move tbench logs from stdout to stderr
Jonathan Wright85252fa2020-06-19 16:07:07 +010058 - Write tjunittest output files to sdcard on Android
Jonathan Wright5961ab92020-06-21 13:11:49 +010059 - Refactor cjpeg.c to provide test interface
Jonathan Wrightdc4d6f92020-06-23 12:35:48 +010060 - Refactor jpegtran.c to provide test interface
Jonathan Wright8789cbd2020-06-27 14:19:00 +010061 - Add input JPEG images for djpeg and jpegtran tests
Jonathan Wrightc69b17e2020-06-21 19:56:26 +010062 - Refactor djpeg.c to provide test interface
Jonathan Wrightbbb82822020-11-25 13:36:43 +000063 A new gtest directory contains GTest wrappers (and associated utilities) for
64 each of tjunittest, tjbench, cjpeg, djpeg and jpegtran.
noel@chromium.org3395bcc2014-04-14 06:56:00 +000065
noel@chromium.org9e9058b2015-04-27 03:30:31 +000066Refer to working-with-nested-repos [1] for details of how to setup your git
67svn client to update the code (for making local changes, cherry picking from
68upstream, etc).
69
70[1] https://www.chromium.org/developers/how-tos/get-the-code/working-with-nested-repos