Commit c485c835 authored by James Almer's avatar James Almer Committed by Michael Niedermayer

avutil/crc: Dont limit CRC32 standard tables

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: 's avatarMichael Niedermayer <michaelni@gmx.at>
parent 0c2f673e
...@@ -211,6 +211,11 @@ static const AVCRC av_crc_table[AV_CRC_MAX][257] = { ...@@ -211,6 +211,11 @@ static const AVCRC av_crc_table[AV_CRC_MAX][257] = {
}, },
}; };
#else #else
#if CONFIG_SMALL
#define CRC_TABLE_SIZE 257
#else
#define CRC_TABLE_SIZE 1024
#endif
static struct { static struct {
uint8_t le; uint8_t le;
uint8_t bits; uint8_t bits;
...@@ -222,7 +227,7 @@ static struct { ...@@ -222,7 +227,7 @@ static struct {
[AV_CRC_32_IEEE] = { 0, 32, 0x04C11DB7 }, [AV_CRC_32_IEEE] = { 0, 32, 0x04C11DB7 },
[AV_CRC_32_IEEE_LE] = { 1, 32, 0xEDB88320 }, [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 #endif
int av_crc_init(AVCRC *ctx, int le, int bits, uint32_t poly, int ctx_size) int av_crc_init(AVCRC *ctx, int le, int bits, uint32_t poly, int ctx_size)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment