Hi!
Attached patch fixes ticket #4747 for me, I don't know how to
detect that the wave atom contains no frma / alac atom...
Please comment, Carl Eugen
diff --git a/libavformat/mov.c b/libavformat/mov.c
index fdba34c..dd48957 100644
--- a/libavformat/mov.c
+++ b/libavformat/mov.c
@@ -1434,6 +1434,17 @@ static int mov_read_wave(MOVContext *c, AVIOContext *pb, MOVAtom atom)
ret = ff_get_extradata(st->codec, pb, atom.size);
if (ret < 0)
return ret;
+ } else if ( st->codec->codec_id == AV_CODEC_ID_ALAC
+ && atom.size >= 256
+ && !st->codec->extradata_size) {
+#define ALAC_EXTRADATA_SIZE 36
+ st->codec->extradata = av_mallocz(ALAC_EXTRADATA_SIZE + AV_INPUT_BUFFER_PADDING_SIZE);
+ if (!st->codec->extradata)
+ return AVERROR(ENOMEM);
+ st->codec->extradata_size = ALAC_EXTRADATA_SIZE;
+ AV_WB32(st->codec->extradata, ALAC_EXTRADATA_SIZE);
+ AV_WB32(st->codec->extradata + 4, MKTAG('a','l','a','c'));
+ avio_read(pb, st->codec->extradata + 12, 24);
} else if (atom.size > 8) { /* to read frma, esds atoms */
if ((ret = mov_read_default(c, pb, atom)) < 0)
return ret;
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel