Hello!
Attached to this message is a solution called ID3Skip that, when loaded, gives VS1010 the capability of automatically skipping ID3v2 headers in files. This makes MP3 files with "problematic" ID3v2 headers playable. The code has been written with size in mind: it may not be beautiful to read, but its size is less than 100 instruction words.
For more details, have a look at the README.TXT file in the solution.
Kind regards,
- Henrik
ID3Skip patch for VS1010d
ID3Skip patch for VS1010d
- Attachments
-
- ID3Skip.dlx
- ID3 skip driver for MP3 playback, VSOS/VS1010 DLX executable. Run once at startup.
- (896 Bytes) Downloaded 14 times
-
- ID3Skip.zip
- ID3Skip is a driver that gives VS1010d capability of skipping ID3V2 headers, making the player compatible with more MP3 files.
- (23.12 KiB) Downloaded 16 times
Good signatures never die. They just fade away.
Re: ID3Skip patch for VS1010d
Here is an ever-so-slightly smaller version of the ID3 Skip patch.
Kind regards,
- Henrik
Kind regards,
- Henrik
- Attachments
-
- ID3Skip.dlx
- ID3 skip driver for MP3 playback, VSOS/VS1010 DLX executable. Run once at startup.
- (876 Bytes) Downloaded 12 times
-
- ID3Skip_v101.zip
- ID3Skip is a driver that gives VS1010d capability of skipping ID3V2 headers, making the player compatible with more MP3 files.
- (22.4 KiB) Downloaded 13 times
Good signatures never die. They just fade away.
Re: ID3Skip patch for VS1010d
Similar to the question asked in the other ID3 thread -- are there limits on the capability of this ID3 patch to skip over ID3 tags?
Do you have any information on the MP3 files you have used for testing?
Do you have any information on the MP3 files you have used for testing?
Re: ID3Skip patch for VS1010d
Let's clarify one thing a bit: the patch doesn't skip ID3 tags. There is no need to skip tags. They only occur after the proper MP3 data has already been successfully decoded, so no issue there. The patch skips ID3 headers.
(Actually, adding some random-looking data in front of the actual MP3 data technically makes such a file to not be an MP3 file at all. Such a file doesn't contain a proper MP3 header at, or potentially even near, the beginning of the file. Instead, it contains an ID3v2 header which guarantees nothing of the format of the rest of the file. Such a file is not an MP3 file. Changing the format from the earlier ID3v1 tags to the current ID3v2 headers was, in my opinion, extremely short-sighted from an audio streaming point of view. But I digress.)
There is no specific upper limit to how large an ID3v2 header this patch can skip. In all simplicity, the patch recognizes the ID3v2 header, then looks for its size, which is a 28-bit number (so ID2V2 headers have a theoretical upper size limit of 256 MiB), then seeks past it, and starts the normal decoding process.
I am not aware of any other headers that people would put ahead of MP3 file data. As mentioned earlier, tags (i.e. things that are put after MP3 file data) are not an issue, exactly because they are tags: they are encountered only after (successfully) decoding all valid MP3 data.
Not really. I tested with an assortment of MP3 files with ID3v2 headers that I have lying around, and it was successful with all of them. Also, I see no reason why the code would fail - except perhaps with broken files, of course. If you look at the source code, you'll see that the skipping process is exceedingly simple.Do you have any information on the MP3 files you have used for testing?
Of course, if someone can find files that somehow manage to circumvent the skipper, i'd be happy to have a look at them and add them to my test collection.
Kind regards,
- Henrik
Good signatures never die. They just fade away.