1. 5033f3e Remove MS-DOS code and information, and adjust copyright headers to reflect the removal of features in r1307 and r1308. libjpeg-turbo has never supported MS-DOS, nor is it even possible for us to do so. by DRC · 10 years ago
  2. 78df2e6 Add support for decompressing to RGB565 (16-bit) pixels by DRC · 10 years ago
  3. 715bb41 Port the more accurate (and slightly faster) floating point IDCT implementation from jpeg-8a and later. New research revealed that the SSE/SSE2 floating point IDCT implementation was actually more accurate than the jpeg-6b implementation, not less, which is why its mathematical results have always differed from those of the jpeg-6b implementation. This patch brings the accuracy of the C code in line with that of the SSE/SSE2 code. by DRC · 10 years ago
  4. 0816d08 Work around an issue in Visual C++ 2010 and 2013 that was causing the 256-bit bitmap test in the regression tests to fail. More specifically, when optimization is enabled in these versions of Visual C++, the optimizer seems to get confused by the following code block: by DRC · 10 years ago
  5. ac9a92e Work around an issue in Visual C++ 2010 and 2013 that was causing the 256-bit bitmap test in the regression tests to fail. More specifically, when optimization is enabled in these versions of Visual C++, the optimizer seems to get confused by the following code block: by DRC · 10 years ago
  6. beb0b33 Work around an issue in Visual C++ 2010 and 2013 that was causing the 256-bit bitmap test in the regression tests to fail. More specifically, when optimization is enabled in these versions of Visual C++, the optimizer seems to get confused by the following code block: by DRC · 10 years ago
  7. fdd625e wordsmithing by DRC · 10 years ago
  8. 0cfc4c1 Use clz/bsr instructions on ARM for bit counting rather than the lookup table (reduces memory footprint and can improve performance in some cases.) by DRC · 10 years ago
  9. b1068fa Migrate Mac packaging system to pkgbuild, since PackageMaker is no longer supported. by DRC · 10 years ago
  10. de23dd8 by DRC · 10 years ago
  11. c8b0226 by DRC · 10 years ago
  12. fc26b65 Extend the YUV decode functionality to the TurboJPEG Java API, and port the TJUnitTest modifications that treat YUV encoding/decoding as an intermediate step of the JPEG compression/decompression pipeline rather than a separate test case; Add the ability to encode YUV images from an arbitrary position in a large image buffer; Significantly refactor the handling of YUV images; numerous doc tweaks; other Java API cleanup and usability improvements by DRC · 10 years ago
  13. 3bf21e0 Fix the build of the Java classes when using MSVC 2010 and later. Something in the recesses of my brain is telling me that I tried this before and it failed under some circumstances, but it must have been a bug in an older CMake implementation. CMake 2.8.8 and later seem to work fine with this patch. This patch also updates the minimum required version to 2.8.8, because 2.8.8 fixed another issue that was preventing the SIMD code from building under MSVC 2010 and later. by DRC · 10 years ago
  14. d45c549 Fix the build of the Java classes when using MSVC 2010 and later. Something in the recesses of my brain is telling me that I tried this before and it failed under some circumstances, but it must have been a bug in an older CMake implementation. CMake 2.8.8 and later seem to work fine with this patch. This patch also updates the minimum required version to 2.8.8, because 2.8.8 fixed another issue that was preventing the SIMD code from building under MSVC 2010 and later. by DRC · 10 years ago
  15. 34dca05 Implement a YUV decode function in the TurboJPEG API, to be symmetric with tjEncodeYUV(). by DRC · 10 years ago
  16. 693f4a5 Fix an issue that prevented tjEncodeYUV2() and TJCompressor.encodeYUV() from working properly if the source image was very tiny. Basically, jpeg_start_compress() was attempting to write the JPEG headers, which was overrunning the YUV buffer. This patch removes the call to jpeg_start_compress() in tjEncodeYUV2() and replaces it with calls to the individual routines that are necessary to initialize the color converter and downsampler. TJUnitTest has also been modified to test for this condition (the buffer size regression test now works in YUV mode.) by DRC · 11 years ago
  17. 2c0c807 Fix an issue that prevented tjEncodeYUV2() and TJCompressor.encodeYUV() from working properly if the source image was very tiny. Basically, jpeg_start_compress() was attempting to write the JPEG headers, which was overrunning the YUV buffer. This patch removes the call to jpeg_start_compress() in tjEncodeYUV2() and replaces it with calls to the individual routines that are necessary to initialize the color converter and downsampler. TJUnitTest has also been modified to test for this condition (the buffer size regression test now works in YUV mode.) by DRC · 11 years ago
  18. 38c9970 Fix an issue that prevented tjEncodeYUV3() and TJCompressor.encodeYUV() from working properly if the source image was very tiny. Basically, jpeg_start_compress() was attempting to write the JPEG headers, which was overrunning the YUV buffer. This patch removes the call to jpeg_start_compress() in tjEncodeYUV3() and replaces it with calls to the individual routines that are necessary to initialize the color converter and downsampler. TJUnitTest has also been modified to test for this condition (the buffer size regression test now works in YUV mode.) by DRC · 11 years ago
  19. a113506 Some motion JPEG implementations generate "abbreviated JPEG streams" (JPEG images without the default tables included) for some or all of the video frames, in order to save space. When these are encountered, it is generally expected that they will be decompressed using the default Huffman tables, so libjpeg-turbo now does this unless the tables have been explicitly specified by an application. by DRC · 11 years ago
  20. 43d8cf4 Fix CVE-2013-6629 and CVE-2013-6630 by DRC · 11 years ago
  21. 7ebf294 Fix CVE-2013-6629 and CVE-2013-6630 by DRC · 11 years ago
  22. 9f9436a Fix CVE-2013-6629 and CVE-2013-6630 by DRC · 11 years ago
  23. 910a357 Extend the TurboJPEG C API to support compressing JPEG images from YUV planar images by DRC · 11 years ago
  24. d64e23e adjust DSPr2 performance claims by DRC · 11 years ago
  25. a6b7fbd SIMD-accelerated slow integer forward DCT and quantize routines for MIPS DSPr2 by DRC · 11 years ago
  26. 982e209 Actually, the second bug was hidden by the first, so the initial ChangeLog entry was correct from the user's point of view. by DRC · 11 years ago
  27. cadabd4 Actually, the second bug was hidden by the first, so the initial ChangeLog entry was correct from the user's point of view. by DRC · 11 years ago
  28. e8be2c6 Fix an issue that resulted in an error ("Invalid SOS parameters for sequential JPEG. Didn't expect more than one scan.") when decoding progressive+arithmetic JPEGs generated by libjpeg-turbo. by DRC · 11 years ago
  29. 56e017d Fix an issue that resulted in an error ("Invalid SOS parameters for sequential JPEG. Didn't expect more than one scan.") when decoding progressive+arithmetic JPEGs generated by libjpeg-turbo. by DRC · 11 years ago
  30. e500591 SIMD-accelerated 3/4 and 3/2 decompression scaling for MIPS DSPr2 by DRC · 11 years ago
  31. 49eaa75 SIMD-optimized RGB-to-grayscale conversion for MIPS DSPr2 by DRC · 11 years ago
  32. 5d2514b We can't enable optimized entropy coding unless we're using Huffman coding. This fixes a bug whereby attempting to create a progressive JPEG with arithmetic coding would fail. by DRC · 11 years ago
  33. 2c63c00 Clarify that the bug affects cjpeg as well as jpegtran. by DRC · 11 years ago
  34. 27df2a4 Clarify that the bug affects cjpeg as well as jpegtran. by DRC · 11 years ago
  35. ba923a8 Fix I/O suspension. This little nugget of code was introduced in r30 as part of an early attempt to make buffered I/O work with the optimized Huffman codec. Ultimately, r32 reverted a lot of that mess and introduced much of the logic we now use, rendering this code unnecessary, but it was never reverted because it only causes problems when I/O suspension is used, and apparently no one has tried to do that with libjpeg-turbo until now. by DRC · 11 years ago
  36. 1370f10 We can't enable optimized entropy coding unless we're using Huffman coding. This fixes a bug whereby attempting to create a progressive JPEG with arithmetic coding would fail. by DRC · 11 years ago
  37. 216cc64 We can't enable optimized entropy coding unless we're using Huffman coding. This fixes a bug whereby attempting to create a progressive JPEG with arithmetic coding would fail. by DRC · 11 years ago
  38. ae8d0dc In the Windows installer packages, place a duplicate copy of turbojpeg.dll in c:\libjpeg-turbo[-gcc][64]\bin. This is mainly to give installers an easy way to find the DLL for the purposes of bundling it. Specifically, this was necessary for TurboVNC, becuase 32-bit CMake running on 64-bit Windows cannot ever access the "real" c:\windows\system32 directory. by DRC · 11 years ago
  39. 4d87793 In the Windows installer packages, place a duplicate copy of turbojpeg.dll in c:\libjpeg-turbo[-gcc][64]\bin. This is mainly to give installers an easy way to find the DLL for the purposes of bundling it. Specifically, this was necessary for TurboVNC, becuase 32-bit CMake running on 64-bit Windows cannot ever access the "real" c:\windows\system32 directory. by DRC · 11 years ago
  40. ce84fc8 by DRC · 11 years ago
  41. 7185b71 by DRC · 11 years ago
  42. 1f3635c Add 4:1:1 subsampling support in the TurboJPEG C API by DRC · 11 years ago
  43. 96573d0 By default, install the libraries into /opt/libjpeg-turbo/lib32 on any 32-bit system, not just x86, and into /opt/libjpeg-turbo/lib64 on any 64-bit system, not just x86-64. In particular, this addresses an issue with building TurboVNC and VirtualGL on ARM systems. by DRC · 11 years ago
  44. dadebe9 Document previous commit in the change log by DRC · 11 years ago
  45. 0be9fa5 SIMD support for performing color conversion using MIPS DSPr2 instructions by DRC · 11 years ago
  46. f610d61 Extend the TurboJPEG C API to support generating YUV images with arbitrary padding and to support image scaling when decompressing to YUV by DRC · 11 years ago
  47. 4c17a45 Fix I/O suspension. This little nugget of code was introduced in r30 as part of an early attempt to make buffered I/O work with the optimized Huffman codec. Ultimately, r32 reverted a lot of that mess and introduced much of the logic we now use, rendering this code unnecessary, but it was never reverted because it only causes problems when I/O suspension is used, and apparently no one has tried to do that with libjpeg-turbo until now. by DRC · 11 years ago
  48. d7a642b Minor doc tweaks + ChangeLog update by DRC · 11 years ago
  49. 764e1e2 Overhaul Linux/Unix packaging system, primarily to avoid conflicts with vendor-supplied libjpeg-turbo packages (such as in Fedora and RHEL 6.) This also streamlines the packaging system somewhat, since it is no longer necessary to move the TurboJPEG libraries into the system library directory. Relocating those libraries was originally done to provide backward compatibility with TurboJPEG/IPP, but that package is long obsolete, and the software that formerly used it has been linking statically with libjpeg-turbo for quite some time. by DRC · 11 years ago
  50. 5a84a0e by DRC · 12 years ago
  51. 0bf58f2 Include a C version of md5cmp rather than depending on an external md5sum binary, since md5sum is not available on all platforms (specifically, it doesn't exist on FreeBSD, and it has to be installed via MacPorts on OS X.) by DRC · 12 years ago
  52. a2a2cd6 Include ARM v7s (iPhone 5, iPad 4) support in the universal libjpeg/libturbojpeg libraries distributed with our official binary package for OS X. by DRC · 12 years ago
  53. 5039d73 Eliminated the awkward and confusing "TurboJPEG/OSS" designation, since there are no other active implementations of the TurboJPEG API anymore; don't refer to the libjpeg API library as "libjpeg-turbo" anymore, since that can be confusing; ARM v7s build instructions by DRC · 12 years ago
  54. ab70623 Implement in-memory source/destination managers even when not emulating the libjpeg v8 API/ABI by DRC · 12 years ago
  55. b87a0b4 Fix the x86 build with NASM 0.98. Since NASM 0.98 is the default version on OS X, we want to at least allow people to build 32-bit code with it, even though it can't properly build 64-bit code. by DRC · 12 years ago
  56. 00c2cf3 Fix the x86 build with NASM 0.98. Since NASM 0.98 is the default version on OS X, we want to at least allow people to build 32-bit code with it, even though it can't properly build 64-bit code. by DRC · 12 years ago
  57. d5e964c Wordsmithing; Remove mention of TurboJPEG/IPP-- it is no longer a relevant comparison, since the version of IPP on which TurboJPEG/IPP was based is now quite old, and TurboJPEG/IPP is no longer distributed or supported by The VirtualGL Project; Include information about mathematical incompatibilities with jpeg-8 by DRC · 12 years ago
  58. f37e4da Port RGB-to-Grayscale color transform from jpeg-8d by DRC · 12 years ago
  59. 8cbf893 Port the width/height force feature from jpegtran v8d. by DRC · 12 years ago
  60. f73a27c Add cjpeg -rgb option from jpeg-8d by DRC · 12 years ago
  61. 84f7122 1.2.90 (1.3 beta1) by DRC · 12 years ago
  62. d9d1d67 by DRC · 12 years ago
  63. fac3bea Add a Java version of TJBench and extend the TurboJPEG Java API to support it (this involved adding a polymorphic method in TJCompressor that accepts x and y offsets into a larger buffer, similar to the previous modification that had been done to TJDecompressor.) by DRC · 12 years ago
  64. 61e1341 If libturbojpeg.jnilib is not found on Mac systems, specifically look for it under /usr/lib, since /usr/lib isn't part of the default java.library.path on that platform. by DRC · 12 years ago
  65. a394bf7 Allow the libjpeg-turbo32 package to be used on MultiArch-compatible systems without overriding the linker path or LD_LIBRARY_PATH. by DRC · 12 years ago
  66. 0a0f8d1 Allow the libjpeg-turbo32 package to be used on MultiArch-compatible systems without overriding the linker path or LD_LIBRARY_PATH. by DRC · 12 years ago
  67. 2186809 Oops. Add support for TJFLAG_FASTDCT to tjDecompressToYUV() as well. by DRC · 12 years ago
  68. e0419b5 Oops. Add support for TJFLAG_FASTDCT to tjDecompressToYUV() as well. by DRC · 12 years ago
  69. 73d74c1 Add flags to the TurboJPEG API that allow the caller to force the use of either the fast or the accurate DCT/IDCT algorithms in the underlying codec. by DRC · 12 years ago
  70. fd3aba3 Added flags to the TurboJPEG API that allow the caller to force the use of either the fast or the accurate DCT/IDCT algorithms in the underlying codec. by DRC · 12 years ago
  71. 112a0bb More recent versions of autoconf add -traditional-cpp to the CPP flags, which causes jsimdcfg.inc.h to not preprocess correctly unless we expand all of the instances of the #definev macro. by DRC · 12 years ago
  72. ea505e7 More recent versions of autoconf add -traditional-cpp to the CPP flags, which causes jsimdcfg.inc.h to not preprocess correctly unless we expand all of the instances of the #definev macro. by DRC · 12 years ago
  73. 14e8225 Provide further details about the regression by DRC · 12 years ago
  74. de37e07 Provide further details about the regression by DRC · 12 years ago
  75. 575317b Acknowledge the existence of 1.2.1 by DRC · 12 years ago
  76. df0babc Fixed regression caused by a bug in the 32-bit strict memory access code in jdmrgss2.asm (contributed by Chromium to stop valgrind from whining whenever the output buffer size was not evenly divisible by 16 bytes.) On Linux/x86, this regression caused incorrect pixels on the right-hand side of images whose rows were not 16-byte aligned, whenever fancy upsampling was used. This patch also enables the strict memory access code on all platforms, not just Linux (it does no harm on other platforms) and removes a couple of pcmpeqb instructions that were rendered unnecessary by r836. by DRC · 12 years ago
  77. 8126d0c Fixed regression caused by a bug in the 32-bit strict memory access code in jdmrgss2.asm (contributed by Chromium to stop valgrind from whining whenever the output buffer size was not evenly divisible by 16 bytes.) On Linux/x86, this regression generated incorrect pixels on the right-hand side of images whose rows were not 16-byte aligned, whenever fancy upsampling was used. This patch also enables the strict memory access code on all platforms, not just Linux (it does no harm on other platforms) and removes a couple of pcmpeqb instructions that were rendered unnecessary by r835. by DRC · 12 years ago
  78. 316617f Accelerated 4:2:2 upsampling routine for ARM (improves performance ~20-30% when decompressing 4:2:2 JPEGs using fancy upsampling) by DRC · 12 years ago
  79. 66fe68b Eliminate the use of the MASKMOVDQU instruction, to speed up decompression performance by 10x on AMD Bobcat embedded processors (and ~5% on AMD desktop processors.) by DRC · 12 years ago
  80. 6979927 Eliminate the use of the MASKMOVDQU instruction, to speed up decompression performance by 10x on AMD Bobcat embedded processors (and ~5% on AMD desktop processors.) by DRC · 12 years ago
  81. f659f43 Add x, y parameters to TJDecompressor so that it can be used to decompress to an arbitrary position in the destination image (TurboVNC needs this.) by DRC · 12 years ago
  82. dd2b651 Guard against num_components being a ridiculous value due to a corrupt header by DRC · 12 years ago
  83. e93d94b Guard against num_components being a ridiculous value due to a corrupt header by DRC · 12 years ago
  84. 4f24016 Preserve all 128 bits of xmm6 and xmm7 by DRC · 12 years ago
  85. 4ef9c95 Preserve all 128 bits of xmm6 and xmm7 by DRC · 12 years ago
  86. fd40777 Add a dummy version number to the TurboJPEG dynamic library on Unix systems so Linux distro maintainers will not reject it out of hand. by DRC · 12 years ago
  87. cac1051 Fix the behavior of the alpha-enabled colorspace constants whenever libjpeg-turbo is built without SIMD support and merged upsampling is used. by DRC · 12 years ago
  88. ffe4fc1 Fix the behavior of the alpha-enabled colorspace constants whenever libjpeg-turbo is built without SIMD support and merged upsampling is used. by DRC · 12 years ago
  89. a9b646c Allow RGB JPEG files to be created/decoded when using the LJT colorspace extensions by DRC · 12 years ago
  90. 0586d41 Allow RGB JPEG files to be created/decoded when using the LJT colorspace extensions by DRC · 12 years ago
  91. c052646 iOS universal package was promoted to a 1.2 feature by DRC · 13 years ago
  92. ef49f79 by DRC · 13 years ago
  93. 20b734e Infrastructure for producing a universal x86-64/i386/ARM version of libjpeg.a and libturbojpeg.a on OS X, so that the same library can be used to build OS X and iOS apps by DRC · 13 years ago
  94. 1fbae84 Infrastructure for producing a universal x86-64/i386/ARM version of libjpeg.a and libturbojpeg.a on OS X, so that the same library can be used to build OS X and iOS apps by DRC · 13 years ago
  95. 3d40ad5 by DRC · 13 years ago
  96. 27fb3fc Support additional scaling factors when decompressing by DRC · 13 years ago
  97. 12781cb Properly decompress erroneous CMYK/YCCK images whose K component has an ID of 1 instead of 4 (this is to support SumatraPDF) by DRC · 13 years ago
  98. a7466c9 Move INLINE macro into config.h. That's really where it belongs anyhow, since it is used only internally, and putting it in jconfig.h was causing problems with DevIL. by DRC · 13 years ago
  99. 81a50f7 Grammar police by DRC · 13 years ago
  100. 2c62da3 Subtle point, but TurboJPEG is the API and TurboJPEG/OSS is the library implementing that API. by DRC · 13 years ago