Skip to content
This repository has been archived by the owner on Mar 1, 2023. It is now read-only.

Tags: EhViewer-NekoInverter/libjpeg-turbo

Tags

2.0.7-esr

Toggle 2.0.7-esr's commit message
ChangeLog.md: "2.0.7" --> "2.0.7 ESR"

2.1.3

Toggle 2.1.3's commit message
Neon/AArch64: Explicitly unroll quant loop w/Clang

The loop in jsimd_quantize_neon() is only executed twice and should be
unrolled for AArch64 targets.  GCC does that by default, but Clang 11
and later versions available at the time of this writing do not.  This
patch adds an unroll pragma when targetting AArch64 with Clang.  We do
not use the unroll pragma for AArch32 targets, because it causes the
Clang-generated assembly code to exhaust the available Neon registers
(32 x 64-bit) and spill to the stack.  (DRC: Referring to the discussion
in #570, this is likely due to compiler confusion that results in poor
register allocation.  It is possible to eliminate the spillage and
reduce the instruction count by loading the data on a just-in-time
basis, thus explicitly interleaving compute and I/O, but the performance
implications of that are currently unknown.)

The effects of unrolling the quantization loop are:
1) elimination of the loop control flow overhead and
2) enabling the use of LDP/STP instructions that work from a single
   base pointer, instead of using double the number of LDR/STR
   instructions, each requiring an address calculation.

Closes #570

2.1.2

Toggle 2.1.2's commit message
cjpeg: Add -strict arg to treat warnings as fatal

This adds fault tolerance to the LZW-compressed GIF reader, which is
the only compression-side code that can throw warnings.

2.1.1

Toggle 2.1.1's commit message
jmemmgr.c: Pass correct size arg to jpeg_free_*()

This issue was introduced in 5557fd2
due to an oversight, so it has existed in libjpeg-turbo since the
project's inception.  However, the issue is effectively a non-issue.
Although #325 proposes allowing programs to override jpeg_get_*() and
jpeg_free_*() externally, there is currently no way to override those
functions without modifying the libjpeg-turbo source code.
libjpeg-turbo only includes the malloc()/free() memory manager from
libjpeg, and the implementation of jpeg_free_*() in that memory manager
ignores the size argument.  libjpeg had several additional memory
managers for legacy systems (MS-DOS, System 7, etc.), but those memory
managers ignored the size argument to jpeg_free_*() as well.  Thus, this
issue would have only potentially affected custom memory managers in
downstream libjpeg-turbo forks, and since no one has complained until
now, apparently those are rare.

Fixes #542

2.1.0

Toggle 2.1.0's commit message
GitHub Actions: Don't build tags

Our workflow script does not currently work with tags, and there is no
point to building tags anyhow, since we do not use the CI system to spin
official builds.

2.0.90

Toggle 2.0.90's commit message
Travis: Use Docker tag that matches Git branch

2.0.6

Toggle 2.0.6's commit message
Travis: Install MacPorts without using macports-ci

2.0.5

Toggle 2.0.5's commit message
TurboJPEG: Make global error handling thread-safe

... on platforms that support thread-local storage.  This currently
includes all supported platforms except 32-bit macOS.

Fixes #396

jpeg-9d

Toggle jpeg-9d's commit message
The Independent JPEG Group's JPEG software v9d

2.0.4

Toggle 2.0.4's commit message
simd/arm64/jsimd_neon.S: Fix checkstyle issue