Tim Schumacher
a1cf2708ee
LibCompress: Implement the XZ BCJ filter for ARM64
2023-12-14 08:59:23 -07:00
Tim Schumacher
25642dfe87
LibCompress: Implement correct validation of last filters
2023-10-29 22:00:59 +01:00
Tim Schumacher
786e654dfd
LibCompress: Implement the XZ delta filter
2023-10-29 22:00:59 +01:00
Tim Schumacher
f0b08e9dea
LibCompress: Process XZ filters in reverse order
...
XZ writes filters in the order that they are used during compression, so
we need to process them in the reverse order while decompression.
This wasn't noticed earlier because we only supported the LZMA2 filter.
2023-10-29 22:00:59 +01:00
Tim Schumacher
381da77ffb
LibCompress: Mark some XZ-related variables and functions as const
2023-04-08 15:18:59 -07:00
Tim Schumacher
e9789e9f36
LibCompress: Move loading XZ blocks into its own function
2023-04-08 15:18:59 -07:00
Tim Schumacher
e6b1e1bb33
LibCompress: Move finishing the current XZ stream into its own function
2023-04-08 15:18:59 -07:00
Tim Schumacher
68984abc43
LibCompress: Move finishing the current XZ block into its own function
2023-04-08 15:18:59 -07:00
Tim Schumacher
0e11e7012d
LibCompress: Move loading XZ stream headers into its own function
2023-04-08 15:18:59 -07:00
Tim Schumacher
ad31265e60
LibCompress: Implement block size validation for XZ streams
2023-04-01 13:57:54 +02:00
Tim Schumacher
20f1a29202
LibCompress: Factor out the list of XZ check sizes
2023-04-01 13:57:54 +02:00
Tim Schumacher
726963edc7
LibCompress: Implement support for multiple concatenated XZ streams
2023-03-30 14:38:47 +02:00
Tim Schumacher
00332c9b7d
LibCompress: Move XZ header validation into the read function
...
The constructor is now only concerned with creating the required
streams, which means that it no longer fails for XZ streams with
invalid headers. Instead, everything is parsed and validated during the
first read, preparing us for files with multiple streams.
2023-03-30 14:38:47 +02:00
Tim Schumacher
9e990f7329
LibCompress: Add support for XZ
2023-03-21 10:25:13 +01:00