summaryrefslogtreecommitdiff
path: root/libavutil/crc.h
diff options
context:
space:
mode:
authorAurelien Jacobs <aurel@gnuage.org>2008-01-04 23:09:58 +0000
committerAurelien Jacobs <aurel@gnuage.org>2008-01-04 23:09:58 +0000
commit3abe5fbdc4169047421e9e8794a8f190d794b929 (patch)
tree69954b6566185ceebcd2e462cdfa6c68f0393b48 /libavutil/crc.h
parent83a0d3878c54b84b21c12be1981bd30096f278f4 (diff)
improve CRC API
- don't export any global var - provide either generated or hardcoded tables Originally committed as revision 11409 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavutil/crc.h')
-rw-r--r--libavutil/crc.h27
1 files changed, 9 insertions, 18 deletions
diff --git a/libavutil/crc.h b/libavutil/crc.h
index c6205c12a6..28cb7c0219 100644
--- a/libavutil/crc.h
+++ b/libavutil/crc.h
@@ -26,26 +26,17 @@
typedef uint32_t AVCRC;
-#define AV_CRC_8_ATM 0x07
-#define AV_CRC_16 0x8005
-#define AV_CRC_16_CCITT 0x1021
-#define AV_CRC_32_IEEE 0x04C11DB7L
-//! reversed bitorder version of AV_CRC_32_IEEE
-#define AV_CRC_32_IEEE_LE 0xEDB88320L
-
-#if LIBAVUTIL_VERSION_INT < (50<<16)
-extern AVCRC *av_crcEDB88320;
-extern AVCRC *av_crc04C11DB7;
-extern AVCRC *av_crc8005 ;
-extern AVCRC *av_crc07 ;
-#else
-extern AVCRC av_crcEDB88320[];
-extern AVCRC av_crc04C11DB7[];
-extern AVCRC av_crc8005 [];
-extern AVCRC av_crc07 [];
-#endif
+typedef enum {
+ AV_CRC_8_ATM,
+ AV_CRC_16_ANSI,
+ AV_CRC_16_CCITT,
+ AV_CRC_32_IEEE,
+ AV_CRC_32_IEEE_LE, /*< reversed bitorder version of AV_CRC_32_IEEE */
+ AV_CRC_MAX, /*< not part of public API! don't use outside lavu */
+}AVCRCId;
int av_crc_init(AVCRC *ctx, int le, int bits, uint32_t poly, int ctx_size);
+const AVCRC *av_crc_get_table(AVCRCId crc_id);
uint32_t av_crc(const AVCRC *ctx, uint32_t start_crc, const uint8_t *buffer, size_t length);
#endif /* FFMPEG_CRC_H */