[FFmpeg-cvslog] avutil/crc: Dont limit CRC32 standard tables

James Almer git at videolan.org
Sat Jun 1 10:59:09 CEST 2013


ffmpeg | branch: master | James Almer <jamrial at gmail.com> | Sat Jun  1 01:36:38 2013 -0300| [c485c835fef46dea5dddf66243954275291dcdee] | committer: 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: Michael Niedermayer <michaelni at gmx.at>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=c485c835fef46dea5dddf66243954275291dcdee
---

 libavutil/crc.c |    7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/libavutil/crc.c b/libavutil/crc.c
index 9ee5efe..51fc83b 100644
--- a/libavutil/crc.c
+++ b/libavutil/crc.c
@@ -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)



More information about the ffmpeg-cvslog mailing list