]> granicus.if.org Git - libjpeg-turbo/log
libjpeg-turbo
10 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

10 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

10 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

10 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

10 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

10 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

10 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

10 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

10 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

10 years agoMake TJCompressor.close() and TJDecompressor.close() idempotent
DRC [Tue, 18 Nov 2014 21:45:34 +0000 (21:45 +0000)]
Make TJCompressor.close() and TJDecompressor.close() idempotent

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

10 years agoUses clz and bsr instructions for bit counting on ARM64 platforms as well.
DRC [Tue, 18 Nov 2014 15:56:43 +0000 (15:56 +0000)]
Uses clz and bsr instructions for bit counting on ARM64 platforms as well.

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

10 years agoRemove trailing spaces
DRC [Thu, 6 Nov 2014 09:32:38 +0000 (09:32 +0000)]
Remove trailing spaces

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

10 years agoAnother oops. tjBufSizeYUV2() should return -1 if width < 1.
DRC [Thu, 23 Oct 2014 19:08:14 +0000 (19:08 +0000)]
Another oops.  tjBufSizeYUV2() should return -1 if width < 1.

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

10 years agoOops. tjPlaneSizeYUV() should return -1 if componentID > 0 and subsamp==TJSAMP_GRAY.
DRC [Thu, 23 Oct 2014 18:54:42 +0000 (18:54 +0000)]
Oops.  tjPlaneSizeYUV() should return -1 if componentID > 0 and subsamp==TJSAMP_GRAY.

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

10 years agoWhen building libjpeg-turbo on Un*x systems, INT32 is usually typedef'ed to long...
DRC [Thu, 4 Sep 2014 17:35:22 +0000 (17:35 +0000)]
When building libjpeg-turbo on Un*x systems, INT32 is usually typedef'ed to long, not int, so we need to specify an int pointer when doing a 4-byte write to the RGB565 output buffer.  On little endian systems, this doesn't matter, but when you write a 32-bit int to a 64-bit long pointer address on a big endian system, you are writing to the upper 4 bytes, not the lower 4 bytes.  NOTE: this will probably break on big endian systems that use 16-bit ints (are there any of those still around?)

This patch also removes an unneeded macro from jdmerge.c.

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

10 years agoFix Windows build
DRC [Sat, 30 Aug 2014 22:01:05 +0000 (22:01 +0000)]
Fix Windows build

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

10 years agoFix issues with RGB565 color conversion on big endian machines. The RGB565 routines...
DRC [Sat, 30 Aug 2014 20:37:50 +0000 (20:37 +0000)]
Fix issues with RGB565 color conversion on big endian machines.  The RGB565 routines are now abstracted in a separate file, with separate little-endian and big-endian versions defined at compile time through the use of macros (this is similar to how the colorspace extension routines work.)  This allows big-endian machines to take advantage of the same performance optimizations as little-endian machines, and it retains the performance on little-endian machines, since the conditional branch for endianness is at a very coarse-grained level.

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

10 years agoFix build on OS X PowerPC platforms
DRC [Sat, 30 Aug 2014 13:52:09 +0000 (13:52 +0000)]
Fix build on OS X PowerPC platforms

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

10 years agoFix build on OS X PowerPC platforms
DRC [Sat, 30 Aug 2014 13:55:08 +0000 (13:55 +0000)]
Fix build on OS X PowerPC platforms

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

10 years agoOops. Forgot to alter the version header in the change log to indicate the release...
DRC [Sat, 30 Aug 2014 13:48:45 +0000 (13:48 +0000)]
Oops.  Forgot to alter the version header in the change log to indicate the release of 1.4 beta.

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

10 years agoCreate 1.4.x branch
DRC [Fri, 29 Aug 2014 02:39:35 +0000 (02:39 +0000)]
Create 1.4.x branch

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

10 years agoRename the ARM64 assembly file to match the C file 1.3.90
DRC [Fri, 29 Aug 2014 01:53:17 +0000 (01:53 +0000)]
Rename the ARM64 assembly file to match the C file

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

