|
f36d5315
|
2019-04-23T14:54:23
|
|
Merge branch 'master' into dev
|
|
6399d0a6
|
2019-04-23T14:10:04
|
|
Fix code formatting/style issues ...
... including, but not limited to:
- unused macros
- private functions not marked as static
- unprototyped global functions
- variable shadowing
(detected by various non-default GCC 8 warning options)
|
|
aa9db616
|
2019-04-15T17:55:47
|
|
x86 SIMD: Check for CPUID leaf 07H before using
According to Intel's manual [1], "If a value entered for CPUID.EAX is
higher than the maximum input value for basic or extended function for
that processor then the data for the highest basic information leaf is
returned."
Right now, libjpeg-turbo doesn't first check that leaf 07H is supported
before attempting to use it, so the ostensible AVX2 bit (Bit 05) of the
CPUID result might actually be Bit 05 from a lower leaf. That bit might
be set, even if the CPU doesn't support AVX2.
This commit modifies the x86 and x86-64 SIMD feature detection code so
that it first checks whether CPUID leaf 07H is supported before
attempting to use it to check for AVX2 instruction support.
DRC:
This commit should fix
https://bugzilla.mozilla.org/show_bug.cgi?id=1520760
However, I have not personally been able to reproduce that issue,
despite using a Nehalem (pre-AVX2) CPU on which the maximum CPUID leaf
has been limited via a BIOS setting.
Closes #348
[1]
"IntelĀ® 64 and IA-32 Architectures Software Developer's Manual, Volume 2 (2A, 2B, 2C & 2D): Instruction Set Reference, A-Z", https://software.intel.com/sites/default/files/managed/a4/60/325383-sdm-vol-2abcd.pdf, page 3-192.
|
|
8a0e35b2
|
2019-04-15T13:41:45
|
|
Merge branch 'master' into dev
|
|
2b05d47b
|
2019-04-15T13:38:15
|
|
ChangeLog.md: Document 33011754
|
|
7bc9fca4
|
2019-04-12T09:07:35
|
|
jdhuff.c: Silence UBSan signed int overflow err #2
Same as d3a3a73f64041c6a6905faf6f9f9832e735fd880 but in the fast decode
path. It was necessary to use a different-sized test image in order to
trigger the error in this location.
Refer to #347
|
|
bb16b944
|
2019-04-12T08:53:45
|
|
GitHub: Remove new lines from feature-request.md
(to make checkstyle happy)
|
|
33011754
|
2019-04-12T08:47:28
|
|
Android: Fix "using JNI after critical get" errors
5ea77d8b771bf7b0be7acc7fb70c255f8c9c8f77 was insufficient to fix all of
these. In particular, we need to always release the primitive arrays
before throwing an exception, because throwing an exception qualifies as
"using JNI."
Refer to #300
|
|
bce58f48
|
2019-04-12T07:49:35
|
|
Consistify formatting of macros in TurboJPEG code
|
|
ce067a6c
|
2019-04-10T15:16:55
|
|
GitHub: Template tweaks
CONTRIBUTING.md: Correct misuse of "as such" (Grammar Police)
bug-report.md: Clarify that the submitter should always test against the
latest stable code base.
|
|
d3a3a73f
|
2019-04-10T14:28:47
|
|
jdhuff.c: Silence UBSan signed int overflow error
Some pathological test images have been created that can cause s to
overflow or underflow the signed int data type during decompression.
This is technically undefined behavior according to the C spec, although
every modern implementation I'm aware of will treat the signed int as a
2's complement unsigned int, thus causing the value to wrap around to
INT_MIN if it exceeds INT_MAX. This commit simply makes that behavior
explicit in order to shut up UBSan. At least when building for x86-64
or i386 using Clang or GCC, this commit does not change the
compiler-generated assembly code at all.
The code that triggered this error has existed in the libjpeg code base
for at least 20 years (and probably much longer), so the fact that it
hasn't produced a user-visible problem in all of that time strongly
suggests that UBSan is being overly pedantic here. But if someone can
cough up a platform that doesn't wrap around to INT_MIN when 1 is added
to INT_MAX, then I'll happily change my opinion.
Fixes #347
|
|
58a3975e
|
2019-04-10T14:35:45
|
|
Bump version to 2.0.3 to prepare for new commits
|
|
5857929f
|
2019-03-05T17:48:20
|
|
GitHub: Formatting tweak to CONTRIBUTING.md
|
|
70947727
|
2019-03-01T13:13:27
|
|
GitHub: Tweak bug report template
|
|
1af712c1
|
2019-03-01T13:11:11
|
|
GitHub: Add feature request template
|
|
ec90cd0f
|
2019-03-01T12:29:41
|
|
GitHub: Add contributor guidelines
|
|
ce76ffac
|
2019-03-01T10:07:51
|
|
GitHub: Add bug report template
|
|
afbe48c2
|
2019-02-27T13:05:58
|
|
MMI: Support 32-bit Loongson architectures
|
|
98ff5507
|
2019-02-27T13:17:35
|
|
MMI: Fix bug in jsimd_h2v1_merged_upsample_mmi()
... that occurred when ((image width) & 1) != 0.
|
|
3ca6dba9
|
2019-02-17T09:33:57
|
|
Merge branch 'master' into dev
|
|
500b5ece
|
2019-02-17T09:06:42
|
|
turbojpeg.c: Fix compiler warning w/ -DNO_GETENV
|
|
87ab3360
|
2019-02-14T10:01:16
|
|
appveyor.yml: Cache NASM binary package
... since www.nasm.us seems to be down frequently. This doesn't help us
at the moment, but hopefully once the site is back up this will prevent
future build failures.
|
|
b46af82c
|
2019-02-12T17:35:10
|
|
ARMv7 NEON: #ifdef unused funcs/vars w/ -mfpu=neon
When simd/arm/jsimd.c is compiled with __ARM_NEON__ defined (which will
be the case if -mfpu=neon is passed to the compiler), the
parse_proc_cpuinfo() and check_feature() functions and the bufsize
variable are unused and thus need to be #ifdef'ed out in order to avoid
compiler warnings. Note that the bufsize variable was already #ifdef'ed
out on Linux but not on Android due to lack of parentheses (&& takes
precedence over ||.)
Closes #331
|
|
a4aa30d9
|
2019-02-13T22:03:31
|
|
ChangeLog.md: "floating-point"="floating point"
|
|
aaf58dab
|
2019-02-13T17:05:26
|
|
Merge branch 'master' into dev
|
|
0d7818d1
|
2019-02-13T16:22:18
|
|
rpm.spec.in: Fix "File listed twice" warning/error
%{_libdir}/pkgconfig is a directory and should thus be prefixed by
%{dir} (oops.) This issue caused the debuginfo build under RHEL 8
(which is apparently now enabled by default-- regardless of whether the
RPM actually contains debug info, but that's another matter) to fail
with:
RPM build errors:
File listed twice: /opt/libjpeg-turbo/lib64/pkgconfig/libjpeg.pc
File listed twice: /opt/libjpeg-turbo/lib64/pkgconfig/libturbojpeg.pc
|
|
4b67db4d
|
2019-02-13T15:20:34
|
|
rpm.spec.in: Fix doc packaging issues w/ RHEL 7+
On RHEL 7 and later (not sure exactly whether this is a product of the
newer RPM release or something distro-specific), macros are lazily
expanded, so we need to set _docdir using %global (which expands at
definition time) and prior to _prefix and _datarootdir (which affect
_defaultdocdir.) Otherwise, _docdir is set to a subdirectory of
/opt/libjpeg-turbo/share/doc or /opt/libjpeg-turbo/doc. The former
(which happens on RHEL 7) leads to incorrect documentation packaging
(the docs should be packaged under /usr/share/doc per Red Hat
standards), and the latter (which happens on RHEL 8) leads to an RPM
build error.
|
|
f70a7e1e
|
2019-02-12T15:37:21
|
|
rpm.spec.in: Update deprecated [Build]Prereq tags
AFAICT, Requires and BuildRequires subsumed the functionality of Prereq
and BuildPrereq in RPM 4.0, and none of the platforms we support with
libjpeg-turbo 2.0.x has RPM < 4.4.
|
|
a9075a17
|
2019-02-12T13:42:57
|
|
Merge branch 'master' into dev
|
|
6a8421fb
|
2019-02-12T13:30:15
|
|
GNUInstallDirs.cmake: Silence CMP0054 warning ...
in CMake 3.11 and later
|
|
031e16ec
|
2019-02-11T22:43:15
|
|
tjbench.c: Fix GCC 8 compiler warning
|
|
75be88cf
|
2019-02-11T13:10:09
|
|
Build: Optionally install PDB files for MSVC DLLs
Based on
https://github.com/Youw/libjpeg-turbo/commit/333a36ae984a52e547ddeb23848873d3cc798047
Closes #329
Closes #324
|
|
bdec9958
|
2019-02-01T01:16:13
|
|
MMI: Fix unaligned decomp. perf. for 32-bit PFs
(Oversight from db84125fcb05bbc48430b53d45b89392a8f3609e)
|
|
fa905fbf
|
2019-02-01T00:42:09
|
|
MMI: Use unaligned stores w/ merged upsampling
... when necessary. This was an oversight from
2f9e7c84d1a95c1bae8bb8d38fbc2adaeecf4d41
|
|
9aada25c
|
2019-02-01T01:01:38
|
|
Merge branch 'master' into dev
|
|
e2442e07
|
2019-02-01T00:56:02
|
|
MMI: Fix unaligned comp. perf. for 32-bit PFs also
(Oversight from 1c2d3cfaaf7324d9091ba3cc4e900f60a16fe1aa)
|
|
73fd6041
|
2019-02-01T00:24:09
|
|
MMI: Fix formatting issue detected by checkstyle
|
|
2f9e7c84
|
2019-01-31T21:24:13
|
|
Loongson MMI h2v1 and h2v2 merged upsampling
Based on:
https://github.com/zhanglixia-hf/libjpeg-turbo/commit/e8f5cee5aa83e2d1b0af3a7bd0aaa2391c930fb2
|
|
3c7199ff
|
2019-01-31T16:22:31
|
|
Loongson MMI h2v1 fancy upsampling
Based on:
https://github.com/zhanglixia-hf/libjpeg-turbo/commit/e8f5cee5aa83e2d1b0af3a7bd0aaa2391c930fb2
|
|
73b98acd
|
2019-01-31T13:54:46
|
|
Loongson MMI RGB-to-Grayscale conversion
Based on:
https://github.com/zhanglixia-hf/libjpeg-turbo/commit/e8f5cee5aa83e2d1b0af3a7bd0aaa2391c930fb2
|
|
bb0d1702
|
2019-01-30T22:41:57
|
|
Improve readability of Loongson MMI code
We have more than eight registers to work with, as well as three-operand
intrinsics, so there's no need for the implementation to be such a
literal port of the MMX code.
|
|
db84125f
|
2019-01-30T14:12:06
|
|
MMI: Use aligned store instructions when possible
This improves decompression performance by 2-5%.
|
|
ae4221f9
|
2019-01-29T19:51:08
|
|
Loongson MMI fast forward/inverse DCT
Based on:
https://github.com/zhanglixia-hf/libjpeg-turbo/commit/32a9ca222d7e4c8e01bb75cd137f204a0587b383
|
|
674343ab
|
2019-01-31T15:30:25
|
|
Merge branch 'master' into dev
|
|
1c2d3cfa
|
2019-01-30T12:43:45
|
|
MMI: Fix comp. perf. issue w/ unaligned image rows
Using ldc1 with a non-64-bit-aligned memory location causes as much as a
10x slow-down in overall compression performance.
|
|
2d0b675a
|
2019-01-25T16:46:02
|
|
Build: Fix install of static build w/ VStudio IDE
Unfortunately, this hack is necessary because:
- install(TARGETS, ...) doesn't support the RENAME option.
- We can't modify OUTPUT_NAME for the "-static" targets without breaking
the regression tests.
- ${CMAKE_CFG_INTDIR} doesn't seem to work properly in an install()
command.
Refer to #307
|
|
6fac9094
|
2019-01-23T16:18:41
|
|
wrbmp.c, wrtarga.c: Remove unused variables
(should have been done with the previous commit)
|
|
01e30323
|
2019-01-23T14:58:24
|
|
Eliminate support for compilers w/o unsigned char
libjpeg-turbo has never really supported such compilers, since (AFAIK)
they are non-existent on any modern computing platform and thus
impossible for us to test. (Also, the TurboJPEG API would break without
unsigned chars.)
Furthermore, the unified CMake-based build system introduced in 2.0
always defines HAVE_UNSIGNED_CHAR, so retaining other code paths is
pointless. Eliminating support for compilers without unsigned char
eliminates the need for the GETJSAMPLE() macro, which improves the
readability of many parts of the code as well as improving the
performance of writing Targa and Windows BMP files.
Fixes #317
|
|
42d62bf1
|
2019-01-23T11:20:11
|
|
Merge branch 'master' into dev
|
|
90e2d7f3
|
2019-01-23T08:27:45
|
|
LICENSE.md: Clarifications RE: BSD & zlib licenses
Including the license templates was confusing to some, since it made
it appear as if the copyright year and author were unspecified for the
libjpeg-turbo source. Thus, rather than include the zlib License
template, link to that template on opensource.org. For the Modified BSD
License, include a roll-up of copyright years and authors, since the
terms of that license require the text of it to be included in product
documentation for binary distributions without accompanying source code.
|
|
5308c1a0
|
2019-01-22T12:11:03
|
|
BUILDING.md: Update/simplify Android build instr.
Use the android.toolchain.cmake toolchain file in the NDK (v13b or
later), since this toolchain file generally takes care of setting the
approprate compiler flags and dealing with the differences between
GCC and Clang. Our custom Android build procedure did not work with
Clang-based NDK toolchains, which meant that it could not be made to
work with NDK v18b or later.
Fixes #309
|
|
ce90ab5d
|
2019-01-21T22:56:56
|
|
Build: Fix regression test failure w/ ctest -j
The djpeg rgb-islow-icc-cmp test must run after the djpeg rgb-islow
test, since the latter generates testout_rgb_islow.icc.
|
|
1ee87a9e
|
2019-01-21T16:25:02
|
|
djpeg: Fix PPM output regression w/ color quant.
Regression caused by aa7459050d7a50e1d8a99488902d41fbc118a50f
Fix based on:
https://github.com/sinic/libjpeg-turbo/commit/03fbacb8ebf1fffc3f2d2db26ddf4db8b1f6aa7b
Closes #310
|
|
479501b0
|
2019-01-21T13:57:55
|
|
TurboJPEG: Decompress 4:4:4 JPEGs with unusual SFs
Normally, 4:4:4 JPEGs have horizontal x vertical luminance & chrominance
sampling factors of 1x1. However, it is technically legal to create
4:4:4 JPEGs with sampling factors of 2x1, 1x2, 3x1, or 1x3, since the
sums of the products of those sampling factors are still <= 10. The
libjpeg API correctly decodes such images, so the TurboJPEG API should
as well.
Fixes #323
|
|
a39c970d
|
2019-01-01T21:53:19
|
|
Merge branch 'master' into dev
|
|
12f3d0be
|
2019-01-01T21:52:21
|
|
Merge branch 'master' into dev
|
|
9bc8eb64
|
2019-01-01T19:36:03
|
|
Travis: Use Homebrew addon to improve performance
|
|
0fa5ae6b
|
2019-01-01T21:16:33
|
|
TJBench Java: Properly handle transform warnings
+ warnings from TJDecompressor.decompressHeader()
|
|
1ff90822
|
2019-01-01T21:08:27
|
|
TJBench: Fix FPE when decompressing 0-width JPEG
Fixes #319
|
|
f8cca819
|
2019-01-01T20:32:40
|
|
wrbmp.c: Don't allow quantization w/ non-RGB CS
If cinfo->quantize_colors == 1, then jpeg_calc_output_dimensions() will
set cinfo->output_components to 1, and if cinfo->out_color_space is not
RGB (or extended RGB), hilarity will ensue.
Fixes #305
|
|
beefb62a
|
2019-01-01T20:15:25
|
|
wrbmp.c: Use IsExtRGB() macro where appropriate
(to improve readability)
|
|
3d9c64e9
|
2019-01-01T18:57:36
|
|
tjLoadImage(): Fix int overflow/segfault w/big BMP
Fixes #304
|
|
23e8e0ff
|
2019-01-01T18:29:55
|
|
jversion.h: Bump copyright year to 2019
|
|
c868e41b
|
2019-01-01T14:26:48
|
|
Build: Fix regr. that nuked RPATH in Mac/iOS build
Caused by 950580eb0c020598a4c6c8aa46c86e31062e1ddc. Since the code that
sets CMAKE_INSTALL_RPATH now depends on ENABLE_SHARED, that code needed
to be moved to after the point at which ENABLE_SHARED is defined.
|
|
0696b0a4
|
2019-01-01T13:55:01
|
|
Bump version to 2.0.2 to prepare for new commits
|
|
aa829dcf
|
2018-11-20T22:52:36
|
|
Travis: Fetch GPG key from libjpeg-turbo.org
I give up on the public keyserver. It inexplicably just fails
sometimes. I was trying to use it out of an abundance of caution
(<cough> paranoia <cough>), but it seems like most open source projects
just serve up their public keys from their project web sites. The
private and public pre-release keys are still stored on separate sites,
the private key is still strongly encrypted by Travis, and we use a
separate key for pre-releases anyhow, so even if it's compromised, we
can quickly and easily deploy a new one.
|
|
43ce78e0
|
2018-11-15T11:54:20
|
|
Build: Fix issue with HAVE_MAPFILE test on Solaris
We have to link the test code into a shared library, or else the mapfile
prevents necessary libc symbols from being exposed.
|
|
2cc4f93c
|
2018-11-12T14:40:19
|
|
Merge branch 'master' into dev
|
|
bb3d3256
|
2018-11-12T13:20:28
|
|
Travis: Try high-availability SKS keyserver pool
The saga continues ...
|
|
c701014d
|
2018-11-12T12:27:23
|
|
tjbench.c: Fix compiler warnings with GCC 8
strncpy() may fail to truncate dst if len == strlen(dst).
|
|
950580eb
|
2018-11-12T11:22:07
|
|
Build: Fix install error with fully static build
Closes #273
|
|
2b1c9c68
|
2018-11-02T11:55:29
|
|
Travis: Don't check key server SSL certificate
... when downloading the RPM signing key. Apparently the key server
URL sometimes redirects to an https URL, which may explain why fetching
the RPM signing keys failed frequently when we used to run wget inside
of the CentOS 5 Docker container.
|
|
07e304c3
|
2018-10-26T09:29:09
|
|
Travis: Work around frequent build failures
The build will consistently fail for days at a time with:
error: http://pool.sks-keyservers.net/pks/lookup?op=get&search=0x0575F26BD5B3FDB1: import read failed(-1).
I have a hunch that this is related to the CentOS 5 Docker container, so
this commit causes Travis to download the RPM signing key outside of
the container and share it with the container.
|
|
5ea77d8b
|
2018-10-26T08:55:22
|
|
Android: Fix "using JNI after critical get" error
We shouldn't be making JNI calls between GetPrimitiveArrayCritical() and
ReleasePrimitiveArrayCritical(). Apparently Android is stricter about
this than desktop Java.
Issue was introduced in 0713c1bb542672257c08782a5a930a577eb20167.
Fixes #300
|
|
504a295c
|
2018-10-11T15:13:34
|
|
Include .pc files in LJT SDKs for Visual C++
These are apparently useful in certain esoteric build environments.
Closes #296
|
|
d00d7d8c
|
2018-10-05T16:13:07
|
|
cjpeg: Fix OOB read caused by malformed 8-bit TGA
... in which one or more of the color indices is out of range for the
number of palette entries.
Fix partly borrowed from jpeg-9c.
Fixes #295
|
|
aaffc14f
|
2018-09-30T11:56:08
|
|
Clarify that Win7 SP0 crash was a regression
|
|
d5f281b7
|
2018-09-28T15:46:35
|
|
SIMD: Fix c000001d exception on Win 7 w/o SP1
Apparently Windows 7 without SP1 has O/S support for XSAVE but not for
YMM registers, and this exposed a bug in our usage of xgetbv. The test
instruction will set ZF only if none of the bits match between the two
operarands, so in effect, we were enabling AVX2 instructions if the O/S
supported XSAVE and the CPU supported AVX2 but the O/S only supported
XMM registers. This bug was not exposed on, for instance, Windows XP or
RHEL 5 because those O/S's do not support XSAVE.
Fixes #288
|
|
f2729c98
|
2018-09-21T15:50:08
|
|
Build: Update javah target to work with JDK 10+
javah is no longer a thing, but 'javac -h' can accomplish the same task.
|
|
c1f07a9f
|
2018-09-21T15:12:38
|
|
BUILDING.md: Correct/update Java information
- CMake 3.10.x or later must be used with JDK 11, or an error
("regex not supported") will occur when CMake tries to parse the Java
version number.
- The JDK is no longer available at java.com.
|
|
133e4af0
|
2018-09-04T16:56:22
|
|
Add x32 ABI support on Linux
The x32 ABI is similar to the x86-64 ABI but uses 32-bit pointers.
(Refer to https://sites.google.com/site/x32abi)
Based on:
https://github.com/libjpeg-turbo/libjpeg-turbo/pull/274/commits/8da8fc5213d87336d6c7200aaeeca925603e12cf
https://github.com/libjpeg-turbo/libjpeg-turbo/pull/274/commits/1e33dfea8042230e266b453f53d69a6e37b7f0de
https://github.com/libjpeg-turbo/libjpeg-turbo/pull/274/commits/24ffea78da0f18d0d467d16e02dfb903e6c0181e
https://github.com/libjpeg-turbo/libjpeg-turbo/pull/274/commits/dedcf76753c8913ef5c3c6e4ea329d29494b6065
https://github.com/libjpeg-turbo/libjpeg-turbo/pull/274/commits/d04228a7b58b9aed5bcbec383630ec1a14a3c9ca
https://github.com/libjpeg-turbo/libjpeg-turbo/pull/274/commits/b4ad38316ae1899c8a00b6568bb0325d82edcd7a
Closes #274
|
|
995eb29d
|
2018-09-04T16:57:52
|
|
Bump version to 2.1 alpha1
(to prepare for new features)
|
|
4f943644
|
2018-09-04T19:17:58
|
|
Enable DSPr2 SIMD extensions if CPU type is mipsel
The DSPr2 extensions have been verified to work with little endian MIPS.
Whether or not CMAKE_SYSTEM_PROCESSOR is set to "mips" or "mipsel" in a
little endian MIPS environment seems to be inconsistent, but our build
system needs to handle both cases.
|
|
3bef88f6
|
2018-09-04T17:33:12
|
|
Fix MIPS DSPr2 build when using soft float ABI
(for instance, when passing -msoft-float to the compiler)
The instructions used by jsimd_quantize_float_dspr2() and
jsimd_convsamp_float_dspr2() don't work with the soft float ABI, so
disable those functions when soft float is enabled.
Based on:
https://github.com/libjpeg-turbo/libjpeg-turbo/pull/272/commits/129a739bfabe1568d078eb2719691a76db128185
Closes #272
|
|
2260b66e
|
2018-08-31T12:55:33
|
|
jconfig.h: restore Autotools compatibility
(regression introduced with the CMake-based Un*x build system)
Refer to change log for more details.
Based on:
https://github.com/libjpeg-turbo/libjpeg-turbo/pull/275/commits/d992d12bc7631c29ab4adc42a7c5b4273fe2d56e
Closes #275
|
|
a861cc2f
|
2018-08-31T12:54:09
|
|
Bump version to 2.0.1 to prepare for new commits
|
|
43c58ff9
|
2018-07-31T21:59:16
|
|
Correct various typos in code comments
Found via `codespell -q 3`
Closes #263
|
|
574f3a77
|
2018-07-27T11:44:46
|
|
Clarify Android Windows build instructions
(must add .exe to CMAKE_C_COMPILER)
Addresses a concern raised in #245, #260
|
|
ad6c3161
|
2018-07-25T11:03:20
|
|
Bump revision to 2.0.0
|
|
8d95be3a
|
2018-07-24T21:16:00
|
|
Build: Don't use @rpath with OS X 10.4 builds
@rpath is only supported with 10.5 and later deployment targets.
libjpeg-turbo hasn't supported 10.4 "Tiger" since prior to 1.4, but I
still sometimes use the 10.4 SDK to test PowerPC code in a Snow Leopard
VM.
|
|
a6289526
|
2018-07-24T18:36:51
|
|
Fix JPEG spec references per ISO/ITU-T suggestions
- When referring to specific clauses, annexes, tables, and figures, a
"timed reference" (a reference that includes the year) must be used in
order to avoid confusion.
- "CCITT" = "ITU-T"
- Replace ambiguous "JPEG spec" with the specific document number.
|
|
9ab569e6
|
2018-07-20T18:04:15
|
|
Fix int overflow when decompr. corrupt prog. JPEG
No discernible performance regression
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9447
Credit to OSS Fuzz
Closes #259
|
|
9c78a04d
|
2018-07-20T17:21:36
|
|
cjpeg: Fix OOB read caused by malformed 8-bit BMP
... in which one or more of the color indices is out of range for the
number of palette entries.
Fix partly borrowed from jpeg-9c. This commit also adopts Guido's
JERR_PPM_OUTOFRANGE enum value in lieu of our project-specific
JERR_PPM_TOOLARGE enum value.
Fixes #258
|
|
0fa7850a
|
2018-07-20T11:30:04
|
|
Build: Preserve CMake exe suffix from cmd line
Normally the value of CMAKE_EXECUTABLE_SUFFIX is clobbered by project().
This allows for specifying an executable suffix of .html with Emscripten
builds, which causes Emscripten to build standalone HTML versions of the
libjpeg-turbo test programs.
|
|
0c8eb5b4
|
2018-07-19T17:01:42
|
|
Honor CMake exe suffix when inst. static builds
This specifically allows an Emscripten (WASM) static build (for which
CMAKE_EXECUTABLE_SUFFIX=.js) to be properly installed.
|
|
84893085
|
2018-07-10T15:06:46
|
|
README.ijg: Clarification regarding JPEG 2000/XR
The sentence:
"Indeed, one of the original reasons for developing this free software
was to help force convergence on common, interoperable format standards
for JPEG files."
might be seen to imply that JPEG 2000 and JPEG XR are not interoperable
with themselves, although it is certainly the case that those formats
are not interoperable with each other, nor with
ITU T.81 | ISO/IEC 10918. They are also certainly not as common as
ITU T.81 | ISO/IEC 10918, and (as an example) popular web browsers will
not display JPEG 2000 files.
The sentence in question was originally referring to proprietary,
non-standard formats and was meant to provide historical context.
libjpeg was originally released prior to the adoption of JFIF as an
official standard, so it encouraged adoption of JFIF as a de facto
standard by providing, under a business-friendly free software license,
a library for reading and writing images in that format.
|
|
f4b8a5cf
|
2018-07-02T11:42:06
|
|
BUILDING.md: Correct iOS/Android examples
toolchain.cmake should be created in the build directory, so the scripts
need to cd to that directory before generating that file.
Closes #254
|
|
6d8caa9f
|
2018-06-29T12:45:57
|
|
Build: Detect whether compiler supports DSPr2
This is basically the same test that was performed in acinclude.m4 in
the old autotools-based build system. It was not ported to the
CMake-based build system because I previously had no way of testing
a non-DSPr2 build environment.
Fixes #248
|
|
398c1e9a
|
2018-06-16T18:31:35
|
|
Fix jpeg_skip_scanlines() segfault w/merged upsamp
Fixes NULL pointer reference when decompressing 4:2:2 or 4:2:0 JPEG
images with cinfo.do_fancy_upsampling = FALSE.
Closes #244
|
|
26f10929
|
2018-06-24T17:31:15
|
|
Fix infinite loop in partial image decompression
... caused by using certain specific combinations of
jpeg_skip_scanlines() and jpeg_read_scanlines() calls with progressive,
vertically-subsampled JPEG images.
Fixes #237
|