By design the benchmark project is not build as it relies on Google Benchmark that is retrieved using vcpkg.
Vcpkg is now part of Visual Studio 2022, so building with VS 2022 works.
One of the build steps of the CI pipeline build CharLS however with VS 2019 to ensure that VS 2019 still can be used. Enabled benchmark in the solution file for x86 and X64 would break VS 2019.
ARM64 build are only support in VS 2022, so enabling that version doesn't break VS 2019.
To make it more clear to users and tooling that the project is a C++ project use the extension .hpp for pure C++ headers.
Add a new public header file charls.hpp. External C++ projects should this header file, C projects should still use charls.h.
Group the error IDs in errors that cannot be prevented and can be reported at runtime and in a set of errors that can be prevented.
Note 1: the error destination_too_small is considerd a runtime failure, but can in many cases be prevented.
Note 2: unexpected exceptions will now trigger a call to std::terminate (improved crash dumps)
* Add support to write mapping tables to the JPEG byte stream.
* Add API method to set the table ID for a component
* Add method to create JPEG-LS file with mapping tables only.
* Add support to read mapping tables
* Parse table-ids from the scan segment
* Extend API of charls_decoder_get_mapping_table_index to return -1 if index is not found
* Add support to read mapping table continuation segments
* Document new API methods
* Add sample image from appendix H.4.5 "Example of a palletised image" / Figure H.10 to unit test
* Update the get_mapping_table API to include size of the buffer