diff --git a/libavcodec/mpegaudio_parser.c b/libavcodec/mpegaudio_parser.c index 58098d89f0..7849fed649 100644 --- a/libavcodec/mpegaudio_parser.c +++ b/libavcodec/mpegaudio_parser.c @@ -23,7 +23,7 @@ #include "parser.h" #include "mpegaudiodecheader.h" #include "libavutil/common.h" - +#include "libavformat/id3v1.h" // for ID3v1_TAG_SIZE typedef struct MpegAudioParseContext { ParseContext pc; @@ -49,6 +49,7 @@ static int mpegaudio_parse(AVCodecParserContext *s1, uint32_t state= pc->state; int i; int next= END_NOT_FOUND; + int flush = !buf_size; for(i=0; iframe_size){ @@ -113,6 +114,12 @@ static int mpegaudio_parse(AVCodecParserContext *s1, return buf_size; } + if (flush && buf_size >= ID3v1_TAG_SIZE && memcmp(buf, "TAG", 3) == 0) { + *poutbuf = NULL; + *poutbuf_size = 0; + return next; + } + *poutbuf = buf; *poutbuf_size = buf_size; return next; diff --git a/libavcodec/version.h b/libavcodec/version.h index 3f55d0f8d1..c2717557b3 100644 --- a/libavcodec/version.h +++ b/libavcodec/version.h @@ -30,7 +30,7 @@ #define LIBAVCODEC_VERSION_MAJOR 56 #define LIBAVCODEC_VERSION_MINOR 44 -#define LIBAVCODEC_VERSION_MICRO 100 +#define LIBAVCODEC_VERSION_MICRO 101 #define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \ LIBAVCODEC_VERSION_MINOR, \ diff --git a/tests/ref/fate/gapless-mp3 b/tests/ref/fate/gapless-mp3 index e6a7a3387b..2ce4b8cc0b 100644 --- a/tests/ref/fate/gapless-mp3 +++ b/tests/ref/fate/gapless-mp3 @@ -2,4 +2,4 @@ d5c88cf38416329a052a9b0cb140fb4c *tests/data/fate/gapless-mp3.out-1 c96c3ae7bd3300fd2f4debac222de5b7 3386bc2009b31b7ef39247918cbb02a5 *tests/data/fate/gapless-mp3.out-2 c96c3ae7bd3300fd2f4debac222de5b7 -92e37f050ad4fc817730c8af17ee6d1b *tests/data/fate/gapless-mp3.out-3 +3ce35ec2a9a59b7459ecd6c98d8fa123 *tests/data/fate/gapless-mp3.out-3