avutil/crc: Dont limit CRC32 standard tables
authorJames Almer <jamrial@gmail.com>
Sat, 1 Jun 2013 04:36:38 +0000 (01:36 -0300)
committerMichael Niedermayer <michaelni@gmx.at>
Sat, 1 Jun 2013 08:53:39 +0000 (10:53 +0200)
Currently, standard tables like AV_CRC_32_IEEE and such are being generated (or
provided in case the user compiles with hardcoded tables) with only 257 elements.
We're missing a considerable boost in performance by not making them with a size
of 1024 elements instead.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
libavutil/crc.c

index 9ee5efe..51fc83b 100644 (file)
@@ -211,6 +211,11 @@ static const AVCRC av_crc_table[AV_CRC_MAX][257] = {
     },
 };
 #else
+#if CONFIG_SMALL
+#define CRC_TABLE_SIZE 257
+#else
+#define CRC_TABLE_SIZE 1024
+#endif
 static struct {
     uint8_t  le;
     uint8_t  bits;
@@ -222,7 +227,7 @@ static struct {
     [AV_CRC_32_IEEE]    = { 0, 32, 0x04C11DB7 },
     [AV_CRC_32_IEEE_LE] = { 1, 32, 0xEDB88320 },
 };
-static AVCRC av_crc_table[AV_CRC_MAX][257];
+static AVCRC av_crc_table[AV_CRC_MAX][CRC_TABLE_SIZE];
 #endif
 
 int av_crc_init(AVCRC *ctx, int le, int bits, uint32_t poly, int ctx_size)