diff options
author | Clément Bœsch <ubitux@gmail.com> | 2011-01-21 23:55:31 +0100 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2011-01-23 19:32:07 +0100 |
commit | 204a18151c7c6deb65fcdce5273f23813df3dc83 (patch) | |
tree | f893acc068e9990010efeef8acd8539e02effdad | |
parent | 05238927b79c00c972c968599d8cfddb676e935d (diff) | |
download | ffmpeg-204a18151c7c6deb65fcdce5273f23813df3dc83.tar.gz |
Move ID3v1 skip from decoder to demuxer
Signed-off-by: Janne Grunau <janne-ffmpeg@jannau.net>
(cherry picked from commit 045b80e52df7ba9c97084c946b4929000d5f5bc7)
-rw-r--r-- | libavcodec/mpegaudiodec.c | 8 | ||||
-rw-r--r-- | libavformat/mp3dec.c | 5 |
2 files changed, 5 insertions, 8 deletions
diff --git a/libavcodec/mpegaudiodec.c b/libavcodec/mpegaudiodec.c index 76fdffbafe..769be89913 100644 --- a/libavcodec/mpegaudiodec.c +++ b/libavcodec/mpegaudiodec.c @@ -27,7 +27,6 @@ #include "avcodec.h" #include "get_bits.h" #include "dsputil.h" -#include "libavformat/id3v1.h" /* * TODO: @@ -2044,13 +2043,6 @@ 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; } diff --git a/libavformat/mp3dec.c b/libavformat/mp3dec.c index ab6aabe0b5..c06969b058 100644 --- a/libavformat/mp3dec.c +++ b/libavformat/mp3dec.c @@ -174,6 +174,11 @@ static int mp3_read_packet(AVFormatContext *s, AVPacket *pkt) if (ret <= 0) { return AVERROR(EIO); } + + if (ret > ID3v1_TAG_SIZE && + memcmp(&pkt->data[ret - ID3v1_TAG_SIZE], "TAG", 3) == 0) + ret -= ID3v1_TAG_SIZE; + /* note: we need to modify the packet size here to handle the last packet */ pkt->size = ret; |