lavf: Do not list mov-only codecs in riff.c.
authorCarl Eugen Hoyos <cehoyos@ag.or.at>
Fri, 13 Mar 2015 07:49:03 +0000 (08:49 +0100)
committerCarl Eugen Hoyos <cehoyos@ag.or.at>
Fri, 13 Mar 2015 07:49:03 +0000 (08:49 +0100)
Instead check for all mov code-points when demuxing avi
and print a warning if a video codec is found like this.
Fixes a regression similar to the one described in ticket #4307.

libavformat/avidec.c
libavformat/riff.c

index 5c9443a..00f0037 100644 (file)
@@ -36,6 +36,7 @@
 #include "riff.h"
 #include "libavcodec/bytestream.h"
 #include "libavcodec/exif.h"
+#include "libavformat/isom.h"
 
 typedef struct AVIStream {
     int64_t frame_offset;   /* current frame (video) or byte (audio) counter
@@ -773,6 +774,12 @@ static int avi_read_header(AVFormatContext *s)
                     st->codec->codec_tag  = tag1;
                     st->codec->codec_id   = ff_codec_get_id(ff_codec_bmp_tags,
                                                             tag1);
+                    if (!st->codec->codec_id) {
+                        st->codec->codec_id = ff_codec_get_id(ff_codec_movvideo_tags,
+                                                              tag1);
+                        if (st->codec->codec_id)
+                           av_log(s, AV_LOG_WARNING, "mov tag found in avi\n");
+                    }
                     /* This is needed to get the pict type which is necessary
                      * for generating correct pts. */
                     st->need_parsing = AVSTREAM_PARSE_HEADERS;
index 399523c..696b06b 100644 (file)
@@ -362,9 +362,6 @@ const AVCodecTag ff_codec_bmp_tags[] = {
     { AV_CODEC_ID_G2M,          MKTAG('G', '2', 'M', '4') },
     { AV_CODEC_ID_G2M,          MKTAG('G', '2', 'M', '5') },
     { AV_CODEC_ID_FIC,          MKTAG('F', 'I', 'C', 'V') },
-    { AV_CODEC_ID_PRORES,       MKTAG('A', 'P', 'C', 'N') },
-    { AV_CODEC_ID_PRORES,       MKTAG('A', 'P', 'C', 'H') },
-    { AV_CODEC_ID_QTRLE,        MKTAG('r', 'l', 'e', ' ') },
     { AV_CODEC_ID_HQX,          MKTAG('C', 'H', 'Q', 'X') },
     { AV_CODEC_ID_NONE,         0 }
 };