diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h index f96ae84740..aa5fa0a9ef 100644 --- a/libavcodec/avcodec.h +++ b/libavcodec/avcodec.h @@ -389,6 +389,7 @@ enum CodecID { CODEC_ID_BINKAUDIO_RDFT, CODEC_ID_BINKAUDIO_DCT, CODEC_ID_AAC_LATM, + CODEC_ID_QDMC, /* subtitle codecs */ CODEC_ID_DVD_SUBTITLE= 0x17000, 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)