Official binaries and source tarball are available at:
https://sourceforge.net/projects/libjpeg-turbo/files/1.2.0
Significant changes relative to 1.2 beta1:
- Fixed build issue with Yasm on Unix systems (the libjpeg-turbo build system was not adding the current directory to the assembler include path, so Yasm was not able to find jsimdcfg.inc.)
- Fixed out-of-bounds read in SSE2 SIMD code that occurred when decompressing a JPEG image to a bitmap buffer whose size was not a multiple of 16 bytes. This was more of an annoyance than an actual bug, since it did not cause any actual run-time problems, but the issue showed up when running libjpeg-turbo in valgrind. See http://crbug.com/72399 for more information.
- Added a compile-time macro (
LIBJPEG_TURBO_VERSION
) that can be used to check the version of libjpeg-turbo against which an application was compiled. - Added new RGBA/BGRA/ABGR/ARGB colorspace extension constants (libjpeg API) and pixel formats (TurboJPEG API), which allow applications to specify that, when decompressing to a 4-component RGB buffer, the unused byte should be set to 0xFF so that it can be interpreted as an opaque alpha channel.
- Fixed regression issue whereby DevIL failed to build against libjpeg-turbo because libjpeg-turbo's distributed version of jconfig.h contained an
INLINE
macro, which conflicted with a similar macro in DevIL. This macro is used only internally when building libjpeg-turbo, so it was moved into config.h. - libjpeg-turbo will now correctly decompress erroneous CMYK/YCCK JPEGs whose K component is assigned a component ID of 1 instead of 4. Although these files are in violation of the spec, other JPEG implementations handle them correctly.
- Added ARMv6 and ARMv7 architectures to libjpeg.a and libturbojpeg.a in the official libjpeg-turbo binary package for OS X, so that those libraries can be used to build both OS X and iOS applications.