1
0
mirror of https://github.com/chylex/Brotli-Builder.git synced 2024-12-22 07:42:47 +01:00
Commit Graph

284 Commits

Author SHA1 Message Date
d66824e96b Release 2.0.0 2020-05-11 01:10:27 +02:00
ef1be3fad0 Fix BlockSwitchBuilder initial length reset & leaking command list reference 2020-05-09 17:39:24 +02:00
f20e0d0f19 Refactor marker building & optimize multi-meta-block marker generation 2020-04-16 19:18:04 +02:00
3e891a9edd Remove TODOs in BrotliCompressionParameters 2020-04-14 06:30:26 +02:00
20b770f2ef Expose WordTransform prefix/suffix information 2020-04-14 06:30:05 +02:00
435b9d8e5b Simplify context map construction 2020-04-12 09:55:37 +02:00
c229d678d6 Ensure empty command length code lists don't throw an exception 2020-04-07 22:49:23 +02:00
fb70490404 Add simpler ContextMapBuilder constructors 2020-04-07 22:48:22 +02:00
8b531f2e2b Fix broken final block-switch & improve command building API 2020-04-07 22:36:59 +02:00
6e4e0509d3 Reduce allocations & unnecessary calls in IC commands and distance codes 2020-04-07 18:01:09 +02:00
9c57e552a1 Split HuffmanGenerator into 2 files & refactor 2020-04-07 17:51:34 +02:00
f20b41faf8 Optimize BitStream enumeration and cloning & unit test enumeration 2020-04-07 17:43:29 +02:00
440fa7fd16 Add RingBufferFast & optimize construction 2020-04-07 17:41:24 +02:00
b29c044263 Minor code fixes (in/readonly keywords, exception messages, LINQ tweaks) 2020-04-07 17:41:24 +02:00
4cdf3825d2 Rewrite BlockSwitchTracker 2020-04-06 20:58:09 +02:00
777f6de11f Add more block-switch command and builder validation 2020-04-06 20:57:03 +02:00
5d9ddf89f0 Allow last block-switch command to exceed total symbol count in builder 2020-04-06 20:52:57 +02:00
20bb732d30 Add a few BrotliLib API utilities to DistanceInfo, TransformType & more 2020-04-06 01:34:59 +02:00
0fe554e2b3 Add block-switch builder command merging & additional validation 2020-04-05 19:14:44 +02:00
11df776279 Ensure FrequencyList does not have negative or leftover frequency counts 2020-04-05 18:11:26 +02:00
3d43f27bc9 Make CompressedMetaBlockBuilder return concrete MetaBlock.Compressed type 2020-04-05 17:49:32 +02:00
ed931fe700 Update FrequencyList API & update existing uses 2020-04-05 17:34:10 +02:00
fba5c43d39 Add BrotliFileReader output callbacks & IBrotliFileStream default method as extension 2020-03-30 13:34:44 +02:00
6fb64d62d2 Avoid calling BrotliCompressionParameters code pickers with only 1 candidate 2020-03-19 23:00:45 +01:00
e8796b7050 Fix BrotliDictionaryIndex.Find length constraints not counting prefix/suffix 2020-03-19 22:58:15 +01:00
aa0cb63f58 Add MetaBlock.Uncompressed constructor that takes ArraySegment 2020-03-18 17:22:11 +01:00
f9a0ec4e7d Add support for merging with last final InsertCopyCommand in CompressedMetaBlockBuilder 2020-03-18 17:02:22 +01:00
28082860d4 Add compression parameters for generating Huffman trees for block codes 2020-03-18 16:56:45 +01:00
2938bdff49 Minor builder API additions & fixes 2020-03-18 16:56:40 +01:00
c3bd51bed5 Add a BrotliGlobalState output callback system & use it for marking copies 2020-03-17 14:10:19 +01:00
29d57b15b3 Use Literal.ToString to mark raw bytes & add escape codes for tab characters 2020-03-17 13:59:09 +01:00
b2272ac8ce Turn % operator into bitwise AND where possible 2020-03-17 10:02:53 +01:00
e25839acf3 Make ArraySegments into 'in' parameters 2020-03-17 09:13:56 +01:00
e8ab507ef4 Change dictionary index to find all matches & allow min length of 1 2020-03-16 12:32:12 +01:00
88bd8d928b Rename interface & classes of the new streaming API 2020-03-15 16:22:22 +01:00
3663985832 Get rid of MetaBlock.IsLast property 2020-03-15 12:40:20 +01:00
bd88e17e68 Implement proper streaming API for both reading and writing Brotli files 2020-03-15 10:44:26 +01:00
5b5a1f1c6e Fix unused using statement & documentation formatting 2020-03-15 10:30:38 +01:00
9c4515d9e7 Rename DistanceCodeZeroStrategy & repurpose old name for command builder 2020-03-15 08:46:14 +01:00
661004e67f Stop generating distance code 0 for commands that don't explicitly request it 2020-03-14 17:44:01 +01:00
b919713d7b Fix infinite loop in context map RLE decider 2020-03-12 14:30:13 +01:00
9f801adcef Properly implement Huffman tree RLE SplitOneAboveBoundary heuristic & document 2020-03-12 07:41:48 +01:00
06bb3a316d Add serialization parameter to control length code tree generation for Huffman trees 2020-03-11 09:17:36 +01:00
da747b875f Implement Huffman tree RLE decider & add official heuristic as default 2020-03-11 03:38:14 +01:00
bd539907d8 Tweak context map serialization code & markers 2020-03-10 05:40:07 +01:00
833c6f1359 Implement context map RLE decider, add it & Huffman tree gen to serialization params 2020-03-10 05:39:34 +01:00
40f1588fc8 Move BrotliCompressionParameters.GenerateHuffmanTree delegate 2020-03-10 05:16:20 +01:00
06ddc3b7cf Move PickCodeHeuristics to a different namespace & fix type constraint 2020-03-10 05:02:21 +01:00
aa59f81da5 Fix documentation to use <c> instead of <code> 2020-03-10 00:42:02 +01:00
ad97ec4e5f Reimplement final command DCZ strategy in CompressedMetaBlockBuilder 2020-03-08 22:42:52 +01:00