ID3Skip patch for VS1010d

Designing hardware and software for systems that use the VS1010 MP3 Audio DSP Microcontroller.
Post Reply
User avatar
Henrik
VLSI Staff
Posts: 1209
Joined: Tue 2010-06-22 14:10

ID3Skip patch for VS1010d

Post by Henrik »

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
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.
User avatar
Henrik
VLSI Staff
Posts: 1209
Joined: Tue 2010-06-22 14:10

Re: ID3Skip patch for VS1010d

Post by Henrik »

Here is an ever-so-slightly smaller version of the ID3 Skip patch.

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.
AAT
User
Posts: 8
Joined: Fri 2021-01-08 18:07

Re: ID3Skip patch for VS1010d

Post by AAT »

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?
User avatar
Henrik
VLSI Staff
Posts: 1209
Joined: Tue 2010-06-22 14:10

Re: ID3Skip patch for VS1010d

Post by Henrik »

AAT wrote: Fri 2021-03-12 10:14 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?
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.
Do you have any information on the MP3 files you have used for testing?
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.

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.
Post Reply