public DeflaterHuffman(PendingBuffer pending) { this.pending = pending; literalTree = new Tree(this, LiteralNum, 257, 15); distTree = new Tree(this, DistNum, 1, 15); blTree = new Tree(this, BitlenNum, 4, 7); dBuf = new short[Bufsize]; lBuf = new byte[Bufsize]; }
public unsafe Deflater(int level, int tooFar) { if (level < NoCompression || level > BestCompression) { throw new ArgumentOutOfRangeException("level"); } if (tooFar < 0 || tooFar > 32767) { throw new ArgumentOutOfRangeException("tooFar"); } this.level = level; pending = new PendingBuffer(DeflaterConstants.PendingBufSize); engine = new DeflaterEngine(pending, level, tooFar); state = BusyState; pending.Reset(); fixed(byte *mem = engine.memFix) { engine.Reset(mem); } }
public DeflaterEngine(PendingBuffer pending, int lvl, int tooFar = 4096) { this.pending = pending; huffman = new DeflaterHuffman(pending); blockStart = strstart = 1; goodLength = DeflaterConstants.GoodLength[lvl]; maxLazy = DeflaterConstants.MaxLazy[lvl]; niceLength = DeflaterConstants.NiceLength[lvl]; maxChain = DeflaterConstants.MaxChain[lvl]; comprFunc = DeflaterConstants.ComprFunc[lvl]; insH = 0; matchStart = 0; matchLen = 0; prevAvailable = false; lookahead = 0; totalIn = 0; inputBuf = null; inputOff = 0; inputEnd = 0; TooFar = tooFar; }