]> granicus.if.org Git - libjpeg-turbo/log
libjpeg-turbo
8 years agoFix 'make dist' 1.4.2
DRC [Mon, 21 Sep 2015 18:45:45 +0000 (13:45 -0500)]
Fix 'make dist'

8 years ago1.4.2
DRC [Mon, 21 Sep 2015 18:43:36 +0000 (13:43 -0500)]
1.4.2

8 years agoFix various issues reported by the UB sanitizers
DRC [Mon, 21 Sep 2015 17:57:41 +0000 (12:57 -0500)]
Fix various issues reported by the UB sanitizers
Most of these involved left shifting a negative number, which is
technically undefined (although every modern compiler I'm aware of
will implement this by treating the signed integer as a 2's complement
unsigned integer-- the LEFT_SHIFT() macro just makes this behavior
explicit in order to shut up ubsan.)  This also fixes a couple of
non-issues in the entropy codecs, whereby the sanitizer reported an
out-of-bounds index in the 4th argument of jpeg_make_d_derived_tbl().
In those cases, the index was actually out of bounds (caused by a
malformed JPEG image), but jpeg_make_d_derived_tbl() would have caught
the error and aborted prior to actually using the invalid address.  Here
again, the fix was to make our intentions explicit so as to shut up
ubsan.

8 years agoFix MIPS DSPr2 4:2:0 upsample bug w/ small images
James Cowgill [Thu, 17 Sep 2015 04:05:46 +0000 (23:05 -0500)]
Fix MIPS DSPr2 4:2:0 upsample bug w/ small images
The DSPr2 code was errantly comparing the residual (t9, width & 0xF)
with the end pointer (t4, out + width) instead of the width directly
(a1).  This would give the wrong results with any image whose output
width was less than 16.  The other small changes (ulw to lw and removal
of the nop) are just some easy optimizations around this code.

This issue caused a buffer overrun and subsequent segfault on images
whose scaled output height was 1 pixel and whose scaled output width was
< 16 pixels.  Note that the "plain" (non-fancy and non-merged) upsample
routine, which was affected by this bug, is normally not used except
when decompressing a non-YCbCr JPEG image, but it is also used when
decompressing a single-row image (because the other upsampling
algorithms require at least two rows.)

Closes #16.

