libavformat/iff: print error message when DSDIFF compression type is not supported
authorPeter Ross <pross@xvid.org>
Fri, 26 Sep 2014 05:44:46 +0000 (15:44 +1000)
committerMichael Niedermayer <michaelni@gmx.at>
Fri, 26 Sep 2014 10:51:40 +0000 (12:51 +0200)
Signed-off-by: Peter Ross <pross@xvid.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
libavformat/iff.c

index 8e20303..e7c240c 100644 (file)
@@ -285,7 +285,13 @@ static int parse_dsd_prop(AVFormatContext *s, AVStream *st, uint64_t eof)
         case MKTAG('C','M','P','R'):
             if (size < 4)
                 return AVERROR_INVALIDDATA;
-            st->codec->codec_id = ff_codec_get_id(dsd_codec_tags, avio_rl32(pb));
+            tag = avio_rl32(pb);
+            st->codec->codec_id = ff_codec_get_id(dsd_codec_tags, tag);
+            if (!st->codec->codec_id) {
+                av_log(s, AV_LOG_ERROR, "'%c%c%c%c' compression is not supported\n",
+                    tag&0xFF, (tag>>8)&0xFF, (tag>>16)&0xFF, (tag>>24)&0xFF);
+                return AVERROR_PATCHWELCOME;
+            }
             break;
 
         case MKTAG('F','S',' ',' '):