Skip to content

Releases: team-charls/charls

CharLS v2.4.2

16 May 13:22
36dd330
Compare
Choose a tag to compare

Maintenance release.

Fixed

  • Fixed #269, Decoding doesn't work when compiled with mingw64.

CharLS v2.4.1

02 Jan 18:44
dd9e90d
Compare
Choose a tag to compare

Maintenance release.

Fixed

  • Fixed #221, jpegls_errc::destination_buffer_too_small incorrectly thrown for 8 bit 2*2 image with stride = 4 during decoding.

CharLS v2.4.0

29 Dec 14:09
c781c3e
Compare
Choose a tag to compare

Summary

Maintenance release.

Added

  • Support for Windows on ARM64 in the MSBuild projects and CMake files.
  • Support to read and write application data markers. #180
  • Added method charls_validate_spiff_header to validate SPIFF headers.

Changed

  • Improved compatibility of public headers with C++20.
  • Switch order of APP8 and SOF55 markers during encoding to allign with user application data markers.

Fixed

  • Fixed #167, Multi component image with interleave mode none is not correctly decoded when a custom stride argument is used.

CharLS v2.3.4

12 Feb 15:53
2.3.4
662d4f2
Compare
Choose a tag to compare

Summary

Maintenance release.

Changed

  • Replaced legacy test images

CharLS v2.3.3

05 Feb 14:34
2.3.3
4f02873
Compare
Choose a tag to compare

Summary

Maintenance release.

Fixed

  • Fixed #167, Decoding\Encoding fails on IBM s390x CPU (Big Endian architecture)

Changed

  • CTest is now used in the CI build pipeline to test the output of the Linux and macOS builds.

CharLS v2.2.1

03 Feb 20:52
2.2.1
0ae38a5
Compare
Choose a tag to compare

Summary

Maintenance release.

Fixed

  • Backport of fix for #167, Decoding\Encoding fails on IBM s390x CPU (Big Endian architecture).

CharLS v2.3.2

29 Jan 18:22
2.3.2
f586923
Compare
Choose a tag to compare

Summary

Maintenance release.

Fixed

  • Fixed #160, warning: cast from ‘unsigned char*’ to ‘uint16_t*’ increases required alignment of target type
  • Fixed #161, warning: useless cast to type ‘size_t’ {aka ‘unsigned int’} [-Wuseless-cast]

Changed

  • Updates to the CMakeLists.txt for Unix builds (except macOS) to hide more symbols from the shared library.
  • C++14 is now the minimum version instead of explicitly required. This allows consuming applications more flexibility.
    Typically CMake will select the latest C++ standard version that the used C++ compiler supports.

CharLS v2.3.1

25 Jan 22:34
2.3.1
11bda37
Compare
Choose a tag to compare

Summary

Maintenance release.

Fixed

  • Fixed #155, charls::jpegls_decoder::decode: 2 overloads have similar conversions in v2.3.0

CharLS v2.3.0

24 Jan 00:01
2.3.0
a7a9449
Compare
Choose a tag to compare

Summary

Feature and maintenance release.

Added

  • The encoder API has been extended with a rewind method that can be used to re-use a configured encoder to encode multiple images in a loop.
  • Added support to decode JPEG-LS images that use restart markers #92.
  • Added support to write and read comment (COM) segments #113.
  • Added support to encode/decode oversized images (width or height larger then 65535).
  • Extended the validation of the encoded JPEG-LS byte stream during decoding.
  • Added support to encode JPEG-LS images with:
    • The option to ensure the output stream has an even size.
    • The option to write the CharLS version number as a comment (COM segment) to the output stream.
    • The option to write the coding parameters to the output stream if the bits per pixel are larger then 12 (enabled by default).
  • Usage of compiler specific attributes on the public API as replacement for [[nodiscard]] (which is a C++17 feature).

Fixed

  • Fixed #84, Default preset coding parameters not computed for unset values.
  • Fixed #102, CMake find_package(charls 2.2.0 REQUIRED) not working.

Changed

  • CMakeSettings.json has been replaced with CMakePresets.json.
  • Non default coding parameters are explicitly stored in the output stream during encoding.
  • GCC shared library release builds are now using LTO (Link Time Optimization).
  • Some functions use compiler intrinsics for slightly better performance.

CharLS v2.2.0

10 Jan 18:17
2.2.0
0bafe4e
Compare
Choose a tag to compare

Summary

Feature and maintenance release.

Added

  • Added a pkg-config charls.pc file to help in detecting the CharLS library (see #76)
  • Added standard CMake variable BUILD_SHARED_LIBS as an option to make this option visible in the CMake GUI (see #66)
  • The PowerPC Little Endian (ppc64le) platform has been added as supported architecture

Fixed

  • Fixed #21, Building with UBSAN, will report runtime error: left shift
    of 4031 by 63 places cannot be represented in type 'long int'
  • Fixed #25, CharLS fails to read LSE marker segment after first SOS segment
  • Fixed #26, CharLS should only use the valid bits from the passed input buffer
  • Fixed #36, CharLS should remain stable from bad input (several issues found by fuzzy testing)
  • Fixed #60, Visual Studio 2015 C++ compiler cannot compile certain constexpr constructions
  • Fixed #62, Missing includes in jpegls_error.cpp when using libc++ (and not libstdc++)
  • Fixed #70, The C and C++ sample don't swap the pixels from a .bmp file horizontal
  • Fixed #79, Wrong JPEG-LS encoding when stride is non-default (stride != 0),
    component count > 1 and interleave_mode is none

Changed

  • The API has been extended with additional annotations to assist the static analyzers of the MSVC and the GCC/clang compilers
  • The size check for a Start Of Scan (SOS) segment is now exact for improved compatibility with fuzzy testing
  • The minimum support version of CMake is now 3.13 (was 3.9). 3.13 is needed for usage of the add_link_options statement
  • The Windows static library and DLL are now compiled with the Control Flow Guard (/guard:cf) option enabled for enhanced security
  • The .NET adapter has been upgraded to .NET 5 and moved to its own repository
    This has been done to make it possible to have different release cycles.

Removed

  • The legacy methods JpegLsEncodeStream, JpegLsDecodeStream and JpegLsReadHeaderStream have been removed as exported methods. These methods were not part of the public API and only used by by the charlstest application