diff --git a/libavcodec/mpegaudiodec.c b/libavcodec/mpegaudiodec.c index 769be89913..76fdffbafe 100644 --- a/libavcodec/mpegaudiodec.c +++ b/libavcodec/mpegaudiodec.c @@ -27,6 +27,7 @@ #include "avcodec.h" #include "get_bits.h" #include "dsputil.h" +#include "libavformat/id3v1.h" /* * TODO: @@ -2043,6 +2044,13 @@ static int decode_frame(AVCodecContext * avctx, header = AV_RB32(buf); if(ff_mpa_check_header(header) < 0){ + + if (buf_size == ID3v1_TAG_SIZE + && buf[0] == 'T' && buf[1] == 'A' && buf[2] == 'G') { + *data_size = 0; + return ID3v1_TAG_SIZE; + } + av_log(avctx, AV_LOG_ERROR, "Header missing\n"); return -1; }