diff options
author | Thibaut Mattern <thibaut.mattern@gmail.com> | 2008-02-16 00:12:08 +0100 |
---|---|---|
committer | Thibaut Mattern <thibaut.mattern@gmail.com> | 2008-02-16 00:12:08 +0100 |
commit | b69b862d5d47f3c17cee1dbbbe4743d51bbc9d3c (patch) | |
tree | 6bb50f34f4613bfc5d8f96c51cdadc57d12f55c3 | |
parent | ac63f46f26fa2bc9a0be9feacae52d55249685be (diff) | |
download | xine-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.c | 5 |
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) { |