8 years agoFix x86-64 ABI conformance issue in SIMD code
Chandler Carruth [Tue, 15 Sep 2015 18:57:03 +0000 (11:57 -0700)]
Fix x86-64 ABI conformance issue in SIMD code
(descriptions cribbed by DRC from discussion in #20)
In the x86-64 ABI, the high (unused) DWORD of a 32-bit argument's
register is undefined, so it was incorrect to use a 64-bit mov
instruction to transfer a JDIMENSION argument in the 64-bit SSE2 SIMD
functions.  The code worked thus far only because the existing compiler
optimizers weren't smart enough to do anything else with the register in
question, so the upper 32 bits happened to be all zeroes-- for the past
6 years, on every x86-64 compiler previously known to mankind.

The bleeding-edge Clang/LLVM compiler has a smarter optimizer, and
under certain circumstances, it will attempt to load-combine adjacent
32-bit integers from one of the libjpeg structures into a single 64-bit
integer and pass that 64-bit integer as a 32-bit argument to one of the
SIMD functions (which is allowed by the ABI, since the upper 32 bits of
the 32-bit argument's register are undefined.)  This caused the
libjpeg-turbo regression tests to crash.

Also enhance the documentation of JDIMENSION to explain that its size
is significant to the implementation of the SIMD code.

Closes #20.  Refer also to http://crbug.com/532214.

8 years agoAdd file that explains the libjpeg-turbo licenses
DRC [Tue, 8 Sep 2015 23:59:37 +0000 (18:59 -0500)]
Add file that explains the libjpeg-turbo licenses
Previously this information was found in a page on libjpeg-turbo.org,
but there was still some confusion, because README-turbo.txt wasn't
clear as to which license applied to what.

8 years agoFix negative shift with IFAST FDCT and qual=100
DRC [Sat, 29 Aug 2015 23:05:43 +0000 (18:05 -0500)]
Fix negative shift with IFAST FDCT and qual=100
With certain images, compressing using quality=100 and the fast integer
forward DCT will cause the divisor passed to compute_reciprocal() to be
1.  In those cases, the library already disables the SIMD quantization
algorithm to avoid 16-bit overflow.  However, compute_reciprocal()
doesn't properly handle the divisor==1 case, so we need to use special
values in that case so that the C quantization algorithm will behave
like an identity function.

8 years agoEliminate cppcheck false positive in turbojpeg.c
DRC [Thu, 27 Aug 2015 01:29:36 +0000 (20:29 -0500)]
Eliminate cppcheck false positive in turbojpeg.c

8 years agoCheck range of integer values in PPM text file
Frank Bossen [Mon, 29 Dec 2014 18:42:20 +0000 (19:42 +0100)]
Check range of integer values in PPM text file

Add checks to ensure values are within the specified range.

Fixes mozilla/mozjpeg#141, closes #8

8 years agoCheck image size when reading targa file
Frank Bossen [Mon, 29 Dec 2014 17:38:36 +0000 (18:38 +0100)]
Check image size when reading targa file

Throw an error when image width or height is 0.

Fixes mozilla/mozjpeg#140, closes #7.

8 years agoFix cjpeg segfault when Windows BMP width/height<0
DRC [Thu, 13 Aug 2015 16:09:05 +0000 (11:09 -0500)]
Fix cjpeg segfault when Windows BMP width/height<0
rdbmp.c used the ambiguous INT32 datatype, which is sometimes typedef'ed
to long.  Windows bitmap headers use 32-bit signed integers for the
width and height, because height can sometimes be negative (this
indicates a top-down bitmap.)  If biWidth or biHeight was negative and
INT32 was a 64-bit long, then biWidth and biHeight were read as a
positive integer > INT32_MAX, which failed the test in line 385:

    if (biWidth <= 0 || biHeight <= 0)
        ERREXIT(cinfo, JERR_BMP_EMPTY);

This commit refactors rdbmp.c so that it uses the datatypes specified by
Microsoft for the Windows BMP header.

This closes #9 and also provides a better solution for mozilla/mozjpeg#153.

8 years agoTabs to spaces in turbojpeg.h
DRC [Thu, 13 Aug 2015 23:05:32 +0000 (18:05 -0500)]
Tabs to spaces in turbojpeg.h
This was a formatting regression in 1.4.x introduced when the new
TurboJPEG functions were added.

8 years agoUpdate x86[-64] assembler recommendations
DRC [Tue, 4 Aug 2015 04:59:12 +0000 (23:59 -0500)]
Update x86[-64] assembler recommendations
NASM 2.11.08 has a bug that prevents it from properly assembling a
macho64 version of libjpeg-turbo (the resulting binary generates corrupt
images.)  2.11.09 works properly.  YASM also works properly and has been
a supported alternative since libjpeg-turbo 1.2.

8 years agoUpdate x86[-64] assembler recommendations
DRC [Tue, 4 Aug 2015 04:58:40 +0000 (23:58 -0500)]
Update x86[-64] assembler recommendations
NASM 2.11.08 has a bug that prevents it from properly assembling a
macho64 version of libjpeg-turbo (the resulting binary generates corrupt
images.)  2.11.09 works properly.  YASM also works properly and has been
a supported alternative since libjpeg-turbo 1.2.

8 years agoUpdate x86[-64] assembler recommendations
DRC [Tue, 4 Aug 2015 04:56:09 +0000 (23:56 -0500)]
Update x86[-64] assembler recommendations
NASM 2.11.08 has a bug that prevents it from properly assembling a
macho64 version of libjpeg-turbo (the resulting binary generates corrupt
images.)  2.11.09 works properly.  YASM also works properly and has been
a supported alternative since libjpeg-turbo 1.2.

8 years agoUpdate URL for our custom gas-preprocessor.pl
DRC [Mon, 3 Aug 2015 18:16:21 +0000 (13:16 -0500)]
Update URL for our custom gas-preprocessor.pl

8 years agoFix rare bug: right shift by a negative # of bits
DRC [Tue, 21 Jul 2015 21:43:39 +0000 (16:43 -0500)]
Fix rare bug: right shift by a negative # of bits
Under very rare circumstances, decompressing specific corrupt JPEG
images would create a situation whereby GET_BITS(1) was invoked
from within HUFF_DECODE_FAST() when bits_left=0. This produced a right
shift by a negative number of bits, which is undefined in C.

8 years agoFix rare bug: right shift by a negative # of bits
DRC [Tue, 21 Jul 2015 21:43:39 +0000 (16:43 -0500)]
Fix rare bug: right shift by a negative # of bits
Under very rare circumstances, decompressing specific corrupt JPEG
images would create a situation whereby GET_BITS(1) was invoked
from within HUFF_DECODE_FAST() when bits_left=0. This produced a right
shift by a negative number of bits, which is undefined in C.

8 years agoFix rare bug: right shift by a negative # of bits
DRC [Tue, 21 Jul 2015 21:43:39 +0000 (16:43 -0500)]
Fix rare bug: right shift by a negative # of bits
Under very rare circumstances, decompressing specific corrupt JPEG
images would create a situation whereby GET_BITS(1) was invoked
from within HUFF_DECODE_FAST() when bits_left=0. This produced a right
shift by a negative number of bits, which is undefined in C.

8 years agoConvert the BUILD stamp to AC_ARG_WITH argument, so we can make the build reproducible
Ondřej Surý [Tue, 28 Jul 2015 07:19:13 +0000 (09:19 +0200)]
Convert the BUILD stamp to AC_ARG_WITH argument, so we can make the build reproducible

8 years agoConvert svn:ignore properties to .gitignore
DRC [Mon, 27 Jul 2015 08:50:34 +0000 (03:50 -0500)]
Convert svn:ignore properties to .gitignore

8 years agoConvert svn:ignore properties to .gitignore 1.1.x
DRC [Mon, 27 Jul 2015 08:50:34 +0000 (03:50 -0500)]
Convert svn:ignore properties to .gitignore

8 years agoConvert svn:ignore properties to .gitignore 1.0.x
DRC [Mon, 27 Jul 2015 08:50:34 +0000 (03:50 -0500)]
Convert svn:ignore properties to .gitignore

8 years agoConvert svn:ignore properties to .gitignore
DRC [Mon, 27 Jul 2015 08:50:34 +0000 (03:50 -0500)]
Convert svn:ignore properties to .gitignore

8 years agoConvert svn:ignore properties to .gitignore
DRC [Mon, 27 Jul 2015 08:50:34 +0000 (03:50 -0500)]
Convert svn:ignore properties to .gitignore

8 years agoFix build whenever IDCT_SCALING_SUPPORTED is undefined
DRC [Tue, 14 Jul 2015 20:51:53 +0000 (20:51 +0000)]
Fix build whenever IDCT_SCALING_SUPPORTED is undefined

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/branches/1.4.x@1597 632fc199-4ca6-4c93-a231-07263d6284db

8 years agoAdd additional protections against defining INT32 if another header has already defin...
DRC [Mon, 6 Jul 2015 16:04:04 +0000 (16:04 +0000)]
Add additional protections against defining INT32 if another header has already defined it (code borrowed from libjpeg v8.)  This isn't necessary when using the libjpeg-turbo build system on Windows, because the CMake generated jconfig.h defines INT32 and then defines XMD_H to trick jmorecfg.h into not redefining it.  However, some projects build libjpeg-turbo using their own build systems.

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/branches/1.4.x@1593 632fc199-4ca6-4c93-a231-07263d6284db

8 years agoThe Independent JPEG Group's JPEG software v8d jpeg-8d
Guido Vollbeding [Sun, 15 Jan 2012 00:00:00 +0000 (00:00 +0000)]
The Independent JPEG Group's JPEG software v8d

8 years agoThe Independent JPEG Group's JPEG software v8c jpeg-8c
Guido Vollbeding [Sun, 16 Jan 2011 00:00:00 +0000 (00:00 +0000)]
The Independent JPEG Group's JPEG software v8c

8 years agoThe Independent JPEG Group's JPEG software v8b jpeg-8b
Guido Vollbeding [Sun, 16 May 2010 00:00:00 +0000 (00:00 +0000)]
The Independent JPEG Group's JPEG software v8b

8 years agoThe Independent JPEG Group's JPEG software v8a jpeg-8a
Guido Vollbeding [Sun, 28 Feb 2010 00:00:00 +0000 (00:00 +0000)]
The Independent JPEG Group's JPEG software v8a

8 years agoThe Independent JPEG Group's JPEG software v8 jpeg-8
Guido Vollbeding [Sun, 10 Jan 2010 00:00:00 +0000 (00:00 +0000)]
The Independent JPEG Group's JPEG software v8

8 years agoThe Independent JPEG Group's JPEG software v7 jpeg-7
Guido Vollbeding [Sat, 27 Jun 2009 00:00:00 +0000 (00:00 +0000)]
The Independent JPEG Group's JPEG software v7

8 years agoThe Independent JPEG Group's JPEG software v6b with arithmetic coding support jpeg-ari
Guido Vollbeding [Sat, 28 Mar 1998 00:00:00 +0000 (00:00 +0000)]
The Independent JPEG Group's JPEG software v6b with arithmetic coding support

8 years agoThe Independent JPEG Group's JPEG software v6b jpeg-6b
Thomas G. Lane [Fri, 27 Mar 1998 00:00:00 +0000 (00:00 +0000)]
The Independent JPEG Group's JPEG software v6b

8 years agoThe Independent JPEG Group's JPEG software v6a jpeg-6a
Thomas G. Lane [Wed, 7 Feb 1996 00:00:00 +0000 (00:00 +0000)]
The Independent JPEG Group's JPEG software v6a

8 years agoThe Independent JPEG Group's JPEG software v6 jpeg-6
Thomas G. Lane [Wed, 2 Aug 1995 00:00:00 +0000 (00:00 +0000)]
The Independent JPEG Group's JPEG software v6

8 years agoThe Independent JPEG Group's JPEG software v5b jpeg-5b
Thomas G. Lane [Wed, 15 Mar 1995 00:00:00 +0000 (00:00 +0000)]
The Independent JPEG Group's JPEG software v5b

8 years agoThe Independent JPEG Group's JPEG software v5a jpeg-5a
Thomas G. Lane [Wed, 7 Dec 1994 00:00:00 +0000 (00:00 +0000)]
The Independent JPEG Group's JPEG software v5a

8 years agoThe Independent JPEG Group's JPEG software v5 jpeg-5
Thomas G. Lane [Sat, 24 Sep 1994 00:00:00 +0000 (00:00 +0000)]
The Independent JPEG Group's JPEG software v5

8 years agoThe Independent JPEG Group's JPEG software v4a jpeg-4a
Thomas G. Lane [Thu, 18 Feb 1993 00:00:00 +0000 (00:00 +0000)]
The Independent JPEG Group's JPEG software v4a

8 years agoThe Independent JPEG Group's JPEG software v4 jpeg-4
Thomas G. Lane [Thu, 10 Dec 1992 00:00:00 +0000 (00:00 +0000)]
The Independent JPEG Group's JPEG software v4

8 years agoThe Independent JPEG Group's JPEG software v3 jpeg-3
Thomas G. Lane [Tue, 17 Mar 1992 00:00:00 +0000 (00:00 +0000)]
The Independent JPEG Group's JPEG software v3

8 years agoThe Independent JPEG Group's JPEG software v2 jpeg-2
Thomas G. Lane [Fri, 13 Dec 1991 00:00:00 +0000 (00:00 +0000)]
The Independent JPEG Group's JPEG software v2

8 years agoThe Independent JPEG Group's JPEG software v1 jpeg-1
Thomas G. Lane [Mon, 7 Oct 1991 00:00:00 +0000 (00:00 +0000)]
The Independent JPEG Group's JPEG software v1

8 years agoMake sure that Java is disabled when 12-bit is enabled (Java requires TurboJPEG,...
DRC [Sat, 27 Jun 2015 07:56:29 +0000 (07:56 +0000)]
Make sure that Java is disabled when 12-bit is enabled (Java requires TurboJPEG, which currently only supports 8-bit samples), and tabs-->spaces

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/branches/1.4.x@1584 632fc199-4ca6-4c93-a231-07263d6284db

8 years agoStudies show that GCC v5.1.0 performs as well as or better than v4.2, but v4.7.x...
DRC [Sat, 20 Jun 2015 16:21:33 +0000 (16:21 +0000)]
Studies show that GCC v5.1.0 performs as well as or better than v4.2, but v4.7.x-v4.9.x do not perform as well as v4.2.

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/branches/1.4.x@1572 632fc199-4ca6-4c93-a231-07263d6284db

8 years agoTypo
DRC [Sat, 20 Jun 2015 15:51:34 +0000 (15:51 +0000)]
Typo

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/branches/1.4.x@1570 632fc199-4ca6-4c93-a231-07263d6284db

8 years agoClarify that the TurboJPEG API functions/methods do not modify the source buffer.
DRC [Fri, 19 Jun 2015 16:07:14 +0000 (16:07 +0000)]
Clarify that the TurboJPEG API functions/methods do not modify the source buffer.

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/branches/1.4.x@1567 632fc199-4ca6-4c93-a231-07263d6284db

8 years agoNow that the TurboJPEG API is reporting libjpeg warnings as errors, an "Invalid SOS... 1.4.1
DRC [Mon, 8 Jun 2015 18:31:34 +0000 (18:31 +0000)]
Now that the TurboJPEG API is reporting libjpeg warnings as errors, an "Invalid SOS parameters for sequential JPEG" warning surfaced in tjDecodeYUV*().  This was caused by the Se member of jpeg_decompress_struct being set to 0 (it is normally set to a non-zero value when the start-of-scan markers are read, but there are no SOS markers in this case, because we're not actually decompressing a JPEG file.)

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/branches/1.4.x@1564 632fc199-4ca6-4c93-a231-07263d6284db

8 years agoFix a segfault that occured in the MIPS DSPr2 fancy upsampling routine when downsampl...
DRC [Mon, 8 Jun 2015 17:41:34 +0000 (17:41 +0000)]
Fix a segfault that occured in the MIPS DSPr2 fancy upsampling routine when downsampled_width==3.  Because the DSPr2 code unrolls the loop for the middle columns (refer to jdsample.c), it has the effect of performing two column iterations, and that only works properly if the number of columns (minus the first and last) is >= 2.  For the specific case of downsampled_width==3, this patch skips to the second iteration of the unrolled column loop.

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/branches/1.4.x@1562 632fc199-4ca6-4c93-a231-07263d6284db

8 years agoIf a warning (such as "Premature end of JPEG file") is triggered in the underlying...
DRC [Mon, 1 Jun 2015 19:22:41 +0000 (19:22 +0000)]
If a warning (such as "Premature end of JPEG file") is triggered in the underlying libjpeg API, make sure that the TurboJPEG API function returns -1.  Unlike errors, however, libjpeg warnings do not make the TurboJPEG functions abort.

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/branches/1.4.x@1561 632fc199-4ca6-4c93-a231-07263d6284db

9 years agoBack out r1555 and r1548. Using setenv() didn't fix the iOS simulator issue. It...
DRC [Sun, 17 May 2015 15:56:18 +0000 (15:56 +0000)]
Back out r1555 and r1548.  Using setenv() didn't fix the iOS simulator issue.  It just replaced an undefined _putenv$UNIX2003 symbol with an undefined _setenv$UNIX2003 symbol.  The correct solution seems to be to use -D_NONSTD_SOURCE when generating our official builds.

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/branches/1.4.x@1557 632fc199-4ca6-4c93-a231-07263d6284db

9 years agoFix the Windows build. I remember now why I used putenv() originally-- because Windo...
DRC [Sat, 16 May 2015 04:18:21 +0000 (04:18 +0000)]
Fix the Windows build.  I remember now why I used putenv() originally-- because Windows doesn't have setenv().  We could use _putenv_s(), but older versions of MinGW don't have that either.  Fortunately, since all of the environment values we're setting in turbojpeg.c are static, we can just map setenv() to putenv() using a macro.  NOTE: we still have to use _putenv_s() in turbojpeg-jni.c, but at least people who may need to build with an older version of MinGW can still do so by disabling the Java build.

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/branches/1.4.x@1555 632fc199-4ca6-4c93-a231-07263d6284db

9 years agoAllow building only static or only shared libraries on Windows
DRC [Fri, 15 May 2015 22:08:21 +0000 (22:08 +0000)]
Allow building only static or only shared libraries on Windows

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/branches/1.4.x@1553 632fc199-4ca6-4c93-a231-07263d6284db

9 years ago__WORDSIZE doesn't seem to be available on platforms other than Mac or Linux, and...
DRC [Fri, 15 May 2015 19:09:44 +0000 (19:09 +0000)]
__WORDSIZE doesn't seem to be available on platforms other than Mac or Linux, and best practices are for user-level code not to rely on it anyhow, since it's meant to be an internal macro.  Fortunately, autoconf already has a way of determining the word size at configure time, so it can be passed into the compiler.  This should work on any platform and has been tested on all of the Un*x platforms we support (Linux, Mac, FreeBSD, Solaris.)

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/branches/1.4.x@1550 632fc199-4ca6-4c93-a231-07263d6284db

9 years agoUnless you define _ANSI_SOURCE, then putenv() on Mac is renamed to putenv$UNIX2003...
DRC [Fri, 15 May 2015 18:23:59 +0000 (18:23 +0000)]
Unless you define _ANSI_SOURCE, then putenv() on Mac is renamed to putenv$UNIX2003(), and this causes problems when trying to link an i386 iOS application (for the simulator) against the TurboJPEG static library.  It's easiest to just use setenv() instead.

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/branches/1.4.x@1548 632fc199-4ca6-4c93-a231-07263d6284db

9 years agoFix a bug in the 64-bit Huffman encoder that Google discovered when encoding some...
DRC [Wed, 6 May 2015 22:41:12 +0000 (22:41 +0000)]
Fix a bug in the 64-bit Huffman encoder that Google discovered when encoding some very specific (and proprietary) aerial images using quality=98, an optimized Huffman table, and the ISLOW DCT.  These images were causing the Huffman bit buffer to overflow, because the code for encoding the DC coefficient was using the equivalent of the 32-bit version of EMIT_BITS().  Thus, when 64-bit code was used, the DC coefficient code was not properly checking how many bits were in the buffer before attempting to add more bits to it.  This issue appears to have existed in all versions of libjpeg-turbo.

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/branches/1.4.x@1547 632fc199-4ca6-4c93-a231-07263d6284db

9 years agoRestore backward compatibility with MSVC < 2010 (broken by r1541)
DRC [Thu, 30 Apr 2015 09:05:53 +0000 (09:05 +0000)]
Restore backward compatibility with MSVC < 2010 (broken by r1541)

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/branches/1.4.x@1543 632fc199-4ca6-4c93-a231-07263d6284db

9 years agoOops. OS X doesn't define __WORDSIZE unless you include stdint.h, so apparently...
DRC [Wed, 22 Apr 2015 08:43:04 +0000 (08:43 +0000)]
Oops.  OS X doesn't define __WORDSIZE unless you include stdint.h, so apparently the Huffman codec hasn't ever been fully accelerated on 64-bit OS X.

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/branches/1.4.x@1541 632fc199-4ca6-4c93-a231-07263d6284db

9 years agoAllow the executables and libraries outside of the sharedlib/ directory to be linked...
DRC [Thu, 19 Mar 2015 19:27:40 +0000 (19:27 +0000)]
Allow the executables and libraries outside of the sharedlib/ directory to be linked against msvcr*.dll instead of libcmt*.lib.  This is reported to be necessary when building libjpeg-turbo for use with C#.

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/branches/1.4.x@1539 632fc199-4ca6-4c93-a231-07263d6284db

9 years agoSurround the usage of getenv() in the TurboJPEG API with #ifndef NO_GETENV so that...
DRC [Mon, 23 Feb 2015 19:19:40 +0000 (19:19 +0000)]
Surround the usage of getenv() in the TurboJPEG API with #ifndef NO_GETENV so that developers can add -DNO_GETENV to the C flags when building for platforms that don't have getenv().  Currently this is known to be necessary when building for Windows Phone.

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/branches/1.4.x@1537 632fc199-4ca6-4c93-a231-07263d6284db

9 years agoIf libjpeg-turbo is configured with a non-default prefix, such as /usr, then use...
DRC [Mon, 23 Feb 2015 19:06:44 +0000 (19:06 +0000)]
If libjpeg-turbo is configured with a non-default prefix, such as /usr, then use the docdir variable defined by autoconf 2.60 and later, if available.  This will, for instance, install the documentation under /usr/share/doc/libjpeg-turbo by default if prefix=/usr, unless docdir is overridden.  When using earlier versions of autoconf, docdir is set to ${datadir}/doc, as it always has been.

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/branches/1.4.x@1535 632fc199-4ca6-4c93-a231-07263d6284db

9 years agoEnable silent build rules for the NASM objects, if the source is configured with...
DRC [Mon, 23 Feb 2015 19:03:29 +0000 (19:03 +0000)]
Enable silent build rules for the NASM objects, if the source is configured with automake 1.11 or later.  NOTE: the build still spits out "error: ignoring unknown tag NASM" for each object, but unfortunately, if we remove "--tag NASM" from the command line, the build breaks under older versions of automake (it aborts with "unable to infer tagged configuration.")

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/branches/1.4.x@1534 632fc199-4ca6-4c93-a231-07263d6284db

9 years agoSet the RPM and deb architecture properly on non-x86 platforms.
DRC [Fri, 20 Feb 2015 20:12:15 +0000 (20:12 +0000)]
Set the RPM and deb architecture properly on non-x86 platforms.

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/branches/1.4.x@1531 632fc199-4ca6-4c93-a231-07263d6284db

9 years agoCome on, Cohaagen, you got what you want. Give these people air!
DRC [Wed, 28 Jan 2015 00:26:28 +0000 (00:26 +0000)]
Come on, Cohaagen, you got what you want.  Give these people air!

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/branches/1.4.x@1528 632fc199-4ca6-4c93-a231-07263d6284db

9 years agoOops. Need to set the alpha channel when using TYPE_4BYTE_ABGR*. This has no bearin...
DRC [Tue, 27 Jan 2015 21:00:22 +0000 (21:00 +0000)]
Oops.  Need to set the alpha channel when using TYPE_4BYTE_ABGR*.  This has no bearing on the actual tests, but it prevents the PNG pre-encode reference images for those tests from being blank.

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/branches/1.3.x@1526 632fc199-4ca6-4c93-a231-07263d6284db

9 years agoOops. Need to set the alpha channel when using TYPE_4BYTE_ABGR*. This has no bearin...
DRC [Tue, 27 Jan 2015 20:59:16 +0000 (20:59 +0000)]
Oops.  Need to set the alpha channel when using TYPE_4BYTE_ABGR*.  This has no bearing on the actual tests, but it prevents the PNG pre-encode reference images for those tests from being blank.

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/branches/1.4.x@1525 632fc199-4ca6-4c93-a231-07263d6284db

9 years agoOops. The MIPS SIMD implementations of h2v1 and h2v2 upsampling were not checking...
DRC [Wed, 21 Jan 2015 17:42:28 +0000 (17:42 +0000)]
Oops.  The MIPS SIMD implementations of h2v1 and h2v2 upsampling were not checking for DSPr2 support, so running 'djpeg -nosmooth' on a non-DSPr2-enabled platform caused an "illegal instruction" error.

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/branches/1.4.x@1523 632fc199-4ca6-4c93-a231-07263d6284db

9 years agoIntroduce fast paths to speed up NULL color conversion somewhat, particularly when...
DRC [Tue, 20 Jan 2015 10:33:32 +0000 (10:33 +0000)]
Introduce fast paths to speed up NULL color conversion somewhat, particularly when using 64-bit code;  on the decompression side, the "slow path" also now use an approach similar to that of the compression side (with the component loop outside of the column loop rather than inside.)  This is faster when using 32-bit code.

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/branches/1.4.x@1521 632fc199-4ca6-4c93-a231-07263d6284db

9 years agoSome clarifications (actually MIPS doesn't implement the float DCT/IDCT using SIMD...
DRC [Fri, 16 Jan 2015 07:16:53 +0000 (07:16 +0000)]
Some clarifications (actually MIPS doesn't implement the float DCT/IDCT using SIMD instructions)

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/branches/1.4.x@1517 632fc199-4ca6-4c93-a231-07263d6284db

9 years agoMake the floating point regression tests optional. It has been known for quite some...
DRC [Fri, 16 Jan 2015 06:53:36 +0000 (06:53 +0000)]
Make the floating point regression tests optional.  It has been known for quite some time that these tests do not always generate the same results unless there is full SIMD coverage of the floating point algorithms in libjpeg-turbo.  Further research reveals that there are basically three expected results:  the results from our SSE SIMD extensions (which are slightly more accurate than the C code), results from the C code when running on a 32-bit FPU (or when using SSE instructions on an x86-64 CPU, which is the default with GCC), and results from the C code when running on a 64-bit FPU (which presumably uses double-precision arithmetic by default.)  There is basically no way to determine which type of math will be used prior to run time, so it's best to just let the developers specify which result they expect on their particular system.

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/branches/1.4.x@1515 632fc199-4ca6-4c93-a231-07263d6284db

9 years agoIn the process of developing the AltiVec extensions, it was discovered that the norma...
DRC [Fri, 16 Jan 2015 06:45:54 +0000 (06:45 +0000)]
In the process of developing the AltiVec extensions, it was discovered that the normal regression tests aren't sufficient to test the behavior of the library with very small image sizes and when compressing from/decompressing to a subregion of a larger image buffer.  Thus, an additional regression test was added that takes advantage of the tiled compression/decompression feature in tjbench.  This is being back-ported to the 1.4.x branch primarily to verify that there are no lingering issues in the existing SIMD extensions.

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/branches/1.4.x@1514 632fc199-4ca6-4c93-a231-07263d6284db

9 years agoAdd separate pseudo-targets for the TurboJPEG and libjpeg regression tests, for those...
DRC [Fri, 16 Jan 2015 06:37:03 +0000 (06:37 +0000)]
Add separate pseudo-targets for the TurboJPEG and libjpeg regression tests, for those times when you just don't want to sit through 11 iterations of TJUnitTest to find out that your algorithm is broken.

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/branches/1.4.x@1513 632fc199-4ca6-4c93-a231-07263d6284db

9 years agoBump copyright year
DRC [Fri, 16 Jan 2015 06:34:08 +0000 (06:34 +0000)]
Bump copyright year

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/branches/1.4.x@1512 632fc199-4ca6-4c93-a231-07263d6284db

9 years agoAdd the ability to benchmark YCCK JPEG compression/decompression. This is particular...
DRC [Fri, 16 Jan 2015 06:29:52 +0000 (06:29 +0000)]
Add the ability to benchmark YCCK JPEG compression/decompression.  This is particularly useful since that is the only way to test the performance of the "plain" upsampling routines, which are accelerated on some platforms.

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/branches/1.4.x@1511 632fc199-4ca6-4c93-a231-07263d6284db

9 years ago1.4.1
DRC [Fri, 16 Jan 2015 06:17:05 +0000 (06:17 +0000)]
1.4.1

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/branches/1.4.x@1510 632fc199-4ca6-4c93-a231-07263d6284db

9 years agogit-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/branches/1.4.x@1494 632fc1...
DRC [Mon, 12 Jan 2015 08:36:37 +0000 (08:36 +0000)]
git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/branches/1.4.x@1494 632fc199-4ca6-4c93-a231-07263d6284db

9 years agoOops. Delete the duplicate copy of [lib]turbojpeg.dll in the binary directory when... 1.4.0
DRC [Wed, 7 Jan 2015 01:19:49 +0000 (01:19 +0000)]
Oops.  Delete the duplicate copy of [lib]turbojpeg.dll in the binary directory when uninstalling the package.

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/branches/1.4.x@1477 632fc199-4ca6-4c93-a231-07263d6284db

9 years agoDocument that the ARMv8/iOS issues are now fixed
DRC [Fri, 19 Dec 2014 18:18:46 +0000 (18:18 +0000)]
Document that the ARMv8/iOS issues are now fixed

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/branches/1.4.x@1454 632fc199-4ca6-4c93-a231-07263d6284db

9 years agoRemove reference to install.txt, which we do not include from the IJG distribution
DRC [Fri, 19 Dec 2014 18:07:04 +0000 (18:07 +0000)]
Remove reference to install.txt, which we do not include from the IJG distribution

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/branches/1.4.x@1453 632fc199-4ca6-4c93-a231-07263d6284db

9 years agoInclude ARMv8 binaries when generating a combined OS X/iOS package using 'make iosdmg'
DRC [Fri, 19 Dec 2014 17:34:30 +0000 (17:34 +0000)]
Include ARMv8 binaries when generating a combined OS X/iOS package using 'make iosdmg'

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/branches/1.4.x@1452 632fc199-4ca6-4c93-a231-07263d6284db

9 years agoIn the output of the configure script, indicate whether gas-preprocessor.pl is being...
DRC [Fri, 19 Dec 2014 15:40:21 +0000 (15:40 +0000)]
In the output of the configure script, indicate whether gas-preprocessor.pl is being used along with the assembler.

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/branches/1.4.x@1451 632fc199-4ca6-4c93-a231-07263d6284db

9 years agoModify the ARM64 assembly file so that it uses only syntax that the clang assembler...
DRC [Fri, 19 Dec 2014 15:36:39 +0000 (15:36 +0000)]
Modify the ARM64 assembly file so that it uses only syntax that the clang assembler in XCode 5.x can understand.  These changes should all be cosmetic in nature-- they do not change the meaning or readability of the code nor the ability to build it for Linux.  Actually, the code is now more in compliance with the ARM64 programming manual.  In addition to these changes, there were a couple of instructions that clang simply doesn't support, so gas-preprocessor.pl was modified so that it now converts those into equivalent instructions that clang can handle.

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/branches/1.4.x@1450 632fc199-4ca6-4c93-a231-07263d6284db

9 years agoAdd iOS architectures to the shared libraries generated by the Mac/iOS packaging...
DRC [Fri, 19 Dec 2014 10:44:09 +0000 (10:44 +0000)]
Add iOS architectures to the shared libraries generated by the Mac/iOS packaging system.  I have no idea how useful this is for "standard" iOS application development, but it is useful in a jailbreak environment, and iOS 8 supposedly allows shared libs in "official" apps as well.

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/branches/1.4.x@1447 632fc199-4ca6-4c93-a231-07263d6284db

9 years ago1.4.0
DRC [Fri, 19 Dec 2014 09:35:11 +0000 (09:35 +0000)]
1.4.0

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/branches/1.4.x@1446 632fc199-4ca6-4c93-a231-07263d6284db

9 years agoFix 'make dist'
DRC [Sun, 14 Dec 2014 11:47:49 +0000 (11:47 +0000)]
Fix 'make dist'

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/branches/1.4.x@1441 632fc199-4ca6-4c93-a231-07263d6284db

9 years agoFix typos in test names
DRC [Mon, 8 Dec 2014 23:23:41 +0000 (23:23 +0000)]
Fix typos in test names

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/branches/1.4.x@1439 632fc199-4ca6-4c93-a231-07263d6284db

9 years agoRemove unused code
DRC [Mon, 1 Dec 2014 20:13:12 +0000 (20:13 +0000)]
Remove unused code

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/branches/1.4.x@1437 632fc199-4ca6-4c93-a231-07263d6284db

9 years agoFix build when INPUT_SMOOTHING_SUPPORTED is undefined
DRC [Mon, 1 Dec 2014 19:54:15 +0000 (19:54 +0000)]
Fix build when INPUT_SMOOTHING_SUPPORTED is undefined

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/branches/1.4.x@1435 632fc199-4ca6-4c93-a231-07263d6284db

9 years agoSome software also needs the FAR macro. Ugh. Also wordsmithing.
DRC [Tue, 25 Nov 2014 10:07:43 +0000 (10:07 +0000)]
Some software also needs the FAR macro.  Ugh.  Also wordsmithing.

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/branches/1.4.x@1432 632fc199-4ca6-4c93-a231-07263d6284db

9 years agoRestore the JPP() and JMETHOD() macros. Even though libjpeg-turbo doesn't use them...
DRC [Tue, 25 Nov 2014 09:48:15 +0000 (09:48 +0000)]
Restore the JPP() and JMETHOD() macros.  Even though libjpeg-turbo doesn't use them anymore, other software apparently does:
https://bugzilla.redhat.com/show_bug.cgi?id=1164815
https://bugs.kde.org/show_bug.cgi?id=340944
https://bugzilla.mozilla.org/show_bug.cgi?id=1093615

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/branches/1.4.x@1430 632fc199-4ca6-4c93-a231-07263d6284db

9 years agoOops. Include the tjPlane*() functions in the mapfile so that they are exposed in...
DRC [Sat, 22 Nov 2014 23:56:26 +0000 (23:56 +0000)]
Oops.  Include the tjPlane*() functions in the mapfile so that they are exposed in the shared library on ELF systems.

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/branches/1.4.x@1429 632fc199-4ca6-4c93-a231-07263d6284db

9 years agoFix Huffman local buffer overrun discovered by Debian developers when attempting...
DRC [Sat, 22 Nov 2014 22:24:41 +0000 (22:24 +0000)]
Fix Huffman local buffer overrun discovered by Debian developers when attempting to transform a junk image using ImageMagick:
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=768369

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/branches/1.3.x@1427 632fc199-4ca6-4c93-a231-07263d6284db

9 years agoFix Huffman local buffer overrun discovered by Debian developers when attempting...
DRC [Sat, 22 Nov 2014 22:09:30 +0000 (22:09 +0000)]
Fix Huffman local buffer overrun discovered by Debian developers when attempting to transform a junk image using ImageMagick:
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=768369

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/branches/1.4.x@1426 632fc199-4ca6-4c93-a231-07263d6284db

9 years agoFix whitespace issues introduced with previous commit.
DRC [Sat, 22 Nov 2014 04:25:04 +0000 (04:25 +0000)]
Fix whitespace issues introduced with previous commit.

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/branches/1.4.x@1423 632fc199-4ca6-4c93-a231-07263d6284db

9 years agoPrint the library version and exit whenever -version is passed to cjpeg, djpeg, or...
DRC [Sat, 22 Nov 2014 04:04:38 +0000 (04:04 +0000)]
Print the library version and exit whenever -version is passed to cjpeg, djpeg, or jpegtran.

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/branches/1.4.x@1422 632fc199-4ca6-4c93-a231-07263d6284db

9 years agoMake TJCompressor.close() and TJDecompressor.close() idempotent
DRC [Fri, 21 Nov 2014 15:35:33 +0000 (15:35 +0000)]
Make TJCompressor.close() and TJDecompressor.close() idempotent

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/branches/1.3.x@1420 632fc199-4ca6-4c93-a231-07263d6284db

9 years agoSometimes the sampling factors in grayscale images can be > 1 (for instance, if compr...
DRC [Fri, 21 Nov 2014 15:33:19 +0000 (15:33 +0000)]
Sometimes the sampling factors in grayscale images can be > 1 (for instance, if compressing using 'cjpeg -sample 2x2 -grayscale'.)  Technically, sampling factors have no meaning with grayscale JPEGs, and the libjpeg decompressor ignores them in that case.  Thus, the TurboJPEG decompressor should ignore them as well.

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/branches/1.3.x@1419 632fc199-4ca6-4c93-a231-07263d6284db

9 years agoSometimes the sampling factors in grayscale images can be > 1 (for instance, if compr...
DRC [Wed, 19 Nov 2014 00:55:28 +0000 (00:55 +0000)]
Sometimes the sampling factors in grayscale images can be > 1 (for instance, if compressing using 'cjpeg -sample 2x2 -grayscale'.)  Technically, sampling factors have no meaning with grayscale JPEGs, and the libjpeg decompressor ignores them in that case.  Thus, the TurboJPEG decompressor should ignore them as well.

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/branches/1.4.x@1418 632fc199-4ca6-4c93-a231-07263d6284db