diff options
author | Justin Ruggles <justin.ruggles@gmail.com> | 2011-11-20 17:07:59 -0500 |
---|---|---|
committer | Justin Ruggles <justin.ruggles@gmail.com> | 2011-11-26 16:25:07 -0500 |
commit | d1745619dbd794aaf0e7aa51d14af5f99869ec93 (patch) | |
tree | b308a654e21d54d68db2076b0dec1919f4ccf8f4 | |
parent | 994238536a8ec8b970a16d153bee72c96ede0cc3 (diff) | |
download | ffmpeg-d1745619dbd794aaf0e7aa51d14af5f99869ec93.tar.gz |
adx: check for unsupported ADX formats
-rw-r--r-- | libavcodec/adxdec.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/libavcodec/adxdec.c b/libavcodec/adxdec.c index f9f17cde95..ee1f1b01f7 100644 --- a/libavcodec/adxdec.c +++ b/libavcodec/adxdec.c @@ -89,6 +89,12 @@ static int adx_decode_header(AVCodecContext *avctx, const uint8_t *buf, if (bufsize < offset || memcmp(buf + offset - 6, "(c)CRI", 6)) return AVERROR_INVALIDDATA; + /* check for encoding=3 block_size=18, sample_size=4 */ + if (buf[4] != 3 || buf[5] != 18 || buf[6] != 4) { + av_log_ask_for_sample(avctx, "unsupported ADX format\n"); + return AVERROR_PATCHWELCOME; + } + c->channels = avctx->channels = buf[7]; if (avctx->channels > 2) return AVERROR_INVALIDDATA; |