19 Commits

Author SHA1 Message Date
Victor Derks
66a3605fd9
Add REUSE compatibility (#338)
- Follow the best practices of https://reuse.software/ to ensure BSD-3 licence is correctly applied.
- Add a badge to README.md
- Note: remove arm build as the CI pipeline is broken for this architecture
2024-12-04 12:33:36 +01:00
Dimitri Papadopoulos Orfanos
5a9b526180
Fix typos found by codespell (#335)
* Fix typos found by codespell

* Add missing >

---------

Co-authored-by: Victor Derks <vbaderks@gmail.com>
2024-09-25 22:59:02 +02:00
Victor Derks
2c48039847
Update the API to align with the C# implementation (#320) 2024-08-23 12:51:30 +02:00
Victor Derks
1127459953
Add missing #include <optional> to charls.ixx (#311) 2024-07-25 12:05:55 +02:00
Victor Derks
2c4d3f439c
Update version to 3.0.0 and minimum C++ version to 17 (#230)
The release of C++17 has been 5 years ago. The supported period of C++14 has ended and the minimum required C++ version will be increased to C++17 for building the library and using it.
2023-03-24 22:27:26 +01:00
Victor Derks
798dad59cc
Benchmark the update_variables for context (#139) 2022-01-15 18:10:18 +01:00
Victor Derks
26478a8ba3
Add benchmark project and use memchr (#127)
* Add an initial benchmark project to research optimizations.
* Use memchr to search for 0xFF during decoding.
* Rename function to make intent more clear.
* Use const pointers (decoding only need to read).
2022-01-05 18:27:22 +01:00
Victor Derks
01718e1ad1
Update warnings used by Clang and MSVC (#125)
Reserve the usage of Weverything and EnableAllWarnings for interactive development.
2022-01-03 23:44:58 +01:00
Victor Derks
a231a44741
Convert byte_stream_info into byte_span
The typical use case is to encode and decode to and from a memory buffer. For almost all practical cases this is the most efficient encoding/decoding mechanisme.
Decoding from a byte stream or encoding to a byte stream  with help of a callback function has been considered. There are however no significant advantages for the typical image sizes.
2020-10-24 17:52:08 +02:00
Victor Derks
7b9701bf5c Convert to the "standard" C++ coding style (templates)
Convert step by step the coding style to the "standard" C++ coding style.
2020-07-18 15:19:44 +02:00
Victor Derks
9720eeaded Convert to the "standard" C++ coding style (local variables)
Convert step by step the coding style to the "standard" C++ coding style.
2020-07-14 22:27:24 +02:00
Victor Derks
e90209e8f2 Introduce an object-oriented C++ API based on a new C ABI
The current C API prevents adding new features and the introduction of an object oriented C++ interface. Every change results directly in a ABI break. To prevent this a new C API is introduced that is easier to extend and to maintain. On top of this API are 2 C++ classes: jpeg_encoder and jpeg_decoder to encode and decode JPEG-LS files.

This commit comes also with the following changes:
- Updated .clang-format
- Switch to Visual Studio 2019 for the CI build pipeline
- Support for reading and writing SPIFF header
- Incomplete support for JFIF header has been removed
- Extended unit test coverage
2019-11-08 21:56:38 +01:00
Victor Derks
a7cfe6e66b Encode the ABI version and architecture in the Windows DLL filename
To ensure that the correct DLL is loaded, encode the ABI version (currently 2) and the CPU architecture in the DLL file name.
The architecture was already encoded (but only for x64), the ABI was missing, but requested as there are projects that use open source modules link with v1 and others with v2.
2019-05-23 23:27:18 +02:00
Victor Derks
57bc206677 Remove not needed calls to make_error_code
jpegls_error provides an overload that accepts a jpegls_errc and std::system_error will use make_error_code when needed.
2018-12-15 11:24:50 +01:00
Victor Derks
49a51f8140 Update ReadFile (test) to return std::vector
There is no need anymore to pass a vector as out parameter in modern C++, update ReadFile to return std::vector
2018-12-09 14:03:57 +01:00
Victor Derks
bbf66cd580 Add JPEG-LS logo 2018-11-21 22:03:03 +01:00
Victor Derks
2436002362 Replace custom error mechanism with std::error_code
Since C++11, it is possible to return rich error information. Replace the custom way of returning error values and strings with the C++ standard way.
The only limitation is that the strings need to fixed  and cannot use parameters. This should be no limitation in practice.
2018-11-18 23:11:54 +01:00
Victor Derks
4a0583087d Change format of .txt to .md (Markdown) 2018-11-05 21:53:42 +01:00
Victor Derks
2e050eb9df Move styleanddesign.txt to doc sub-directory 2018-11-05 21:22:26 +01:00