Files

25 lines
388 B
Go

package oggvorbis
var crcTable [256]uint32
func init() {
for i := range crcTable {
r := uint32(i) << 24
for j := 0; j < 8; j++ {
if r&0x80000000 != 0 {
r = (r << 1) ^ 0x04c11db7
} else {
r <<= 1
}
}
crcTable[i] = r
}
}
func crcUpdate(crc uint32, data []byte) uint32 {
for _, b := range data {
crc = (crc << 8) ^ crcTable[byte(crc>>24)^b]
}
return crc
}