]> git.sesse.net Git - ffmpeg/blobdiff - libavformat/adxdec.c
Ignore xing number of frames if the file is larger than indicated.
[ffmpeg] / libavformat / adxdec.c
index fe22c3ae697bb92a2306193c3c9e172ce426b53a..ddaa2011790887f593a2b49061e2f58d8d21f5bd 100644 (file)
@@ -24,7 +24,6 @@
  */
 
 #include "libavutil/intreadwrite.h"
-#include "libavcodec/adx.h"
 #include "avformat.h"
 #include "internal.h"
 
@@ -66,7 +65,6 @@ static int adx_read_header(AVFormatContext *s)
 {
     ADXDemuxerContext *c = s->priv_data;
     AVCodecContext *avctx;
-    int ret;
 
     AVStream *st = avformat_new_stream(s, NULL);
     if (!st)
@@ -81,11 +79,11 @@ static int adx_read_header(AVFormatContext *s)
     if (ff_get_extradata(avctx, s->pb, c->header_size) < 0)
         return AVERROR(ENOMEM);
 
-    ret = avpriv_adx_decode_header(avctx, avctx->extradata,
-                                   avctx->extradata_size, &c->header_size,
-                                   NULL);
-    if (ret)
-        return ret;
+    if (avctx->extradata_size < 12) {
+        av_log(s, AV_LOG_ERROR, "Invalid extradata size.\n");
+        return AVERROR_INVALIDDATA;
+    }
+    avctx->sample_rate = AV_RB32(avctx->extradata + 8);
 
     st->codec->codec_type  = AVMEDIA_TYPE_AUDIO;
     st->codec->codec_id    = s->iformat->raw_codec_id;