diff options
author | Sascha Sommer <saschasommer@freenet.de> | 2011-02-06 13:54:03 +0100 |
---|---|---|
committer | Ronald S. Bultje <rsbultje@gmail.com> | 2011-02-06 16:05:55 -0500 |
commit | ed19fafd486d6ab0d6e1eba80ceaa482a740c556 (patch) | |
tree | b6a3b9361bdb0f94869a88a399c665afd1c8a85e /libavformat | |
parent | 48545a8f724247853c5b1d4e0a24e3ea3ee06515 (diff) | |
download | ffmpeg-ed19fafd486d6ab0d6e1eba80ceaa482a740c556.tar.gz |
pass QDMC extradata to the decoder
Makes playing QDMC files in MPlayer work when using the libavformat demuxer.
Problem was that the extradata was not passed from demuxer to decoder.
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
Diffstat (limited to 'libavformat')
-rw-r--r-- | libavformat/isom.c | 1 | ||||
-rw-r--r-- | libavformat/mov.c | 4 |
2 files changed, 3 insertions, 2 deletions
diff --git a/libavformat/isom.c b/libavformat/isom.c index 89b352c75d..88d68258b8 100644 --- a/libavformat/isom.c +++ b/libavformat/isom.c @@ -249,6 +249,7 @@ const AVCodecTag codec_movaudio_tags[] = { { CODEC_ID_QCELP, MKTAG('Q','c','l','q') }, { CODEC_ID_QCELP, MKTAG('s','q','c','p') }, /* ISO Media fourcc */ + { CODEC_ID_QDMC, MKTAG('Q', 'D', 'M', 'C') }, /* QDMC */ { CODEC_ID_QDM2, MKTAG('Q', 'D', 'M', '2') }, /* QDM2 */ { CODEC_ID_DVAUDIO, MKTAG('v', 'd', 'v', 'a') }, diff --git a/libavformat/mov.c b/libavformat/mov.c index a48000fe52..310a399d83 100644 --- a/libavformat/mov.c +++ b/libavformat/mov.c @@ -769,8 +769,8 @@ static int mov_read_wave(MOVContext *c, ByteIOContext *pb, MOVAtom atom) if((uint64_t)atom.size > (1<<30)) return -1; - if (st->codec->codec_id == CODEC_ID_QDM2) { - // pass all frma atom to codec, needed at least for QDM2 + if (st->codec->codec_id == CODEC_ID_QDM2 || st->codec->codec_id == CODEC_ID_QDMC) { + // pass all frma atom to codec, needed at least for QDMC and QDM2 av_free(st->codec->extradata); st->codec->extradata = av_mallocz(atom.size + FF_INPUT_BUFFER_PADDING_SIZE); if (!st->codec->extradata) |