1
0
Fork 0
Commit Graph

284 Commits

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