1Name: libjpeg-turbo 2URL: https://github.com/libjpeg-turbo/libjpeg-turbo/ 3Version: 2.1.0 4License: Custom license 5License File: LICENSE.md 6Security Critical: yes 7License Android Compatible: yes 8 9Description: 10This consists of the components: 11* libjpeg-turbo 2.1.0 12* This file (README.chromium) 13* A build file (BUILD.gn) 14* An OWNERS file 15* A codereview.settings file 16* Patched header files used by Chromium 17* Deleted unused directories: cmakescripts, doc, fuzz, java, release, 18 sharedlib, simd/loongson, simd/mips, simd/powerpc, and win 19* Deleted unused files: appveyor.yml, CMakeLists.txt, doxygen.config, 20 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 23* 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. 26 27This 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 33arise when system libraries attempt to use our libjpeg. Also, we applied the 34following changes which are not merged to upstream: 35 36* 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. 38 http://crbug.com/608347 39* 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 43 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 45 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. 50* Patches to enable running the upstream unit tests through GTest. 51 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 54 - Refactor tjunittest.c to provide test interface 55 - Move tjunittest logs from stdout to stderr 56 - Refactor tjbench.c to provide test interface 57 - Move tbench logs from stdout to stderr 58 - Write tjunittest output files to sdcard on Android 59 - Refactor cjpeg.c to provide test interface 60 - Refactor jpegtran.c to provide test interface 61 - Add input JPEG images for djpeg and jpegtran tests 62 - Refactor djpeg.c to provide test interface 63 A new gtest directory contains GTest wrappers (and associated utilities) for 64 each of tjunittest, tjbench, cjpeg, djpeg and jpegtran. 65 66Refer 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 71