public BrotliFileStreamTransformer(IBrotliFileStream original, BrotliCompressionParameters compressionParameters, params IBrotliTransformer[] transformers) { this.original = original; this.transformers = transformers; this.compressionParameters = compressionParameters; this.transformedQueue = new Queue <MetaBlock>(); }
public BitStream SerializeAndValidate(IBrotliFileStream reader) { var writer = new BrotliFileWriter(reader.Parameters, Parameters.Serialization); reader.ForEachRemainingMetaBlock(writer.WriteMetaBlock); return(Validate(writer.Close())); }
private BitStream Validate(BitStream bits) { IBrotliFileStream reader = BrotliFileReader.FromBytes(bits, Parameters.File.Dictionary); var output = new BrotliOutputStored(); var state = new BrotliGlobalState(reader.Parameters, output); reader.ForEachRemainingMetaBlock(metaBlock => metaBlock.Decompress(state)); if (!CollectionHelper.Equal(output.AsBytes, Uncompressed.Contents)) { throw new InvalidOperationException("Mismatched output bytes."); } return(bits); }
public ReferenceChecker(IBrotliFileStream originalReader, IBrotliFileStream transformingReader) { this.originalReader = originalReader; this.transformingReader = transformingReader; }
public int CountBytesAndValidate(IBrotliFileStream reader) { return((7 + SerializeAndValidate(reader).Length) / 8); }