From b69b862d5d47f3c17cee1dbbbe4743d51bbc9d3c Mon Sep 17 00:00:00 2001 From: Thibaut Mattern Date: Sat, 16 Feb 2008 00:12:08 +0100 Subject: Take in account the size of the extended header. --HG-- extra : transplant_source : %C0%D71D1%8CQ%889P%21%20%D7%F7%B5%F2T%FE%88%FA --- src/demuxers/id3.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/demuxers/id3.c b/src/demuxers/id3.c index cd72646ef..85b42efa8 100644 --- a/src/demuxers/id3.c +++ b/src/demuxers/id3.c @@ -559,6 +559,7 @@ int id3v23_parse_tag(input_plugin_t *input, if (!id3v23_parse_frame_ext_header(input, &tag_frame_ext_header)) { return 0; } + pos += tag_frame_ext_header.size; } /* frame parsing */ while ((pos + ID3V23_FRAME_HEADER_SIZE) <= tag_header.size) { @@ -579,7 +580,8 @@ int id3v23_parse_tag(input_plugin_t *input, pos += tag_frame_header.size; } else { /* end of frames, the rest is padding */ - input->seek (input, tag_header.size - pos, SEEK_CUR); + lprintf("skipping padding %d bytes\n", tag_header.size - pos); + input->seek (input, tag_header.size - pos, SEEK_CUR); return 1; } } else { @@ -809,6 +811,7 @@ int id3v24_parse_tag(input_plugin_t *input, if (!id3v24_parse_ext_header(input, &tag_frame_ext_header)) { return 0; } + pos += tag_frame_ext_header.size; } /* frame parsing */ while ((pos + ID3V24_FRAME_HEADER_SIZE) <= tag_header.size) { -- cgit v1.2.3