tak: use crc table from lavu
Signed-off-by: Paul B Mahol <onemda@gmail.com>
This commit is contained in:
parent
410192e369
commit
8491f40500
@ -72,22 +72,6 @@ static int tak_get_nb_samples(int sample_rate, enum TAKFrameSizeType type)
|
|||||||
return nb_samples;
|
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)
|
int ff_tak_check_crc(const uint8_t *buf, unsigned int buf_size)
|
||||||
{
|
{
|
||||||
uint32_t crc, CRC;
|
uint32_t crc, CRC;
|
||||||
@ -97,7 +81,7 @@ int ff_tak_check_crc(const uint8_t *buf, unsigned int buf_size)
|
|||||||
buf_size -= 3;
|
buf_size -= 3;
|
||||||
|
|
||||||
CRC = AV_RB24(buf + buf_size);
|
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)
|
if (CRC != crc)
|
||||||
return AVERROR_INVALIDDATA;
|
return AVERROR_INVALIDDATA;
|
||||||
|
|
||||||
|
@ -140,8 +140,6 @@ typedef struct TAKStreamInfo {
|
|||||||
int64_t samples;
|
int64_t samples;
|
||||||
} TAKStreamInfo;
|
} TAKStreamInfo;
|
||||||
|
|
||||||
void ff_tak_init_crc(void);
|
|
||||||
|
|
||||||
int ff_tak_check_crc(const uint8_t *buf, unsigned int buf_size);
|
int ff_tak_check_crc(const uint8_t *buf, unsigned int buf_size);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -33,12 +33,6 @@ typedef struct TAKParseContext {
|
|||||||
int index;
|
int index;
|
||||||
} TAKParseContext;
|
} TAKParseContext;
|
||||||
|
|
||||||
static av_cold int tak_init(AVCodecParserContext *s)
|
|
||||||
{
|
|
||||||
ff_tak_init_crc();
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int tak_parse(AVCodecParserContext *s, AVCodecContext *avctx,
|
static int tak_parse(AVCodecParserContext *s, AVCodecContext *avctx,
|
||||||
const uint8_t **poutbuf, int *poutbuf_size,
|
const uint8_t **poutbuf, int *poutbuf_size,
|
||||||
const uint8_t *buf, int buf_size)
|
const uint8_t *buf, int buf_size)
|
||||||
@ -123,7 +117,6 @@ found:
|
|||||||
AVCodecParser ff_tak_parser = {
|
AVCodecParser ff_tak_parser = {
|
||||||
.codec_ids = { AV_CODEC_ID_TAK },
|
.codec_ids = { AV_CODEC_ID_TAK },
|
||||||
.priv_data_size = sizeof(TAKParseContext),
|
.priv_data_size = sizeof(TAKParseContext),
|
||||||
.parser_init = tak_init,
|
|
||||||
.parser_parse = tak_parse,
|
.parser_parse = tak_parse,
|
||||||
.parser_close = ff_parse_close,
|
.parser_close = ff_parse_close,
|
||||||
};
|
};
|
||||||
|
@ -171,7 +171,6 @@ static av_cold int tak_decode_init(AVCodecContext *avctx)
|
|||||||
{
|
{
|
||||||
TAKDecContext *s = avctx->priv_data;
|
TAKDecContext *s = avctx->priv_data;
|
||||||
|
|
||||||
ff_tak_init_crc();
|
|
||||||
ff_dsputil_init(&s->dsp, avctx);
|
ff_dsputil_init(&s->dsp, avctx);
|
||||||
|
|
||||||
s->avctx = avctx;
|
s->avctx = avctx;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user