summaryrefslogtreecommitdiff
path: root/src/libFLAC/include/private/crc.h
diff options
context:
space:
mode:
authorJosh Coalson <jcoalson@users.sourceforce.net>2001-03-27 01:14:25 +0000
committerJosh Coalson <jcoalson@users.sourceforce.net>2001-03-27 01:14:25 +0000
commit6351ef6c1ea29e885b2d24ee9aaf0821012a98a1 (patch)
treef2a4624ecdbf32043c9a653abaf1ce0d5cad7a2d /src/libFLAC/include/private/crc.h
parent1e1509fb35a3c4a07042cd5d6d2ab78840cd4baa (diff)
downloadflac-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.h19
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