diff --git a/libavformat/mtv.c b/libavformat/mtv.c index 42aa91f7b3..ef07e4a3b0 100644 --- a/libavformat/mtv.c +++ b/libavformat/mtv.c @@ -25,6 +25,7 @@ */ #include "libavutil/bswap.h" +#include "libavutil/intreadwrite.h" #include "avformat.h" #define MTV_ASUBCHUNK_DATA_SIZE 500 @@ -56,6 +57,10 @@ static int mtv_probe(AVProbeData *p) if(*(p->buf) != 'A' || *(p->buf+1) != 'M' || *(p->buf+2) != 'V') return 0; + /* Check for nonzero in bpp and (width|height) header fields */ + if(!(p->buf[51] && AV_RL16(&p->buf[52]) | AV_RL16(&p->buf[54]))) + return 0; + return AVPROBE_SCORE_MAX; }