From ca9e4727baf0458d4dd7038987e060c6415eca09 Mon Sep 17 00:00:00 2001 From: Justin Ruggles Date: Sun, 20 Nov 2011 12:57:21 -0500 Subject: adx: fix the data offset parsing in adx_decode_header() first 2 bytes are 0x80, 0x00. offset is only 16-bit. this is according to format descriptions on multimedia wiki and wikipedia. --- libavcodec/adxdec.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'libavcodec/adxdec.c') diff --git a/libavcodec/adxdec.c b/libavcodec/adxdec.c index 1801c47ac8..c5a30b2b4e 100644 --- a/libavcodec/adxdec.c +++ b/libavcodec/adxdec.c @@ -90,9 +90,9 @@ static int adx_decode_header(AVCodecContext *avctx, const uint8_t *buf, ADXContext *c = avctx->priv_data; int offset; - if (buf[0] != 0x80) + if (AV_RB16(buf) != 0x8000) return AVERROR_INVALIDDATA; - offset = (AV_RB32(buf) ^ 0x80000000) + 4; + offset = AV_RB16(buf + 2) + 4; if (bufsize < offset || memcmp(buf + offset - 6, "(c)CRI", 6)) return AVERROR_INVALIDDATA; -- cgit v1.2.3