summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThibaut Mattern <thibaut.mattern@gmail.com>2008-02-16 00:12:08 +0100
committerThibaut Mattern <thibaut.mattern@gmail.com>2008-02-16 00:12:08 +0100
commitb69b862d5d47f3c17cee1dbbbe4743d51bbc9d3c (patch)
tree6bb50f34f4613bfc5d8f96c51cdadc57d12f55c3
parentac63f46f26fa2bc9a0be9feacae52d55249685be (diff)
downloadxine-lib-b69b862d5d47f3c17cee1dbbbe4743d51bbc9d3c.tar.gz
xine-lib-b69b862d5d47f3c17cee1dbbbe4743d51bbc9d3c.tar.bz2
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
-rw-r--r--src/demuxers/id3.c5
1 files changed, 4 insertions, 1 deletions
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) {