summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libavcodec/utils.c2
-rw-r--r--libavutil/crc.c7
-rw-r--r--libavutil/crc.h7
3 files changed, 16 insertions, 0 deletions
diff --git a/libavcodec/utils.c b/libavcodec/utils.c
index 6573e3c810..74192caf21 100644
--- a/libavcodec/utils.c
+++ b/libavcodec/utils.c
@@ -1189,9 +1189,11 @@ unsigned avcodec_build( void )
}
static void init_crcs(void){
+#if LIBAVUTIL_VERSION_INT < (50<<16)
av_crc04C11DB7= av_mallocz_static(sizeof(AVCRC) * 257);
av_crc8005 = av_mallocz_static(sizeof(AVCRC) * 257);
av_crc07 = av_mallocz_static(sizeof(AVCRC) * 257);
+#endif
av_crc_init(av_crc04C11DB7, 0, 32, 0x04c11db7, sizeof(AVCRC)*257);
av_crc_init(av_crc8005 , 0, 16, 0x8005 , sizeof(AVCRC)*257);
av_crc_init(av_crc07 , 0, 8, 0x07 , sizeof(AVCRC)*257);
diff --git a/libavutil/crc.c b/libavutil/crc.c
index baa605d325..02fb860b86 100644
--- a/libavutil/crc.c
+++ b/libavutil/crc.c
@@ -21,10 +21,17 @@
#include "common.h"
#include "crc.h"
+#if LIBAVUTIL_VERSION_INT < (50<<16)
AVCRC *av_crcEDB88320;
AVCRC *av_crc04C11DB7;
AVCRC *av_crc8005 ;
AVCRC *av_crc07 ;
+#else
+AVCRC av_crcEDB88320[257];
+AVCRC av_crc04C11DB7[257];
+AVCRC av_crc8005 [257];
+AVCRC av_crc07 [257];
+#endif
/**
* Inits a crc table.
diff --git a/libavutil/crc.h b/libavutil/crc.h
index e739c309b7..1f6431992b 100644
--- a/libavutil/crc.h
+++ b/libavutil/crc.h
@@ -23,10 +23,17 @@
typedef uint32_t AVCRC;
+#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
int av_crc_init(AVCRC *ctx, int le, int bits, uint32_t poly, int ctx_size);
uint32_t av_crc(const AVCRC *ctx, uint32_t start_crc, const uint8_t *buffer, size_t length);