10 years agoFix several mathematical issues discovered in the ARM64 NEON code while running the...
DRC [Fri, 29 Aug 2014 01:49:59 +0000 (01:49 +0000)]
Fix several mathematical issues discovered in the ARM64 NEON code while running the extended regression tests introduced in r1267.  Specific comments can be found in the original patches:
https://sourceforge.net/p/libjpeg-turbo/patches/64/

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

10 years agoReformat code per Siarhei's original patch (to clearly indicate that the offset instr...
DRC [Mon, 25 Aug 2014 15:26:09 +0000 (15:26 +0000)]
Reformat code per Siarhei's original patch (to clearly indicate that the offset instructions are completely independent) and add Siarhei as an individual author (he no longer works for Nokia.)

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

10 years agoClarify forward compatibility of iOS/ARM builds
DRC [Sat, 23 Aug 2014 17:48:17 +0000 (17:48 +0000)]
Clarify forward compatibility of iOS/ARM builds

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

10 years agoARM64 NEON SIMD support for YCC-to-RGB565 conversion
DRC [Sat, 23 Aug 2014 15:57:38 +0000 (15:57 +0000)]
ARM64 NEON SIMD support for YCC-to-RGB565 conversion

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

10 years agoARM NEON SIMD support for YCC-to-RGB565 conversion, and optimizations to the existing...
DRC [Sat, 23 Aug 2014 15:47:51 +0000 (15:47 +0000)]
ARM NEON SIMD support for YCC-to-RGB565 conversion, and optimizations to the existing YCC-to-RGB conversion code:

-----

https://github.com/ssvb/libjpeg-turbo/commit/aee36252be20054afce371a92406fc66ba6627b5.patch

From aee36252be20054afce371a92406fc66ba6627b5 Mon Sep 17 00:00:00 2001
From: Siarhei Siamashka <siarhei.siamashka@gmail.com>
Date: Wed, 13 Aug 2014 03:50:22 +0300
Subject: [PATCH] ARM: Faster NEON yuv->rgb conversion for Krait and Cortex-A15

The older code was developed and tested only on ARM Cortex-A8 and ARM Cortex-A9.
Tuning it for newer ARM processors can introduce some speed-up (up to 20%).

The performance of the inner loop (conversion of 8 pixels) improves from
~27 cycles down to ~22 cycles on Qualcomm Krait 300, and from ~20 cycles
down to ~18 cycles on ARM Cortex-A15.

The performance remains exactly the same on ARM Cortex-A7 (~58 cycles),
ARM Cortex-A8 (~25 cycles) and ARM Cortex-A9 (~30 cycles) processors.

Also use larger indentation in the source code for separating two independent
instruction streams.

-----

https://github.com/ssvb/libjpeg-turbo/commit/a5efdbf22ce9c1acd4b14a353cec863c2c57557e.patch

From a5efdbf22ce9c1acd4b14a353cec863c2c57557e Mon Sep 17 00:00:00 2001
From: Siarhei Siamashka <siarhei.siamashka@gmail.com>
Date: Wed, 13 Aug 2014 07:23:09 +0300
Subject: [PATCH] ARM: NEON optimized yuv->rgb565 conversion

The performance of the inner loop (conversion of 8 pixels):
* ARM Cortex-A7:  ~55 cycles
* ARM Cortex-A8:  ~28 cycles
* ARM Cortex-A9:  ~32 cycles
* ARM Cortex-A15: ~20 cycles
* Qualcomm Krait: ~24 cycles

Based on the Linaro rgb565 patch from
    https://sourceforge.net/p/libjpeg-turbo/patches/24/
but implements better instructions scheduling.

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

10 years agoEnsure that tjFree() is used for any JPEG buffers that might have been dynamically...
DRC [Fri, 22 Aug 2014 19:59:51 +0000 (19:59 +0000)]
Ensure that tjFree() is used for any JPEG buffers that might have been dynamically allocated by the compress/transform functions.  To keep things simple, we use tjAlloc() for the statically-allocated buffer as well, so that tjFree() can always be used to free the buffer, regardless of whether it was allocated by tjbench or by the TurboJPEG library.  This fixes crashes that occurred on Windows when running tjunittest or tjbench with the -alloc flag.

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

