Hi to all,<br>I&#39;m doing an application to off-line analyze and edit a generic DVB TS.&nbsp; I have a lot og problems with CRC32 calculation on PSI/SI tables.<br>I&#39;m using a fast calculation CRC32:<br><br>poly: 0x04c11db7
<br><br>table:&nbsp; 0x00000000, 0x04c11db7, 0x09823b6e, 0x0d4326d9, 0x130476dc, 0x17c56b6b, etc.............<br><br>algorithm: <br><br>public long CRC(byte[] by) <br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ulong ulCRC = 0xFFFFFFFF;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; long len;
<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; len = by.Length;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; for(long i = 0; i &lt; len; i++) <br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; { <br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ulCRC = (ulCRC &gt;&gt; 8) ^ crcLookup[by[i]&nbsp; ^ (ulCRC &amp; 0xFF) ];
<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return Convert.ToInt64( ulCRC ^ 0xFFFFFFFF); <br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; } <br><br><br>Anyway the CRC32 value is different from CRC32 value in the last 4 byte of the packet. Which packet bytes I have to use for CRC calculation?
<br>Could you help me please? I&#39;m going crazy for CRC32.....:-(<br>Best regards,<br>Paolo<br><br>