]> git.sesse.net Git - ffmpeg/commitdiff
pass QDMC extradata to the decoder
authorSascha Sommer <saschasommer@freenet.de>
Sun, 6 Feb 2011 12:54:03 +0000 (13:54 +0100)
committerRonald S. Bultje <rsbultje@gmail.com>
Sun, 6 Feb 2011 21:05:55 +0000 (16:05 -0500)
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>
libavcodec/avcodec.h
libavformat/isom.c
libavformat/mov.c

index dbfb77795dffaae63f2aca6270297b3f0bce2db0..fc29bbadb60bbd97159aa5a92f34b1df86e4777f 100644 (file)
@@ -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,
index 89b352c75dbf06ba2d28971ff2d0256a8b9dbdf4..88d68258b8e58be5cc0c2c0f430de25599eb85ae 100644 (file)
@@ -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') },
index a48000fe52c08fb9aebca82a86347130b03b9ded..310a399d8304ec996e95be29d78268d0b1de40f6 100644 (file)
@@ -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)