From 204a18151c7c6deb65fcdce5273f23813df3dc83 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20B=C5=93sch?= Date: Fri, 21 Jan 2011 23:55:31 +0100 Subject: [PATCH] Move ID3v1 skip from decoder to demuxer Signed-off-by: Janne Grunau (cherry picked from commit 045b80e52df7ba9c97084c946b4929000d5f5bc7) --- libavcodec/mpegaudiodec.c | 8 -------- 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;