public SdpArchive(Stream input) { files.Clear(); var r = new BinaryReader(input, Encoding.ASCII); var temp = new Byte[4]; while (r.Read(temp, 0, 1) > 0) { int nameLen = temp[0]; var pi = new PoolFileInfo { Name = new string(r.ReadChars(nameLen)), Hash = new Hash(r.ReadBytes(Hash.Size)) }; temp = r.ReadBytes(4); pi.Crc = ParseUint32(temp); temp = r.ReadBytes(4); pi.UncompressedSize = ParseUint32(temp); files.Add(pi); } }