10 years agoEnsure that tjFree() is used for any JPEG buffers that might have been dynamically...
DRC [Fri, 22 Aug 2014 19:27:28 +0000 (19:27 +0000)]
Ensure that tjFree() is used for any JPEG buffers that might have been dynamically allocated by the compress/transform functions.  To keep things simple, we use tjAlloc() for the statically-allocated buffer as well, so that tjFree() can always be used to free the buffer, regardless of whether it was allocated by tjbench or by the TurboJPEG library.  This fixes crashes that occurred on Windows when running tjunittest or tjbench with the -alloc flag.

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

10 years agoRevert r1335 and r1336. It was a valiant effort, but on Windows, xmm8-xmm15 are...
DRC [Fri, 22 Aug 2014 18:30:44 +0000 (18:30 +0000)]
Revert r1335 and r1336.  It was a valiant effort, but on Windows, xmm8-xmm15 are non-volatile, and the overhead of pushing them onto the stack at the beginning of each function and popping them at the end was causing worse performance (in the neighborhood of 3-5%) than just using the work areas and limiting the register usage to xmm0-xmm7.  Best to leave the SSE2 code alone.  We can optimize the register usage for AVX2, once that port takes place.

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

10 years agoDon't use sudo when building a Debian package unless the user is non-root
DRC [Fri, 22 Aug 2014 17:21:09 +0000 (17:21 +0000)]
Don't use sudo when building a Debian package unless the user is non-root

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

10 years agoWindows doesn't have setenv(). Go, go Gadget Macros.
DRC [Fri, 22 Aug 2014 15:39:32 +0000 (15:39 +0000)]
Windows doesn't have setenv().  Go, go Gadget Macros.

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

10 years ago1.4 beta1
DRC [Fri, 22 Aug 2014 14:22:00 +0000 (14:22 +0000)]
1.4 beta1

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

10 years agoFix 'make dist'
DRC [Fri, 22 Aug 2014 14:19:12 +0000 (14:19 +0000)]
Fix 'make dist'

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

10 years agoDon't use sudo when building a Debian package unless the user is non-root
DRC [Fri, 22 Aug 2014 14:15:08 +0000 (14:15 +0000)]
Don't use sudo when building a Debian package unless the user is non-root

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

10 years agoAdd a set of undocumented environment variables and Java system properties that allow...
DRC [Fri, 22 Aug 2014 13:43:33 +0000 (13:43 +0000)]
Add a set of undocumented environment variables and Java system properties that allow compression features of libjpeg that are not normally exposed in the TurboJPEG API to be enabled.  These features are not normally exposed because, for the most part, they aren't "turbo" features, but it is still useful to be able to benchmark them without modifying the code.

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

10 years ago.func/.endfunc are only necessary when generating STABS debug info, which basically...
DRC [Fri, 22 Aug 2014 11:31:46 +0000 (11:31 +0000)]
.func/.endfunc are only necessary when generating STABS debug info, which basically went out of style with parachute pants and Rick Astley.  At any rate, none of the platforms for which we're building the ARM code use it (DWARF is the common format these days), and the .func/.endfunc directives cause the clang integrated assembler to fail (http://llvm.org/bugs/show_bug.cgi?id=20424).

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

