2025-01-22 16:18:30 +01:00

33 lines
694 B
Haxe

package kha.audio2.ogg.tools;
import haxe.ds.Vector;
/**
* ...
* @author shohei909
*/
class Crc32
{
static inline var POLY:UInt = 0x04c11db7;
static var table:Vector<UInt>;
public static function init() {
if (table != null) {
return;
}
table = new Vector(256);
for (i in 0...256) {
var s:UInt = ((i:UInt) << (24:UInt));
for (j in 0...8) {
s = (s << 1) ^ (s >= ((1:UInt) << 31) ? POLY : 0);
}
table[i] = s;
}
}
public static inline function update(crc:UInt, byte:UInt):UInt
{
return (crc << 8) ^ table[byte ^ (crc >>> 24)];
}
}