public void WriteChunk(byte[] chunkType, byte[] data)
{
OutputInt(data.Length);
outp.Write(chunkType, 0, 4);
outp.Write(data, 0, data.Length);
uint c = update_crc(0xffffffffU, chunkType, 0, chunkType.Length);
c = update_crc(c, data, 0, data.Length) ^ 0xffffffffU;
OutputInt((int)c);
}