Exemple #1
0
        public override int Read(byte[] buffer, int offset, int count)
        {
            int read = 0;

            if (!m_eof && m_remaining > 0)
            {
                uint chunk_size = (uint)Math.Min(count, m_remaining);
                read         = (int)m_decoder.DecodeNemesisCodeBytes(buffer, offset, chunk_size);
                m_eof        = read < count;
                m_remaining -= read;
            }
            return(read);
        }
Exemple #2
0
        Stream DecodeNemesis(Stream input)
        {
            var decoder = new NemesisDecodeContext();

            decoder.AttachInputFile(input);
            decoder.PrepareToDecodeERISANCode();
            var file   = new MemoryStream((int)input.Length);
            var buffer = new byte[0x10000];

            for (;;)
            {
                int read = (int)decoder.DecodeNemesisCodeBytes(buffer, 0x10000);
                if (0 == read)
                {
                    break;
                }
                file.Write(buffer, 0, read);
            }
            file.Position = 0;
            return(file);
        }