1. d8b9510 [RESTRICT AUTOMERGE] TurboJPEG: Properly handle gigapixel images by DRC · 5 years ago
  2. 479501b TurboJPEG: Decompress 4:4:4 JPEGs with unusual SFs by DRC · 5 years ago
  3. 3d9c64e tjLoadImage(): Fix int overflow/segfault w/big BMP by DRC · 5 years ago
  4. 696e754 TurboJPEG: Handle JERR_BMP*,JERR_PPM* error codes by DRC · 6 years ago
  5. 2401e4d TurboJPEG: Handle CMYK JPEGs w/ subsampled M, Y by DRC · 6 years ago
  6. 58cb10e Eliminate compiler warnings w/ Solaris Studio by DRC · 6 years ago
  7. 293263c Format preprocessor macros more consistently by DRC · 6 years ago
  8. 84fbd4f Merge branch 'master' into dev by DRC · 6 years ago
  9. bd96b30 Make all get/putenv() calls compile-time optional by DRC · 6 years ago
  10. 29e453f turbojpeg.c: Fix Windows build by DRC · 6 years ago
  11. 19c791c Improve code formatting consistency by DRC · 6 years ago
  12. bd544e2 Merge branch 'master' into dev by DRC · 6 years ago
  13. bf6c774 Fix whitespace errors by DRC · 6 years ago
  14. 9f1f86b tjLoadImage(): Fix OOB array access w/TJPF_UNKNOWN by DRC · 7 years ago
  15. 8c40ac8 Add TurboJPEG C example and clean up Java example by DRC · 7 years ago
  16. aa74590 TurboJPEG C API: Add BMP/PPM load/save functions by DRC · 7 years ago
  17. 4893e5d Merge branch 'master' into dev by DRC · 7 years ago
  18. 94e152b TurboJPEG C: Code formatting tweaks by DRC · 7 years ago
  19. 616b4e2 TurboJPEG C: Compiler warnings by DRC · 7 years ago
  20. 9baef10 TurboJPEG: Don't make STOPONWARNING persistent by DRC · 7 years ago
  21. dadebcd TurboJPEG: Add "copy none", progressive xform opts by DRC · 7 years ago
  22. aba6ae5 TurboJPEG: Opt. enable progressive entropy coding by DRC · 7 years ago
  23. d4092f6 TurboJPEG: Improve error handling by DRC · 7 years ago
  24. b9ab64d TurboJPEG: Thread-safe error message retrieval by DRC · 7 years ago
  25. 2ac4e9d Merge branch 'master' into dev by DRC · 7 years ago
  26. d4c41fe TurboJPEG: Fix potential memory leaks by DRC · 7 years ago
  27. 6c36568 Merge branch 'master' into dev by DRC · 8 years ago
  28. 8ce2c91 TurboJPEG: Decomp. 4:2:2/4:4:0 JPEGs w/unusual SFs by DRC · 8 years ago
  29. db04435 Silence pedantic GCC6 code formatting warnings by DRC · 8 years ago
  30. 7ee3ce9 Lay the groundwork for 32-bit AVX2 SIMD support by DRC · 8 years ago
  31. dec7995 Catch libjpeg errors in tjDecompressToYUV2() by DRC · 8 years ago
  32. 55a18d4 Merge branch '1.4.x' by DRC · 8 years ago
  33. 6e05352 TurboJPEG: Avoid dangling pointers by DRC · 8 years ago
  34. b657631 Merge branch '1.4.x' by DRC · 9 years ago
  35. 58ae401 Eliminate cppcheck false positive in turbojpeg.c by DRC · 9 years ago
  36. 6fa14b3 Declare source buffers in TurboJPEG C API as const by DRC · 9 years ago
  37. db6d8fc 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.) by DRC · 9 years ago
  38. 1f79c7c 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. by DRC · 9 years ago
  39. bec45b1 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. by DRC · 9 years ago
  40. 80bbd39 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. by DRC · 9 years ago
  41. 44320a2 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. by DRC · 9 years ago
  42. feccdcf 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. by DRC · 9 years ago
  43. ea1eea4 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. by DRC · 10 years ago
  44. 55620c6 Another oops. tjBufSizeYUV2() should return -1 if width < 1. by DRC · 10 years ago
  45. 2240974 Oops. tjPlaneSizeYUV() should return -1 if componentID > 0 and subsamp==TJSAMP_GRAY. by DRC · 10 years ago
  46. 0713c1b 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. by DRC · 10 years ago
  47. 40dd314 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 by DRC · 10 years ago
  48. aecea38 Extend the TurboJPEG C API to support handling YUV images stored in separate image planes instead of a unified buffer by DRC · 10 years ago
  49. 5de454b libjpeg-turbo has never supported non-ANSI compilers, so get rid of the crufty SIZEOF() macro. It was not being used consistently anyhow, so it would not have been possible to build prior releases of libjpeg-turbo using the broken compilers for which that macro was designed. by DRC · 10 years ago
  50. bc56b75 Get rid of the HAVE_PROTOTYPES configuration option, as well as the related JMETHOD and JPP macros. libjpeg-turbo has never supported compilers that don't handle prototypes. Doing so requires ansi2knr, which isn't even supported in the IJG code anymore. by DRC · 10 years ago
  51. f57b8a6 Phrasing. Boom. by DRC · 10 years ago
  52. 230d09d Fix crashes and bogus output in the CMYK and decode-to-YUV features that occurred if JCS_EXTENSIONS wasn't defined. by DRC · 10 years ago
  53. 4186162 Fix warnings about unused variables when building with GCC 4.8.x by DRC · 10 years ago
  54. 7d9f758 For now, punt on trying to support fancy upsampling in tjDecodeYUV(). Fancy upsampling requires context rows and other refinements, which are difficult to implement correctly with the algorithm we're using. Longer-term, supporting fancy upsampling would probably require using the main buffer that libjpeg allocates. by DRC · 10 years ago
  55. 15c0876 Fix additional uninitialized values reported by valgrind by DRC · 10 years ago
  56. c901449 When tjDecodeYUV() is used with a "fresh" decompressor instance (one that hasn't been previously used to decompress a JPEG image), then it needs comps_in_scan, data_precision, and the quantization tables to be defined. This patch also extends TJUnitTest to check for this error. by DRC · 10 years ago
  57. 2bdc042 Go ahead and call jinit_master_decompress() rather than trying to reproduce its functionality. That function does a few things that we were missing, including allocating the range limit table used by the plain C color conversion code. by DRC · 10 years ago
  58. 4d82ddb Oops. We need to call start_pass() on the color converter in order to allocate the conversion tables used by the plain C code. by DRC · 10 years ago
  59. 84c25cb Oops. We need to call start_pass() on the color converter in order to allocate the conversion tables used by the plain C code. by DRC · 10 years ago
  60. 50cfc46 Oops. We need to call start_pass() on the color converter in order to allocate the conversion tables used by the plain C code. by DRC · 10 years ago
  61. 895fd6d Fix unitialized value reported by valgrind (the upsampling routine used by 4:4:0 and 4:1:1 reads the value of component_index.) by DRC · 10 years ago
  62. 34dca05 Implement a YUV decode function in the TurboJPEG API, to be symmetric with tjEncodeYUV(). by DRC · 10 years ago
  63. 54918b3 Remove unused code (the destination manager is not used during YUV encoding, there are no virtual arrays to realize, and jinit_c_prep_controller() is unnecessary because we are not using smoothing.) by DRC · 10 years ago
  64. e2ce3b5 Remove unused code (the destination manager is not used during YUV encoding, there are no virtual arrays to realize, and jinit_c_prep_controller() is unnecessary because we are not using smoothing.) by DRC · 10 years ago
  65. 5aec4af Use C-style comments by DRC · 10 years ago
  66. c7a3246 Remove unused code (the destination manager is not used during YUV encoding, there are no virtual arrays to realize, and jinit_c_prep_controller() is unnecessary because we are not using smoothing.) by DRC · 10 years ago
  67. 006bc58 Use C-style comments by DRC · 10 years ago
  68. 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 · 10 years ago
  69. 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 · 10 years ago
  70. 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 · 10 years ago
  71. b51ee89 r1065 broke the build on Windows, because getinstance() defines a variable. Thus, it needs to occur before the array initialization code. by DRC · 11 years ago
  72. 910a357 Extend the TurboJPEG C API to support compressing JPEG images from YUV planar images by DRC · 11 years ago
  73. eaa31f5 Oops by DRC · 11 years ago
  74. e2f8e69 Fix a really subtle issue whereby an invalid free() could occur if a program called tjInitDecompress() and then accidentally passed the handle to tjEncodeYUV3(), or if a program called tjInitCompress() and then accidentally passed the handle to tjDecompressToYUV2(). by DRC · 11 years ago
  75. 6cef2b1 Fix a really subtle issue whereby an invalid free() could occur if a program called tjInitDecompress() and then accidentally passed the handle to tjEncodeYUV2(), or if a program called tjInitCompress() and then accidentally passed the handle to tjDecompressToYUV(). by DRC · 11 years ago
  76. cd7c3e6 Add CMYK support to the TurboJPEG C API by DRC · 11 years ago
  77. 1f3635c Add 4:1:1 subsampling support in the TurboJPEG C API by DRC · 11 years ago
  78. 418fe28 Fix incorrect data output and buffer overruns in the new tjDecompressToYUV2() function whenever scaling is used along with a 4:2:0 JPEG image; extend tjunittest and TJUnitTest to test for these issues. by DRC · 11 years ago
  79. 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
  80. bdfcb74 Actually, turbojpeg.c works with libjpeg as well by DRC · 11 years ago
  81. 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 · 11 years ago
  82. 2186809 Oops. Add support for TJFLAG_FASTDCT to tjDecompressToYUV() as well. by DRC · 12 years ago
  83. e0419b5 Oops. Add support for TJFLAG_FASTDCT to tjDecompressToYUV() as well. by DRC · 12 years ago
  84. 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
  85. 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
  86. ea3396a Fix memory leak in the colorspace emulation code by DRC · 12 years ago
  87. afc0692 Emulate colorspace extensions if they are not present in the libjpeg API. This allows the TurboJPEG wrapper to be used with libjpeg rather than libjpeg-turbo. Not useful within the context of our project, but other projects prefer to include the TurboJPEG wrapper in-tree, and this allows them to be linked against either libjpeg-turbo or libjpeg. by DRC · 12 years ago
  88. d4c15e1 Whitespace tweak by DRC · 12 years ago
  89. 8ad2492 Ensure that tjDecompress2() exits cleanly if setDecompDefaults() fails by DRC · 12 years ago
  90. 2eda821 Ensure that tjDecompress2() exits cleanly if setDecompDefaults() fails by DRC · 12 years ago
  91. ab2df6e Expose new scaling factors in TurboJPEG API by DRC · 12 years ago
  92. efe28ce Compiler warnings by DRC · 12 years ago
  93. 67ce3b2 Added new alpha channel colorspace constants/pixel formats, so applications can specify that they need the unused byte in a 4-component RGB output buffer set to 0xFF when decompressing. by DRC · 12 years ago
  94. f546711 Implement custom filter callback in Java by DRC · 13 years ago
  95. 7bf04d3 Implement a custom DCT filter callback for lossless transforms by DRC · 13 years ago
  96. f12bb30 Fix compile error when JCS_EXTENSIONS!=1 by DRC · 13 years ago
  97. 9b49f0e Re-work TJBUFSIZE() to take into account the level of chrominance subsampling by DRC · 13 years ago
  98. 418dbdf turbojpegl.c=turbojpeg.c by DRC · 13 years ago[Renamed from turbojpegl.c]
  99. 296c71b MinGW seems to barf unless jinclude.h is included before jpeglib.h by DRC · 13 years ago
  100. 6b76f75 Add new API functions, tjAlloc() and tjFree(), which allow memory to be allocated and freed using a method of the library's choosing. At the moment, the primary purpose for this is to avoid allocating/freeing memory across the DLL boundary on Windows. by DRC · 13 years ago