public PngIDatChunkInputStream(Stream iStream, int lenFirstChunk, long offset_0) {
this.idLastChunk = new byte[4];
this.toReadThisChunk = 0;
this.ended = false;
this.foundChunksInfo = new List<IdatChunkInfo>();
this.offset = offset_0;
checkCrc = true;
inputStream = iStream;
crcEngine = new CRC32();
this.lenLastChunk = lenFirstChunk;
toReadThisChunk = lenFirstChunk;
// we know it's a IDAT
System.Array.Copy((Array)(Hjg.Pngcs.Chunks.ChunkHelper.b_IDAT), 0, (Array)(idLastChunk), 0, 4);
crcEngine.Update(idLastChunk, 0, 4);
foundChunksInfo.Add(new PngIDatChunkInputStream.IdatChunkInfo(lenLastChunk, offset_0 - 8));
// PngHelper.logdebug("IDAT Initial fragment: len=" + lenLastChunk);
if (this.lenLastChunk == 0)
EndChunkGoForNext(); // rare, but...
}