diff options
author | Josh Coalson <jcoalson@users.sourceforce.net> | 2001-03-27 01:14:25 +0000 |
---|---|---|
committer | Josh Coalson <jcoalson@users.sourceforce.net> | 2001-03-27 01:14:25 +0000 |
commit | 6351ef6c1ea29e885b2d24ee9aaf0821012a98a1 (patch) | |
tree | f2a4624ecdbf32043c9a653abaf1ce0d5cad7a2d /src/libFLAC/include/private/crc.h | |
parent | 1e1509fb35a3c4a07042cd5d6d2ab78840cd4baa (diff) | |
download | flac-6351ef6c1ea29e885b2d24ee9aaf0821012a98a1.tar.gz |
add CRC-16 code, more methods
Diffstat (limited to 'src/libFLAC/include/private/crc.h')
-rw-r--r-- | src/libFLAC/include/private/crc.h | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/src/libFLAC/include/private/crc.h b/src/libFLAC/include/private/crc.h index 7b23b597..783f00a6 100644 --- a/src/libFLAC/include/private/crc.h +++ b/src/libFLAC/include/private/crc.h @@ -23,8 +23,23 @@ #include "FLAC/ordinals.h" /* 8 bit CRC generator, MSB shifted first -** polynomial = x^8 + x^2 + x^1 + 1 +** polynomial = x^8 + x^2 + x^1 + x^0 +** init = 0 */ -byte FLAC__crc8(const byte *data, const unsigned len); +extern byte const FLAC__crc8_table[256]; +#define FLAC__CRC8_UPDATE(data, crc) crc = FLAC__crc8_table[crc ^ data]; +void FLAC__crc8_update(const byte data, uint8 *crc); +void FLAC__crc8_update_block(const byte *data, unsigned len, uint8 *crc); +uint8 FLAC__crc8(const byte *data, unsigned len); + +/* 16 bit CRC generator, MSB shifted first +** polynomial = x^16 + x^15 + x^2 + x^0 +** init = 0 +*/ +extern uint16 FLAC__crc16_table[256]; +#define FLAC__CRC16_UPDATE(data, crc) crc = (crc<<8) ^ FLAC__crc16_table[(crc>>8) ^ data]; +void FLAC__crc16_update(const byte data, uint16 *crc); +void FLAC__crc16_update_block(const byte *data, unsigned len, uint16 *crc); +uint16 FLAC__crc16(const byte *data, unsigned len); #endif |