Tim Schumacher
85a54cc796
LibCompress: Add an LZMA encoder
2023-05-17 09:08:53 +02:00
Tim Schumacher
42514c6961
LibCompress: Decode the LZMA match type in a separate function
...
This should keep the `read_some` function a bit flatter and shorter, and
make it easier to match the match type decoding process with the
specification.
2023-05-17 09:08:53 +02:00
Tim Schumacher
4a37bac374
LibCompress: Make LzmaHeader a POD-like type
...
This allows us to initialize the struct using an aggregate initializer.
2023-05-17 09:08:53 +02:00
Tim Schumacher
440d8f908f
LibCompress: Extract the LZMA state to a separate class
...
We will also need this in the compressor, as it needs to do the exact
same calculations in reverse.
2023-05-17 09:08:53 +02:00
Tim Schumacher
023c64011c
LibCompress: Use the correct LZMA repetition offset in all cases
2023-03-30 14:39:31 +02:00
Tim Schumacher
8ff36e5910
LibCompress: Implement proper handling of LZMA end-of-stream markers
2023-03-30 08:45:35 +02:00
Tim Schumacher
b6f3b2f116
LibCompress: Move common LZMA end-of-file checks into helper functions
2023-03-30 08:45:35 +02:00
Tim Schumacher
1b8318ab67
LibCompress: Allow providing an external dictionary for LZMA
...
While at it, rename the former "output buffer" to "dictionary", since
that's its primary function.
2023-03-21 10:25:13 +01:00
Tim Schumacher
f4506a3a72
LibCompress: Allow appending input streams to an existing LZMA decoder
2023-03-21 10:25:13 +01:00
Tim Schumacher
04f69de7f1
LibCompress: Refactor LZMA model property decoding into a static helper
2023-03-21 10:25:13 +01:00
Tim Schumacher
b3a9729e23
LibCompress: Add support for LZMA streams
2023-03-20 12:15:38 +02:00