mirror of
https://github.com/chylex/Brotli-Builder.git
synced 2025-04-07 00:15:50 +02:00
Add BrotliImpl transformers to reset some header parameters
This commit is contained in:
parent
435b9d8e5b
commit
f6bba3d604
BrotliBuilder
BrotliImpl/Transformers
@ -32,8 +32,16 @@ namespace BrotliBuilder{
|
||||
}
|
||||
|
||||
private void InitializeMenuTransformers(MainMenuBase.Item menu){
|
||||
menu.Add("Rebuild", () => TransformCurrentFile(new TransformRebuild()));
|
||||
menu.Add("Convert to Uncompressed", () => TransformCurrentFile(new TransformCompressedIntoUncompressed()));
|
||||
menu.Add("Rebuild", () => TransformCurrentFile(new TransformRebuild()));
|
||||
|
||||
menu.AddSeparator();
|
||||
|
||||
menu.Add("Convert to Uncompressed", () => TransformCurrentFile(new TransformCompressedIntoUncompressed()));
|
||||
menu.Add("Reset Distance Parameters", () => TransformCurrentFile(new TransformResetDistanceParameters()));
|
||||
menu.Add("Reset Block Splits & Context Models", () => TransformCurrentFile(new TransformResetBlockSplitsContextModels()));
|
||||
|
||||
menu.AddSeparator();
|
||||
|
||||
menu.Add("Test Distance Parameters", () => TransformCurrentFile(new TransformTestDistanceParameters()));
|
||||
menu.Add("Split Insert Copy Lengths", () => TransformCurrentFile(new TransformSplitInsertCopyLengths()));
|
||||
}
|
||||
|
@ -0,0 +1,24 @@
|
||||
using BrotliLib.Brotli;
|
||||
using BrotliLib.Brotli.Components;
|
||||
using BrotliLib.Brotli.Components.Header;
|
||||
using BrotliLib.Brotli.Encode;
|
||||
using BrotliLib.Brotli.Encode.Build;
|
||||
using BrotliLib.Brotli.Parameters;
|
||||
using BrotliLib.Brotli.Utils;
|
||||
|
||||
namespace BrotliImpl.Transformers{
|
||||
public class TransformResetBlockSplitsContextModels : BrotliTransformerCompressed{
|
||||
protected override (MetaBlock, BrotliGlobalState) Transform(MetaBlock.Compressed original, BrotliGlobalState state, BrotliCompressionParameters parameters){
|
||||
var builder = new CompressedMetaBlockBuilder(original, state){
|
||||
LiteralCtxMap = ContextMapBuilder.Literals.Simple,
|
||||
DistanceCtxMap = ContextMapBuilder.Distances.Simple
|
||||
};
|
||||
|
||||
foreach(var category in Categories.LID){
|
||||
builder.BlockTypes[category].Reset();
|
||||
}
|
||||
|
||||
return builder.UseSameLiteralContextMode(LiteralContextMode.LSB6).Build(parameters);
|
||||
}
|
||||
}
|
||||
}
|
16
BrotliImpl/Transformers/TransformResetDistanceParameters.cs
Normal file
16
BrotliImpl/Transformers/TransformResetDistanceParameters.cs
Normal file
@ -0,0 +1,16 @@
|
||||
using BrotliLib.Brotli;
|
||||
using BrotliLib.Brotli.Components;
|
||||
using BrotliLib.Brotli.Components.Header;
|
||||
using BrotliLib.Brotli.Encode;
|
||||
using BrotliLib.Brotli.Encode.Build;
|
||||
using BrotliLib.Brotli.Parameters;
|
||||
|
||||
namespace BrotliImpl.Transformers{
|
||||
public class TransformResetDistanceParameters : BrotliTransformerCompressed{
|
||||
protected override (MetaBlock, BrotliGlobalState) Transform(MetaBlock.Compressed original, BrotliGlobalState state, BrotliCompressionParameters parameters){
|
||||
return new CompressedMetaBlockBuilder(original, state){
|
||||
DistanceParameters = DistanceParameters.Zero
|
||||
}.Build(parameters);
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user