tak: use crc table from lavu

Signed-off-by: Paul B Mahol <onemda@gmail.com>
This commit is contained in:
Paul B Mahol 2013-06-04 16:41:05 +00:00
parent 410192e369
commit 8491f40500
4 changed files with 1 additions and 27 deletions

View File

@ -72,22 +72,6 @@ static int tak_get_nb_samples(int sample_rate, enum TAKFrameSizeType type)
return nb_samples;
}
static int crc_init = 0;
#if CONFIG_SMALL
#define CRC_TABLE_SIZE 257
#else
#define CRC_TABLE_SIZE 1024
#endif
static AVCRC crc_24[CRC_TABLE_SIZE];
av_cold void ff_tak_init_crc(void)
{
if (!crc_init) {
av_crc_init(crc_24, 0, 24, 0x864CFBU, sizeof(crc_24));
crc_init = 1;
}
}
int ff_tak_check_crc(const uint8_t *buf, unsigned int buf_size)
{
uint32_t crc, CRC;
@ -97,7 +81,7 @@ int ff_tak_check_crc(const uint8_t *buf, unsigned int buf_size)
buf_size -= 3;
CRC = AV_RB24(buf + buf_size);
crc = av_crc(crc_24, 0xCE04B7U, buf, buf_size);
crc = av_crc(av_crc_get_table(AV_CRC_24_IEEE), 0xCE04B7U, buf, buf_size);
if (CRC != crc)
return AVERROR_INVALIDDATA;

View File

@ -140,8 +140,6 @@ typedef struct TAKStreamInfo {
int64_t samples;
} TAKStreamInfo;
void ff_tak_init_crc(void);
int ff_tak_check_crc(const uint8_t *buf, unsigned int buf_size);
/**

View File

@ -33,12 +33,6 @@ typedef struct TAKParseContext {
int index;
} TAKParseContext;
static av_cold int tak_init(AVCodecParserContext *s)
{
ff_tak_init_crc();
return 0;
}
static int tak_parse(AVCodecParserContext *s, AVCodecContext *avctx,
const uint8_t **poutbuf, int *poutbuf_size,
const uint8_t *buf, int buf_size)
@ -123,7 +117,6 @@ found:
AVCodecParser ff_tak_parser = {
.codec_ids = { AV_CODEC_ID_TAK },
.priv_data_size = sizeof(TAKParseContext),
.parser_init = tak_init,
.parser_parse = tak_parse,
.parser_close = ff_parse_close,
};

View File

@ -171,7 +171,6 @@ static av_cold int tak_decode_init(AVCodecContext *avctx)
{
TAKDecContext *s = avctx->priv_data;
ff_tak_init_crc();
ff_dsputil_init(&s->dsp, avctx);
s->avctx = avctx;