[FFmpeg-cvslog] adx: fix the data offset parsing in adx_decode_header()

Justin Ruggles git at videolan.org
Sun Nov 27 00:39:14 CET 2011


ffmpeg | branch: master | Justin Ruggles <justin.ruggles at gmail.com> | Sun Nov 20 12:57:21 2011 -0500| [ca9e4727baf0458d4dd7038987e060c6415eca09] | committer: Justin Ruggles

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.

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

 libavcodec/adxdec.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/libavcodec/adxdec.c b/libavcodec/adxdec.c
index 1801c47..c5a30b2 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;
 



More information about the ffmpeg-cvslog mailing list