예제 #1
0
        public LzmaStream(LzmaEncoderProperties properties, bool isLZMA2, Stream presetDictionary, Stream outputStream)
        {
            this.outWindow         = new OutWindow();
            this.rangeDecoder      = new SharpCompress.Compressor.LZMA.RangeCoder.Decoder();
            this.position          = 0L;
            this.endReached        = false;
            this.inputPosition     = 0L;
            this.uncompressedChunk = false;
            this.needDictReset     = true;
            this.needProps         = true;
            this.props             = new byte[5];
            this.isLZMA2           = isLZMA2;
            this.availableBytes    = 0L;
            this.endReached        = true;
            if (isLZMA2)
            {
                throw new NotImplementedException();
            }
            this.encoder = new SharpCompress.Compressor.LZMA.Encoder();
            this.encoder.SetCoderProperties(properties.propIDs, properties.properties);
            MemoryStream outStream = new MemoryStream(5);

            this.encoder.WriteCoderProperties(outStream);
            this.props = outStream.ToArray();
            this.encoder.SetStreams(null, outputStream, -1L, -1L);
            if (presetDictionary != null)
            {
                this.encoder.Train(presetDictionary);
            }
        }
예제 #2
0
 public LzmaStream(LzmaEncoderProperties properties, bool isLZMA2, Stream presetDictionary, Stream outputStream)
 {
     this.outWindow = new OutWindow();
     this.rangeDecoder = new SharpCompress.Compressor.LZMA.RangeCoder.Decoder();
     this.position = 0L;
     this.endReached = false;
     this.inputPosition = 0L;
     this.uncompressedChunk = false;
     this.needDictReset = true;
     this.needProps = true;
     this.props = new byte[5];
     this.isLZMA2 = isLZMA2;
     this.availableBytes = 0L;
     this.endReached = true;
     if (isLZMA2)
     {
         throw new NotImplementedException();
     }
     this.encoder = new SharpCompress.Compressor.LZMA.Encoder();
     this.encoder.SetCoderProperties(properties.propIDs, properties.properties);
     MemoryStream outStream = new MemoryStream(5);
     this.encoder.WriteCoderProperties(outStream);
     this.props = outStream.ToArray();
     this.encoder.SetStreams(null, outputStream, -1L, -1L);
     if (presetDictionary != null)
     {
         this.encoder.Train(presetDictionary);
     }
 }