10 years agoExtend tjbenchtest so that it tests the dynamic JPEG buffer allocation feature in...
DRC [Fri, 22 Aug 2014 03:04:06 +0000 (03:04 +0000)]
Extend tjbenchtest so that it tests the dynamic JPEG buffer allocation feature in TurboJPEG.  Disable the tiling feature in TJBench whenever dynamic buffer allocation is enabled (because the tiling feature requires a separate buffer for each tile, using it successfully with dynamic buffer allocation would require a separate TurboJPEG compressor instance for each tile, and it's not worth going to that trouble right now.)

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

10 years agoRun the TurboJPEG conformance tests out of a directory in /tmp (for improved performa...
DRC [Fri, 22 Aug 2014 03:00:37 +0000 (03:00 +0000)]
Run the TurboJPEG conformance tests out of a directory in /tmp (for improved performance, if the source directory is on a remote file share.)  Fix an issue in TJBench.java that prevented it from working properly if the source image resided in a directory with a dot in the name.

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

10 years agoExtend tjbenchtest so that it tests the dynamic JPEG buffer allocation feature in...
DRC [Fri, 22 Aug 2014 02:57:34 +0000 (02:57 +0000)]
Extend tjbenchtest so that it tests the dynamic JPEG buffer allocation feature in TurboJPEG.  Disable the tiling feature in TJBench whenever dynamic buffer allocation is enabled (because the tiling feature requires a separate buffer for each tile, using it successfully with dynamic buffer allocation would require a separate TurboJPEG compressor instance for each tile, and it's not worth going to that trouble right now.)

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

10 years agoRun the TurboJPEG conformance tests out of a directory in /tmp (for improved performa...
DRC [Fri, 22 Aug 2014 02:51:16 +0000 (02:51 +0000)]
Run the TurboJPEG conformance tests out of a directory in /tmp (for improved performance, if the source directory is on a remote file share.)  Fix an issue in TJBench.java that prevented it from working properly if the source image resided in a directory with a dot in the name.

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

10 years agoOops
DRC [Thu, 21 Aug 2014 22:16:25 +0000 (22:16 +0000)]
Oops

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

10 years agoSubtle point, but dest->outbuffer is a pointer to the address of the JPEG buffer...
DRC [Thu, 21 Aug 2014 22:15:19 +0000 (22:15 +0000)]
Subtle point, but dest->outbuffer is a pointer to the address of the JPEG buffer, which is stored in the calling program.  Thus, *(dest->outbuffer) will always equal *outbuffer.  We need to compare *outbuffer with dest->buffer instead to determine if the pointer is being reused.

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

10 years agoIf the output buffer in the TurboJPEG destination manager was allocated by the destin...
DRC [Thu, 21 Aug 2014 15:51:47 +0000 (15:51 +0000)]
If the output buffer in the TurboJPEG destination manager was allocated by the destination manager and is being reused from a previous compression operation, then we need to get the buffer size from the previous operation, since the calling program doesn't know the actual buffer size.

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

10 years agoActually, we need to increase the size of BUFSIZE, not just the size of _buffer....
DRC [Thu, 21 Aug 2014 03:40:37 +0000 (03:40 +0000)]
Actually, we need to increase the size of BUFSIZE, not just the size of _buffer.  The previous patch might have cause problems if, for instance, state->free_in_buffer was 127 but 129 bytes were compressed.  In that case, only 127 of the 129 bytes would have been written to the file.  Also document the fix.

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

10 years agoActually, we need to increase the size of BUFSIZE, not just the size of _buffer....
DRC [Thu, 21 Aug 2014 03:38:14 +0000 (03:38 +0000)]
Actually, we need to increase the size of BUFSIZE, not just the size of _buffer.  The previous patch might have cause problems if, for instance, state->free_in_buffer was 127 but 129 bytes were compressed.  In that case, only 127 of the 129 bytes would have been written to the file.  Also document the fix.

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

10 years agoFix an extremely rare crash that can occur when compressing a very high-frequency...
DRC [Thu, 21 Aug 2014 01:55:22 +0000 (01:55 +0000)]
Fix an extremely rare crash that can occur when compressing a very high-frequency MCU using quality 100 and no subsampling, and when dynamically allocating the JPEG buffer in the destination manager.  Even with a test program designed specifically to reproduce the crash, it only occurred once in about 25 million iterations.  More details here:  https://sourceforge.net/p/libjpeg-turbo/bugs/64

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

10 years agoFix an extremely rare crash that can occur when compressing a very high-frequency...
DRC [Thu, 21 Aug 2014 01:53:47 +0000 (01:53 +0000)]
Fix an extremely rare crash that can occur when compressing a very high-frequency MCU using quality 100 and no subsampling, and when dynamically allocating the JPEG buffer in the destination manager.  Even with a test program designed specifically to reproduce the crash, it only occurred once in about 25 million iterations.  More details here:  https://sourceforge.net/p/libjpeg-turbo/bugs/64

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

10 years agoWordsmithing & clarifications
DRC [Wed, 20 Aug 2014 16:02:49 +0000 (16:02 +0000)]
Wordsmithing & clarifications

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

10 years agoDocument the existence of the new ARM64 SIMD code
DRC [Wed, 20 Aug 2014 15:40:43 +0000 (15:40 +0000)]
Document the existence of the new ARM64 SIMD code

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

10 years agoProperly detect the need for gas-preprocessor.pl when building for ARM64
DRC [Wed, 20 Aug 2014 13:14:46 +0000 (13:14 +0000)]
Properly detect the need for gas-preprocessor.pl when building for ARM64

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

10 years agoRefactored YUVImage Java class so that it supports both unified YUV image buffers...
DRC [Sun, 17 Aug 2014 12:23:49 +0000 (12:23 +0000)]
Refactored YUVImage Java class so that it supports both unified YUV image buffers as well as separate YUV image planes;  modified the JNI functions accordingly and added new helper functions to the TurboJPEG C API (tjPlaneWidth(), tjPlaneHeight(), tjPlaneSizeYUV()) to facilitate those modifications;  changed potentially confusing "component width" and "component height" terms to "plane width" and "plane height" and modified variable names in turbojpeg.c to reflect this;  numerous other documentation tweaks

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

10 years agoMake the wrapped functions static
DRC [Fri, 15 Aug 2014 16:40:56 +0000 (16:40 +0000)]
Make the wrapped functions static

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

10 years agoMake the wrapped functions static
DRC [Fri, 15 Aug 2014 16:40:34 +0000 (16:40 +0000)]
Make the wrapped functions static

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

10 years agoWhitespace formatting tweaks
DRC [Fri, 15 Aug 2014 16:20:59 +0000 (16:20 +0000)]
Whitespace formatting tweaks

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

10 years agoAllow the int pixel versions of the various TurboJPEG JNI functions to share the...
DRC [Fri, 15 Aug 2014 16:20:06 +0000 (16:20 +0000)]
Allow the int pixel versions of the various TurboJPEG JNI functions to share the same code as the byte pixel versions.

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

10 years agoWhitespace formatting tweaks
DRC [Fri, 15 Aug 2014 16:08:12 +0000 (16:08 +0000)]
Whitespace formatting tweaks

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

10 years agoAdd descriptions to help sort out which function goes with which version of the API.
DRC [Fri, 15 Aug 2014 16:07:15 +0000 (16:07 +0000)]
Add descriptions to help sort out which function goes with which version of the API.

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

10 years agoAdd descriptions to help sort out which function goes with which version of the API.
DRC [Fri, 15 Aug 2014 15:40:02 +0000 (15:40 +0000)]
Add descriptions to help sort out which function goes with which version of the API.

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

10 years agoCompiler warnings
DRC [Fri, 15 Aug 2014 14:44:09 +0000 (14:44 +0000)]
Compiler warnings

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

10 years agoFix build broken by r1349
DRC [Fri, 15 Aug 2014 14:40:36 +0000 (14:40 +0000)]
Fix build broken by r1349

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

10 years agoCompiler warnings
DRC [Fri, 15 Aug 2014 14:40:05 +0000 (14:40 +0000)]
Compiler warnings

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

10 years agoRestore backward compatibility between libjpeg-turbo 1.3.x JAR and the new JNI library
DRC [Fri, 15 Aug 2014 14:01:21 +0000 (14:01 +0000)]
Restore backward compatibility between libjpeg-turbo 1.3.x JAR and the new JNI library

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

10 years agoAllow the int pixel versions of the various TurboJPEG JNI functions to share the...
DRC [Fri, 15 Aug 2014 13:18:58 +0000 (13:18 +0000)]
Allow the int pixel versions of the various TurboJPEG JNI functions to share the same code as the byte pixel versions.

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

10 years agoClean up exception handling in the JNI code. The exception is actually not thrown...
DRC [Thu, 14 Aug 2014 17:24:01 +0000 (17:24 +0000)]
Clean up exception handling in the JNI code.  The exception is actually not thrown until the function exits, so we can let the code fall through to bailout: if the TurboJPEG C function fails.  Also, per the JNI spec, no other JNI functions can be called between GetPrimitiveArrayCritical() and ReleasePrimitiveArrayCritical().  This hasn't caused any problems thus far, but better safe than sorry.

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

10 years agoClean up exception handling in the JNI code. The exception is actually not thrown...
DRC [Thu, 14 Aug 2014 16:54:04 +0000 (16:54 +0000)]
Clean up exception handling in the JNI code.  The exception is actually not thrown until the function exits, so we can let the code fall through to bailout: if the TurboJPEG C function fails.  Also, per the JNI spec, no other JNI functions can be called between GetPrimitiveArrayCritical() and ReleasePrimitiveArrayCritical().  This hasn't caused any problems thus far, but better safe than sorry.

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

10 years agoOops. Parameter name is "strides", not "stride"
DRC [Tue, 12 Aug 2014 15:52:51 +0000 (15:52 +0000)]
Oops.  Parameter name is "strides", not "stride"

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

10 years agoReformat TurboJPEG C API documentation to improve ease of maintenance and to make...
DRC [Tue, 12 Aug 2014 15:06:30 +0000 (15:06 +0000)]
Reformat TurboJPEG C API documentation to improve ease of maintenance and to make it more consistent with the javadoc formatting;  fix minor error in tjCompressFromYUV() prototype.

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

10 years agoExtend the TurboJPEG C API to support handling YUV images stored in separate image...
DRC [Mon, 11 Aug 2014 18:05:41 +0000 (18:05 +0000)]
Extend the TurboJPEG C API to support handling YUV images stored in separate image planes instead of a unified buffer

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

10 years agoClean up and consolidate notes regarding the YUV image format. This also corrects...
DRC [Sun, 10 Aug 2014 20:12:17 +0000 (20:12 +0000)]
Clean up and consolidate notes regarding the YUV image format.  This also corrects a factual error regarding the padding of the luminance plane-- because we now support 4:1:1, the component width is not necessarily padded to the nearest multiple of 2 if horizontal subsampling is used.

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

10 years agoClean up notes using the doxygen @note command
DRC [Sun, 10 Aug 2014 18:30:52 +0000 (18:30 +0000)]
Clean up notes using the doxygen @note command

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

10 years agoClean up notes using the doxygen @note command
DRC [Sun, 10 Aug 2014 17:25:51 +0000 (17:25 +0000)]
Clean up notes using the doxygen @note command

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

10 years agoMake the documentation more readable by displaying fixed-width text (which is used...
DRC [Sun, 10 Aug 2014 16:43:31 +0000 (16:43 +0000)]
Make the documentation more readable by displaying fixed-width text (which is used to refer to variables and functions) in a different color.

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

10 years agoFix a display issue in the documentation for tjDecompress2() (doxygen treats a star...
DRC [Sun, 10 Aug 2014 16:39:32 +0000 (16:39 +0000)]
Fix a display issue in the documentation for tjDecompress2() (doxygen treats a star at the beginning of the line as a list bullet);  make the documentation more readable by displaying fixed-width text (which is used to refer to variables and functions) in a different color.

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

10 years ago12-bit JPEG support
DRC [Sat, 9 Aug 2014 23:06:07 +0000 (23:06 +0000)]
12-bit JPEG support

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

9 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

9 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

9 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

9 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

9 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

9 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

9 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

9 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

9 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

9 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

9 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

10 years agoOops. The Windows version of collect_args/uncollect_args uses rsp, so we still need...
DRC [Sat, 9 Aug 2014 22:58:18 +0000 (22:58 +0000)]
Oops.  The Windows version of collect_args/uncollect_args uses rsp, so we still need the rsp prologue/epilogue, despite the fact that we aren't using the stack as a work area.  This fixes a segfault on Windows caused by r1335.

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

10 years agoAttempt to improve performance by refactoring the compression-side color conversion...
DRC [Sat, 9 Aug 2014 14:30:28 +0000 (14:30 +0000)]
Attempt to improve performance by refactoring the compression-side color conversion and DCT algorithms so that they take full advantage of the additional registers available with 64-bit SSE2.  This produces a somewhat yawn-worthy speedup of 2-3%, but at least the code is a lot more readable now.

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

10 years agoFix performance and other issues uncovered in testing with actual ARM64 hardware...
DRC [Wed, 23 Jul 2014 14:14:14 +0000 (14:14 +0000)]
Fix performance and other issues uncovered in testing with actual ARM64 hardware; formatting tweaks; remove NEON platform check (NEON is always available with ARMv8)

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

10 years agoInclude "Installed-Size" field in the deb-control file to prevent Ubuntu from complaining
DRC [Thu, 17 Jul 2014 08:25:32 +0000 (08:25 +0000)]
Include "Installed-Size" field in the deb-control file to prevent Ubuntu from complaining

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

10 years agoInclude "Installed-Size" field in the deb-control file to prevent Ubuntu from complaining
DRC [Thu, 17 Jul 2014 08:24:58 +0000 (08:24 +0000)]
Include "Installed-Size" field in the deb-control file to prevent Ubuntu from complaining

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

10 years agoAdd proper support for Borland compilers (Borland needs section names to be prefixed...
DRC [Sun, 22 Jun 2014 21:14:39 +0000 (21:14 +0000)]
Add proper support for Borland compilers (Borland needs section names to be prefixed with an underscore, and it needs OMF object files.)

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

10 years agoBig oops. wrjpgcom on Windows was being built using the rdjpgcom source.
DRC [Sun, 22 Jun 2014 20:48:38 +0000 (20:48 +0000)]
Big oops.  wrjpgcom on Windows was being built using the rdjpgcom source.

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

10 years agoBig oops. wrjpgcom on Windows was being built using the rdjpgcom source.
DRC [Sun, 22 Jun 2014 20:50:14 +0000 (20:50 +0000)]
Big oops.  wrjpgcom on Windows was being built using the rdjpgcom source.

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

10 years agoBig oops. wrjpgcom on Windows was being built using the rdjpgcom source.
DRC [Sun, 22 Jun 2014 20:46:48 +0000 (20:46 +0000)]
Big oops.  wrjpgcom on Windows was being built using the rdjpgcom source.

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

10 years agoPrevent a buffer overrun if the comment begins with a literal quote character and...
DRC [Sun, 22 Jun 2014 20:38:54 +0000 (20:38 +0000)]
Prevent a buffer overrun if the comment begins with a literal quote character and the string exceeds 65k characters.  Also prevent comments longer than 65k characters from being written, since this will produce an incorrect JPEG file.

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

10 years agoPrevent a buffer overrun if the comment begins with a literal quote character and...
DRC [Sun, 22 Jun 2014 20:36:50 +0000 (20:36 +0000)]
Prevent a buffer overrun if the comment begins with a literal quote character and the string exceeds 65k characters.  Also prevent comments longer than 65k characters from being written, since this will produce an incorrect JPEG file.

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

10 years agoRemove VMS-specific code
DRC [Thu, 29 May 2014 19:31:45 +0000 (19:31 +0000)]
Remove VMS-specific code

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

10 years agoOur copyright string is longer than JMSG_LENGTH_MAX, and this was causing a buffer...
DRC [Wed, 28 May 2014 20:28:30 +0000 (20:28 +0000)]
Our copyright string is longer than JMSG_LENGTH_MAX, and this was causing a buffer overrun if output_message() was called with msg_code set to JMSG_COPYRIGHT, or if format_message() was called with msg_code set to JMSG_COPYRIGHT and with a buffer of length JMSG_LENGTH_MAX.

We can't simply increase JMSG_LENGTH_MAX, because it is part of the libjpeg API, and it is generally assumed that a buffer of this length will be passed to format_message().  Thus, the easiest solution is simply to use a shorter copyright string for JMSG_COPYRIGHT.

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

10 years agoOur copyright string is longer than JMSG_LENGTH_MAX, and this was causing a buffer...
DRC [Wed, 28 May 2014 20:27:42 +0000 (20:27 +0000)]
Our copyright string is longer than JMSG_LENGTH_MAX, and this was causing a buffer overrun if output_message() was called with msg_code set to JMSG_COPYRIGHT, or if format_message() was called with msg_code set to JMSG_COPYRIGHT and with a buffer of length JMSG_LENGTH_MAX.

We can't simply increase JMSG_LENGTH_MAX, because it is part of the libjpeg API, and it is generally assumed that a buffer of this length will be passed to format_message().  Thus, the easiest solution is simply to use a shorter copyright string for JMSG_COPYRIGHT.

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