From yegong1985 at gmail.com Sun Nov 5 08:27:03 2006 From: yegong1985 at gmail.com (=?UTF-8?B?5aSc5byT?=) Date: Mon, 6 Nov 2006 00:27:03 +0800 Subject: [ID3 Dev] Confusing problem about ID3v2.Could it located at the end of file? In-Reply-To: <56111dc30611050824k7d9ba8a8y250d909876abfaaa@mail.gmail.com> References: <56111dc30611050824k7d9ba8a8y250d909876abfaaa@mail.gmail.com> Message-ID: <56111dc30611050827t439b0560hb3c13fb5969df0c3@mail.gmail.com> I am interested in ID3v2 Tag in mp3 files.But when I deal with a project about the IDtag, I have some difficult. I found that in all of my MP3 audio , the tag's is located at the beginning of the file. When i move it to the end of the file, the players(foobar 2000, winamp and windows media player) told the file has no tag. I don't know what cause this problem. If someone is interested in the problem, please contact me. mailto:yegong1985 at gmail.com -- Greetings -- --- By ??(Yegong) From arora at pv.com Sun Nov 5 19:17:52 2006 From: arora at pv.com (Gaurav Arora) Date: Sun, 5 Nov 2006 19:17:52 -0800 Subject: [ID3 Dev] Confusing problem about ID3v2.Could it located at the end of file? Message-ID: As per my knowledge Id3v2.4 has a footer (which is optional) which resides at the end of the file. But the footer can be present only when the header tag is there, without ID3v2.4 tag footer will not be appended to the file. Thanks Gaurav -----Original Message----- From: Kipp Gremillion [mailto:kipp at gremillion.org] Sent: Sunday, November 05, 2006 10:15 PM To: id3v2 at id3.org Subject: RE: [ID3 Dev] Confusing problem about ID3v2.Could it located at the end of file? As far as I understand it, ID3v2 is required to be at the beginning of the file. Never at the end. Only ID3v1 resides at the end and ID3v1 should never be at the beginning. -----Original Message----- From: ?? [mailto:yegong1985 at gmail.com] Sent: Sunday, November 05, 2006 10:27 AM To: id3v2 at id3.org Subject: [ID3 Dev] Confusing problem about ID3v2.Could it located at the end of file? I am interested in ID3v2 Tag in mp3 files.But when I deal with a project about the IDtag, I have some difficult. I found that in all of my MP3 audio , the tag's is located at the beginning of the file. When i move it to the end of the file, the players(foobar 2000, winamp and windows media player) told the file has no tag. I don't know what cause this problem. If someone is interested in the problem, please contact me. mailto:yegong1985 at gmail.com -- Greetings -- --- By ??(Yegong) --------------------------------------------------------------------- To unsubscribe, e-mail: id3v2-unsubscribe at id3.org For additional commands, e-mail: id3v2-help at id3.org --------------------------------------------------------------------- To unsubscribe, e-mail: id3v2-unsubscribe at id3.org For additional commands, e-mail: id3v2-help at id3.org From chris.newell at rd.bbc.co.uk Tue Nov 7 02:39:31 2006 From: chris.newell at rd.bbc.co.uk (Chris Newell) Date: Tue, 07 Nov 2006 10:39:31 +0000 Subject: [ID3 Dev] Moving forward on the Accessibility Addendum Message-ID: <6.2.0.14.2.20061107101949.027fdca8@pop3> Colleagues, The third draft of the Accessibility Addendum (http://www.id3.org/id3v2-accessibility-1.0-draft3.html) was released on the reflector six weeks ago and I haven't had any further feedback. I'd like to finalise and publish the document in the near future so if you have any final comments can you let me know by the end of this week. I should be able to provide a basic authoring tool soon afterwards for anyone interested in experimentation. Best regards, Chris ____________________________________________ Chris Newell Lead Technologist BBC New Media & Technology -------------- next part -------------- An HTML attachment was scrubbed... URL: From thomas.prog at mevtho.com Thu Nov 2 09:11:55 2006 From: thomas.prog at mevtho.com (Thomas MEVEL) Date: Thu, 02 Nov 2006 18:11:55 +0100 Subject: [ID3 Dev] java library Message-ID: <454A26DB.9040800@mevtho.com> Hi, I found some java libraries dealing with ID3 tags. I would like to know which one I should use as I am willing to do edit and display tags value. Or at least I would like to know what I should take care of to choose. Thanks for your answers Thomas --------------------------------------------------------------------- To unsubscribe, e-mail: id3v2-unsubscribe at id3.org For additional commands, e-mail: id3v2-help at id3.org From jmartin92 at comcast.net Mon Nov 6 14:14:35 2006 From: jmartin92 at comcast.net (Jim) Date: Mon, 6 Nov 2006 17:14:35 -0500 Subject: [ID3 Dev] Finding the end of an ID3 Header References: Message-ID: <30c401c701f1$0ae6ea40$6501a8c0@xp1800desk> Your calculation of the indicated size of the ID3v2 tag seems correct to me. However, it's pretty hard to guess at what might be going on without having more of the file (or at least the beginning of the "real" mp3 file) to examine. It could be a tag header doesn't give the correct size of the tag. Or there could be a problem with the mp3 file. I would guess that most mp3 players (at least the good ones) do use some kind of search for the frame sync. Jim Martin ----- Original Message ----- From: Robert Sewell To: id3v2 at id3.org Sent: Monday, November 06, 2006 4:58 PM Subject: [ID3 Dev] Finding the end of an ID3 Header Hello, I have a need to verify that mp3 files uploaded by our users comply with certain minimum specs (bit and sample rates, etc.). To get to the mp3 headers, I first have to check for an ID3 tag, and if found, use bytes 6-9 to calculate the location of the first mp3 frame. My routine seems to work in most cases. However, I've got one mp3 files that doesn't seem to fit the specs, and fails my verification process, although all mp3 players play the file without a problem. Below are the first 13 bytes of the file: 49 44 33 03 00 00 00 01 79 76 57 4F 41 46 If I am interpreting the ID3 specs correctly, the first mp3 frame should be found at offset 7D00. However, I only find 00 there; the first mp3 is really at 7EA1. Am I missing something? Or did the program that added the ID3 tag miscalculate the ID3v2 size bytes? If the latter, do all players allow for mistakes and just start hunting for the 11-bit frame sync? Thanks in advance, Robert Sewell If you do not wish to receive future commercial e-mail messages from SESAC, you may send an e-mail message from this address to optout at sesac.com CONFIDENTIALITY NOTICE: This e-mail transmission, and any documents, files, or other e-mail messages attached to it, may contain confidential information that is legally privileged. If you are not the intended recipient, or a person responsible for delivering it to the intended recipient, you are hereby notified that any disclosure, copying, distribution or use of any of the information contained in or attached to this message is STRICTLY PROHIBITED. If you have received this transmission in error, please immediately notify the sender via e-mail or by telephone at 615.320.0055 and destroy the original transmission and its attachments without reading them or saving them to disk. -------------- next part -------------- An HTML attachment was scrubbed... URL: From 333tabiji at gmail.com Wed Nov 15 20:44:08 2006 From: 333tabiji at gmail.com (synaptic fusion) Date: Wed, 15 Nov 2006 23:44:08 -0500 Subject: [ID3 Dev] re-tagging wav files Message-ID: I recently received a hard drive with wav files that are listed by catalogue number and would like to know if there is a way to bulk encode these files to mp3 and link the appropriate meta data from an excel spreedsheet. Thank in advance. ~Joshua --------------------------------------------------------------------- To unsubscribe, e-mail: id3v2-unsubscribe at id3.org For additional commands, e-mail: id3v2-help at id3.org From tony at avic-tech.com Thu Nov 16 23:34:40 2006 From: tony at avic-tech.com (Tony) Date: Fri, 17 Nov 2006 15:34:40 +0800 Subject: [ID3 Dev] [Lyrics3 Tag v2.00] Is that the (IND) field must exist in the field? References: <455C5ED0.5050703@coe.neu.edu> Message-ID: <002201c70a1a$d87bfbe0$a901a8c0@tony4ba2890f52> Hi all, Must (IND) field exist in the content? If doesn't exist, what shall we do? Thanks. Tony Teo --------------------------------------------------------------------- To unsubscribe, e-mail: id3v2-unsubscribe at id3.org For additional commands, e-mail: id3v2-help at id3.org From chris.newell at rd.bbc.co.uk Tue Nov 28 08:50:07 2006 From: chris.newell at rd.bbc.co.uk (Chris Newell) Date: Tue, 28 Nov 2006 16:50:07 +0000 Subject: [ID3 Dev] Audio text authoring tool Message-ID: <6.2.0.14.2.20061128164357.0281add8@pop3> Hi, If anyone is interested in experimenting with the Audio text frames defined in the Accessibility addendum I've created a basic authoring tool: http://id3v2-atxt-tool.sourceforge.net/ The final draft of the addendum should be uploaded to the web server in the near future. Best regards, Chris ____________________________________________ Chris Newell Lead Technologist BBC Future Media & Technology -------------- next part -------------- An HTML attachment was scrubbed... URL: From jmartin92 at comcast.net Wed Nov 15 21:22:46 2006 From: jmartin92 at comcast.net (Jim) Date: Thu, 16 Nov 2006 00:22:46 -0500 Subject: [ID3 Dev] Why is footer not included in total size? References: <6.2.0.14.2.20061107101949.027fdca8@pop3> <035b01c707bd$abcf6e60$6501a8c0@xp1800desk> <1608.69.175.177.145.1163648846.squirrel@mail.winamp.com> Message-ID: <006201c7093f$45edf200$6501a8c0@xp1800desk> Well, I can see the possibility of the problem there. However: I know padding and having a footer are exclusive, but since padding is optional for a prepended tag, how does this imply footers should not be used for prepended tags? (I'm beginning to agree that footers should not be used on prepended tags but relying on something implied by the spec seems to be asking for trouble. If footers should only be used on appended tags it would seem better to just update the spec to explicitly say that...and not leave it up to interpretation that could cause problems.) But let's assume for a moment that a footer CAN be added to a prepended tag. According to the spec, software that encounters a major tag version beyond what it understands should skip/ignore the entire tag. (Like a 2.2 parser encountering a 2.3 or higher tag or a 2.3 parser encountering a 2.4 or higher tag, etc.) How could any software that encounters a tag with a footer do this? If it uses the size given by the header and skips ahead that many bytes, it would end up exactly at the beginning of the footer instead of after it. I know there is never any guarantee that the size in the header is correct and will allow you to skip right to the "real" (meaning how it would be without the tag) beginning of the file but here you have a case where a properly written tag with a proper size would land you 10 bytes shy of end of the tag every time. That seems wrong. (Yes, I know that any decent player should check for the sync signal but shouldn't the goal be to avoid having to scan for this when you have a properly written tag with no "junk" data after it?) The idea that a 2.3 parser would get messed up because it would try to read this as a frame seems remote. For one thing, as previously stated, a 2.3 parser should skip a 2.4 tag entirely. But if it did try to parse the frames I would think it would already be hopelessly lost since the size in 2.4 frame headers is stored as a syncsafe integer while in 2.3 frames it is not syncsafe. And for a not fully conforming 2.4 parser it's true that this could be a problem. But, well, even if it doesn't fully conform to the spec, checking a flag bit and subtracting 10 from the given size is a pretty simple fix. Jim ----- Original Message ----- From: "Ben Allison" To: Sent: Wednesday, November 15, 2006 10:47 PM Subject: Re: [ID3 Dev] Why is footer not included in total size? > The footer is excluded from the length because it would trip up parsers > that aren't expecting it (either because they are ID3v2.3 or aren't fully > conformant to 2.4). > > It's easy to imagine, you're done reading the last frame, and then come > across "3DI[0x04]" and assume it's a frame you don't understand, at which > point you read the frame size and, woops, now you're somewhere in the > middle of the file. > > As others have said, footers are meant for appended tags. Although not > specifically banned from use on prepended tags, the fact that padding and > the footer are mutually exclusive implies that it's never meant to be used > at the beginning. > > -Ben Allison > > > Hi. > > > > I am wondering what the reasoning was behind the size stored in ID3v2.4 > > tags not including the size of the footer (if present). > > > > I've been looking through the source code for some utilities for MP3 files > > and some other audio file types. Many of these utilities use a simple > > method for skipping over the ID3v2 tag if it is there. They read the > > first 10 bytes of the file, do some simple checking (look for 'ID3', check > > that version bytes are less than $FF and in some cases check that size > > bytes are syncsafe, i.e. < $80) and if it looks like a tag, convert the > > size and skip that many bytes ahead (+ 10 bytes for header). Most of > > these utilities would be broken if the tag has a footer. They don't do > > any specific version checking or checking of the flags byte. > > > > If the size stored in ID3v2.4 tags included the footer size (if it is > > present), it would make these tags much more backwards compatible. (I > > know it is a pretty easy change to add checking for the footer flag but > > wouldn't it have been better to make it compatible with older apps that > > don't really need to read the tag, just skip it?) Were there reasons > > that came up during development why it was done the way it is? If so, I'd > > appreciate if someone could share them with me. Or if there is somewhere > > I can read about this (like some archive of the mailing list) I would > > appreciate someone pointing me in the right direction. > > > > Thanks. > > > > Jim Martin > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: id3v2-unsubscribe at id3.org > For additional commands, e-mail: id3v2-help at id3.org > > --------------------------------------------------------------------- To unsubscribe, e-mail: id3v2-unsubscribe at id3.org For additional commands, e-mail: id3v2-help at id3.org From rsewell at SESAC.com Mon Nov 6 13:58:41 2006 From: rsewell at SESAC.com (Robert Sewell) Date: Mon, 6 Nov 2006 15:58:41 -0600 Subject: [ID3 Dev] Finding the end of an ID3 Header Message-ID: Hello, I have a need to verify that mp3 files uploaded by our users comply with certain minimum specs (bit and sample rates, etc.). To get to the mp3 headers, I first have to check for an ID3 tag, and if found, use bytes 6-9 to calculate the location of the first mp3 frame. My routine seems to work in most cases. However, I've got one mp3 files that doesn't seem to fit the specs, and fails my verification process, although all mp3 players play the file without a problem. Below are the first 13 bytes of the file: 49 44 33 03 00 00 00 01 79 76 57 4F 41 46 If I am interpreting the ID3 specs correctly, the first mp3 frame should be found at offset 7D00. However, I only find 00 there; the first mp3 is really at 7EA1. Am I missing something? Or did the program that added the ID3 tag miscalculate the ID3v2 size bytes? If the latter, do all players allow for mistakes and just start hunting for the 11-bit frame sync? Thanks in advance, Robert Sewell If you do not wish to receive future commercial e-mail messages from SESAC, you may send an e-mail message from this address to optout at sesac.com CONFIDENTIALITY NOTICE: This e-mail transmission, and any documents, files, or other e-mail messages attached to it, may contain confidential information that is legally privileged. If you are not the intended recipient, or a person responsible for delivering it to the intended recipient, you are hereby notified that any disclosure, copying, distribution or use of any of the information contained in or attached to this message is STRICTLY PROHIBITED. If you have received this transmission in error, please immediately notify the sender via e-mail or by telephone at 615.320.0055 and destroy the original transmission and its attachments without reading them or saving them to disk. -------------- next part -------------- An HTML attachment was scrubbed... URL: From jmartin92 at comcast.net Tue Nov 21 16:15:01 2006 From: jmartin92 at comcast.net (Jim) Date: Tue, 21 Nov 2006 19:15:01 -0500 Subject: [ID3 Dev] Why is footer not included in total size? References: <4562F6C1.9090903@kde.org> Message-ID: <00c001c70dcb$5de7e830$6501a8c0@xp1800desk> Even if a comprehensive test suite was not created, I think it would still be better to have more example tags/files to use for testing a particular app. Perhaps someone could be in charge of compiling submissions from developers or other people that submit tags for use in testing? (That person would have to have a thorough knowledge of the spec/standards. Perhaps someone that has developed or is developing a fully compliant ID3v2 application?) If this project was started now, eventually it could claim to be a comprehensive set of example tags once enough submissions were received. And if the order that the frames are written is carefully controlled, is there something else that would cause a written tag to not be bit-for-bit identical to an example tag? (That's assuming it followed the model of the example tag, like having/not having an extended header, using unsynchronization, etc.) Jim ----- Original Message ----- From: "Scott Wheeler" To: Sent: Tuesday, November 21, 2006 7:53 AM Subject: Re: [ID3 Dev] Why is footer not included in total size? > Ray Manning wrote: > > Is Martin Nilsson active on this list? > > > > I've not seen anything ID3 related from him in years. > > > Example tags > > A comprehensive test suite for all versions of ID3 tags are currently under > > development. The test suite includes both conforming tags and non-conforming > > tags so that both standards coformance and software robustness can be > > tested. Part of these will be released as example tags while the rest will > > be sold to cover development and running expenses. If you are interested, > > contact Martin Nilsson. > > > > While waiting for the ID3v2 test suite, feel free to try the ID3v1/ID3v1.1 > > test suite. > > > > -------------------------------------- > > > > That seems to imply to me that people have been waiting for example tags > > since v1. > > > > And they'll keep waiting until someone takes up the not-terribly-fun > task of creating such a suite. It being a good idea won't make it happen. > > Even from there you've got a lot of obstacles: > > - It's going to be hard to get together multiple people that know the > spec well to do bit-for-bit compliance checks. > - Most implementations don't even claim to do the whole spec. > - Writing is much more interesting than reading compliance-wise and > it's very difficult to set things up to get bit-for-bit output matches > even with compliant implementations. > > -Scott > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: id3v2-unsubscribe at id3.org > For additional commands, e-mail: id3v2-help at id3.org > > --------------------------------------------------------------------- To unsubscribe, e-mail: id3v2-unsubscribe at id3.org For additional commands, e-mail: id3v2-help at id3.org From Phil at broadbandinstruments.com Wed Nov 1 07:10:20 2006 From: Phil at broadbandinstruments.com (Phil Pellouchoud) Date: Wed, 1 Nov 2006 07:10:20 -0800 Subject: [ID3 Dev] Buffer overrun in ID3v2.3 Message-ID: <40AB5A80E5E562409254E65CBACFE2BD0A38B9@BBMAIL.corp.bbi.com> Hi, I'm not sure where to submit this, but I wanted to share it with everyone just in case they're using ID3v2.3. I found a buffer overrun in the code in file mp3_parse.cpp. bool Mp3Info::Parse(ID3_Reader& reader, size_t mp3size) { ... ... const size_t VBR_HEADER_MIN_SIZE = 8; // "xing" + flags are fixed const size_t VBR_HEADER_MAX_SIZE = 120; // frames (4), bytes (4), toc (100) and scale (4) are optional + VBR_HEADER_MIN_SIZE //const size_t VBR_HEADER_MAX_SIZE = 116; // frames, bytes, toc and scale are optional if (mp3size >= vbr_header_offest + VBR_HEADER_MIN_SIZE) { char vbrheaderdata[VBR_HEADER_MAX_SIZE+1]; //+1 to hold the 0 char unsigned char *pvbrdata = (unsigned char *)vbrheaderdata; int vbr_filesize = 0; int vbr_scale = 0; int vbr_flags = 0; // get fixed part of vbr header // and check if valid beg = vbr_header_offest; reader.setCur(beg); reader.readChars(vbrheaderdata, VBR_HEADER_MIN_SIZE); vbrheaderdata[VBR_HEADER_MIN_SIZE] = '\0'; if (pvbrdata[0] == 'X' && pvbrdata[1] == 'i' && pvbrdata[2] == 'n' && pvbrdata[3] == 'g') { // get vbr flags pvbrdata += 4; vbr_flags = ExtractI4(pvbrdata); pvbrdata += 4; // read entire vbr header int vbr_header_size = VBR_HEADER_MIN_SIZE + ((vbr_flags & FRAMES_FLAG)? 4:0) + ((vbr_flags & BYTES_FLAG)? 4:0) + ((vbr_flags & TOC_FLAG)? 100:0) + ((vbr_flags & SCALE_FLAG)? 4:0); // in this scenario, vbr_header_size can equal // VBR_HEADER_MIN_SIZE + 4 + 4 + 100 + 4 = 120 // which is bigger than 116. if (mp3size >= vbr_header_offest + vbr_header_size) { reader.readChars(&vbrheaderdata[VBR_HEADER_MIN_SIZE], vbr_header_size - VBR_HEADER_MIN_SIZE); vbrheaderdata[vbr_header_size] = '\0'; // and then you're using the index calculated above to // write into the buffer! // get frames, bytes, toc and scale if (vbr_flags & FRAMES_FLAG) { vbr_frames = ExtractI4(pvbrdata); pvbrdata +=4; } if (vbr_flags & BYTES_FLAG) { vbr_filesize = ExtractI4(pvbrdata); pvbrdata +=4; } -------------- next part -------------- An HTML attachment was scrubbed... URL: From fiji at ayup.limey.net Wed Nov 15 11:37:45 2006 From: fiji at ayup.limey.net (Ben Bennett) Date: Wed, 15 Nov 2006 14:37:45 -0500 Subject: [ID3 Dev] Why is footer not included in total size? In-Reply-To: References: <20061114202159.GA31545@ayup.limey.net> Message-ID: <20061115193745.GA15034@ayup.limey.net> On Wed, Nov 15, 2006 at 07:02:22AM -0800, Ray Manning wrote: > I guess I'll be asking more questions here along my ID3 tag journey then. > Having just recently started looking at the specs, I assumed 2.4 would > be the place to start. From what I'm learning from this discussion and Ack. Good luck! We should start some compatability list with some test tags. I have said this before, but haven't done anything about it. Mea culpa. > It would be helpful, I think, if this mailing list was archived somewhere True... I admit I don't actually know who runs the id3.org site and list. If I can help get something set up, please step forward and let me know what you need. > Thanks for the tip. That helps focus my efforts. Can you shed some light > on what problems you've encountered with adding too many tags? I do > realize that not all tags will be interpreted the same way (for example, It wasn't an issue of absolute tag size, but I haven't really stress tested it. I will have to go back and recreate the information to know for sure, since I can't seem to find my notes at the moment. I seem to recall Amarok doing something daft when presented with a v.2.3 tag with some of the frame types. I think it was something to do with dates, but I can't remember (perhaps if you had a TYER along with TDAT it was wonky). > If you are talking about the suggestions for scanning in section > "5. Tag location", then yes I did see that. The word "unembedded" > gave my stomach a flip. What is an embedded frame? I'm guessing > it's embedded in an audio stream in order for players to pick > up frames from a stream? You have to remember that a lot of the motivation for ID3v2 was to allow tags to be embedded in audio streams. I read "unembedded" as "not-in-the-middle". > The tool I'm working on is for managing a large music database and > importing music into it. I need to be able to read tags from multiple > sources and file formats as well as write tags that can be widely > understood. Cool. I think we have similar desires. I have been playing around with the Perl libraries, and trying to write a better ID3v2 module (with the ability to sanity check stuff and conver 2.3 to 2.4). I have also been trying to work out the best way to write generally understood tags... but it is a hairy process. More below. > I don't understand what you're saying here. How would the > player receiving a stream, know a tag follows without seeing the > tag header first? I'd assume a player would be looking for a > header and not a footer. I'm also thinking this is where the > SEEK frame might be useful. So, when you are decoding an mp3 stream (assuming a reliable transport) then you look for the mp3 sync information, and from that you know how big the mp3 frame is. When you are done reading that much data, you should either see the mp3 sync bits again, or another header you know. So if you see 'TAG' you know you are looking at a v1 tag and should consume 125 more bytes, if looking at 'ID3' then it is some flavor of v2 and you have to look at the fixed size header for the frame length, etc. I realize you can just set your code to skip if you see '3DI', but it seems easier to know if you are looking at a 2.4 tag and to skip the extra 10 footer bytes. You really want to avoid doing search to resync when looking for your next mp3 data since it is slow, and there is a chance that you can get a bad sync and throw non-mp3 data at your decoder. (Since the sync is relatively small it is not uncommon in binary data). > Agreed. That doesn't mean it can't be improved upon the next version. > It almost sounds to me like 2.4 is reluctantly being accepted due > to some of the issues it introduces. I certainly don't get the > impression people are in a hurry to move to 2.4 which is somewhat > surprising to me given a 6 year old standard and the increased > exposure of mp3 in that same period. I have advocated for a v2.4.1 version that clarifies some of the questions about 2.4.0. Not really as a major restructuring of the spec, but more as a chance to say, if you claim it is a 2.4.1 tag then it damn well better address these issues. iTunes, for instance, gets the frame lengths wrong since it doesn't apply unsynchronization to the length. So if they are big, it reads too much, and misses subsequent data. I think it also messes up the frame flags in 2.4, but that may have been only when it was converting a 2.3 tag to 2.4. Anyway, if you are serious about this we should set up a wiki somewhere (I can host it I suppose) and make some sample frames that we can use for conformance testing. Then maintain a compatability matrix of the various programs with respect to the sample frames. We should also open the 2.4 spec up for comments, but restrict it solely to clarifications. I want to make a separate document that updates the programming guidelines and discusses how to write "safe" tags. Comments? Who is with me? -ben --------------------------------------------------------------------- To unsubscribe, e-mail: id3v2-unsubscribe at id3.org For additional commands, e-mail: id3v2-help at id3.org From fiji at ayup.limey.net Tue Nov 14 08:36:30 2006 From: fiji at ayup.limey.net (Ben Bennett) Date: Tue, 14 Nov 2006 11:36:30 -0500 Subject: [ID3 Dev] Why is footer not included in total size? In-Reply-To: References: <035b01c707bd$abcf6e60$6501a8c0@xp1800desk> Message-ID: <20061114163630.GB22957@ayup.limey.net> On Tue, Nov 14, 2006 at 02:56:17AM -0800, Ray Manning wrote: > > Good point. I was recently wondering the same thing (as well as why someone > would want to start a tag search from the end of a file in the first > place!). It lets you append a tag which is way easier than moving all file data so you can prepend. > The footer does seem like it may, in some situation, for someone, > solve a problem but IMO, it shouldn't foist knowledge of itself into the > interpretation of the size field. To interpret the size field, you now have > to understand the flags as well as choose the proper calculation in order to > determine how many bytes are included in the tag. Overly complex, and as you > mention a breaking change. I see no reason why it couldn't have been made > part of the size field and have a fixed position at the last 10 bytes of the > header. The footer needs to be at the end in order to allow you to find the tag start when scanning backwards from the end of the file. I can't comment on why the size doesn't contain the footer. > > I actually contemplated always outputing a footer in the tags I write since > it's simple to do and it removes the potential for a false sync signal > should the last byte of the tag be 0xFF. I decided against it due to the > potential incompatibility problems. Good choice. You can get around the sync problem by always including padding. You probably want to include padding anyway so that minor tag changes don't need the whole file to be rewritten. One of the notes on the spec site (id3.org) suggests padding out to make the tag be a full block (which is filesystem dependent, but a multiple of 512 or 1024 makes sense). > I tried to imagine why you might want to exclude the footer from the size > but I've come up blank. The closest I've come is that making a copy of the > tag at the end of the file can be as simple as a literal copy of the tag and > append the 10 byte footer. That should be sufficient for a tag search > starting from the end of the file but it wouldn't be complete since, you'd > have to whack the header flags to indicate the presence of the footer (I > smell the potential for an inconsistency between the header and footer > here -- what would it mean to read a footer that doesn't have the footer bit > set?). I am not sure what you mean by "footer bit". Note that a footer has a different signature, it has "3DI" at the start of the 10 byte footer. The footer is part of the ID3 tag, so you have: [header, tag data, padding, footer] Audio data ID3v1 tag (if any) Of course a prepended tag with a footer is a bit silly. An appended tag would look like: Audio data [header, tag data, padding, footer] ID3v1 tag (if any) Please note that you probably don't want to have 2 tags on the file... either prepend or append. Most tools won't know about appended tags anyway, so I would just avoid them. > Assuming one buys into the idea that the header size should include the > footer, is there any real reason to keep the footer flag? As far as I can > tell, that flag is only present to allow you to "fix" the size calculation > when skipping the tag. No one is going to be checking that flag in order to > verify the 10 bytes following the tag are actually a footer. The flag does > give you one more significant bit for verification when searching for a > footer, but skipping to the header from the footer and verifying the header > should be more than sufficient. I really don't understand what you are getting at here. If you produce a footer, you should produce a flag in order to conform to the spec. If you are just reading the tag, then it is always helpful to avoid having to scan to find the mpeg data. -ben --------------------------------------------------------------------- To unsubscribe, e-mail: id3v2-unsubscribe at id3.org For additional commands, e-mail: id3v2-help at id3.org From arora at pv.com Wed Nov 1 03:34:04 2006 From: arora at pv.com (Gaurav Arora) Date: Wed, 1 Nov 2006 03:34:04 -0800 Subject: [ID3 Dev] Example tags Message-ID: Which utility support ID3v2.2/2.3/2.4 for AAC files... -----Original Message----- From: Michal Vician [mailto:id3v2 at audiott.com] Sent: Wednesday, November 01, 2006 5:01 PM To: id3v2 at id3.org Subject: Re: [ID3 Dev] Example tags > where i can find some "example tags" to test my app? Just create some with WinAMP, ITunes, AudioTT etc. and test the compatibility. --------------------------------------------------------------------- To unsubscribe, e-mail: id3v2-unsubscribe at id3.org For additional commands, e-mail: id3v2-help at id3.org --------------------------------------------------------------------- To unsubscribe, e-mail: id3v2-unsubscribe at id3.org For additional commands, e-mail: id3v2-help at id3.org From paul_t100 at fastmail.fm Thu Nov 2 13:09:06 2006 From: paul_t100 at fastmail.fm (Paul Taylor) Date: Thu, 02 Nov 2006 21:09:06 +0000 Subject: [ID3 Dev] java library In-Reply-To: <454A270A.4080108@mevtho.com> References: <454A270A.4080108@mevtho.com> Message-ID: <454A5E72.3010702@fastmail.fm> Im biased (because i wrote it), but jaudiotagger (https://jaudiotagger.dev.java.net/) is being actively developed, and Id welcome any contributions Paul Thomas MEVEL wrote: > Hi, > I found some java libraries dealing with ID3 tags. > > I would like to know which one I should use as I am willing to do edit > and display tags value. > Or at least I would like to know what I should take care of to choose. > > Also if you have some code samples on using the libraries. > > Thanks for your answers > > Thomas > > --------------------------------------------------------------------- > To unsubscribe, e-mail: id3v2-unsubscribe at id3.org > For additional commands, e-mail: id3v2-help at id3.org > > > --------------------------------------------------------------------- To unsubscribe, e-mail: id3v2-unsubscribe at id3.org For additional commands, e-mail: id3v2-help at id3.org From jmartin92 at comcast.net Tue Nov 14 01:00:53 2006 From: jmartin92 at comcast.net (Jim) Date: Tue, 14 Nov 2006 04:00:53 -0500 Subject: [ID3 Dev] Why is footer not included in total size? References: <6.2.0.14.2.20061107101949.027fdca8@pop3> <035b01c707bd$abcf6e60$6501a8c0@xp1800desk> <1b3bacd80611140046j66a19265t23c1371485f03d46@mail.gmail.com> Message-ID: <037d01c707cb$7a804290$6501a8c0@xp1800desk> I'm not sure about that. I know that appended tags MUST have a footer but there is nothing that says a prepended tag can't have a footer. (At least nothing that I know of. Am I wrong about that?) ----- Original Message ----- From: Andy To: id3v2 at id3.org Sent: Tuesday, November 14, 2006 3:46 AM Subject: Re: [ID3 Dev] Why is footer not included in total size? I am pretty sure that footers are only to be written to a file when the tag is appended, not pre-pended. On 14/11/06, Jim < jmartin92 at comcast.net> wrote: Hi. I am wondering what the reasoning was behind the size stored in ID3v2.4 tags not including the size of the footer (if present). I've been looking through the source code for some utilities for MP3 files and some other audio file types. Many of these utilities use a simple method for skipping over the ID3v2 tag if it is there. They read the first 10 bytes of the file, do some simple checking (look for 'ID3', check that version bytes are less than $FF and in some cases check that size bytes are syncsafe, i.e. < $80) and if it looks like a tag, convert the size and skip that many bytes ahead (+ 10 bytes for header). Most of these utilities would be broken if the tag has a footer. They don't do any specific version checking or checking of the flags byte. If the size stored in ID3v2.4 tags included the footer size (if it is present), it would make these tags much more backwards compatible. (I know it is a pretty easy change to add checking for the footer flag but wouldn't it have been better to make it compatible with older apps that don't really need to read the tag, just skip it?) Were there reasons that came up during development why it was done the way it is? If so, I'd appreciate if someone could share them with me. Or if there is somewhere I can read about this (like some archive of the mailing list) I would appreciate someone pointing me in the right direction. Thanks. Jim Martin -- Andy. -------------- next part -------------- An HTML attachment was scrubbed... URL: From wheeler at kde.org Wed Nov 1 07:18:29 2006 From: wheeler at kde.org (Scott Wheeler) Date: Wed, 01 Nov 2006 16:18:29 +0100 Subject: [ID3 Dev] Buffer overrun in ID3v2.3 In-Reply-To: <40AB5A80E5E562409254E65CBACFE2BD0A38B9@BBMAIL.corp.bbi.com> References: <40AB5A80E5E562409254E65CBACFE2BD0A38B9@BBMAIL.corp.bbi.com> Message-ID: <4548BAC5.4000908@kde.org> Phil Pellouchoud wrote: > > I'm not sure where to submit this, but I wanted to share it with > everyone just in case they're using ID3v2.3. > This list is for the ID3v2 standard; what you're looking for is the id3lib project (id3lib.org). Cheers, -Scott --------------------------------------------------------------------- To unsubscribe, e-mail: id3v2-unsubscribe at id3.org For additional commands, e-mail: id3v2-help at id3.org From jmartin92 at comcast.net Wed Nov 15 10:22:41 2006 From: jmartin92 at comcast.net (Jim) Date: Wed, 15 Nov 2006 13:22:41 -0500 Subject: [ID3 Dev] Why is footer not included in total size? References: Message-ID: <004701c708e3$3408aa50$6501a8c0@xp1800desk> ----- Original Message ----- From: "Ray Manning" To: Sent: Wednesday, November 15, 2006 8:46 AM Subject: RE: [ID3 Dev] Why is footer not included in total size? > > > > And I still think that the footer flag is useful. Sure you can check the > > last 10 bytes of the tag data to see if it is a footer, but isn't > > it easier > > to check one flag bit instead of comparing 10 bytes for the header/footer > > format? (This method may not confirm that the footer is valid as written, > > but it does tell you to expect it to be there.) If I'm parsing a tag that > > contains a footer, I can just subtract 10 bytes from the expected size of > > the tag data/padding and deal with the footer later, if I need to. (If it > > is a prepended tag and I do not change the overall size of the tag or the > > flag byte, I can skip over dealing with the footer entirely.) > > > > > > I agree the flag is useful as the spec is written today, but it is not > necessary > if the spec had made the tag size include the footer size. > > If you're parsing a prepended tag that contains a footer, you can ignore > the footer all together unless you are going to resize the tag or modifiy > the header flags. I'm assuming here that the tag size would include the > footer > size. Since the tag size doesn't include the footer size, then the bit is > needed in order to determine where the end of the tag is. > > If you were parsing an appended tag, then you already know about the footer > so the flag won't be used. > > I think we are in agreement, just confusing reality and the topic. > I'm not sure we are in agreement. Even if the tag size includes the footer size, I think the footer flag is useful. If you have a prepended header with a given size (including the footer if it is present), there are two ways you can know that it contains a footer at the end. One is to have a flag that tells you it does. The other way would be to compare the last 10 bytes of what should be the tag data and compare it against the format of the footer. Personally, I think checking a flag bit is much easier to do. It's like you said - if you aren't changing the size or other flags, you can skip processing the footer entirely. But you can't do that if you don't have a flag that tells you those last 10 bytes are footer data and not tag data. (You have to at least do the comparison of those byte against the footer format to see if it is a footer or not.) PS--I've done a little work with reading/writing other types of tags (APEv2, ID3v1, Lyrics3 v2) so if you are looking for any help with your tool development feel free to email me directly. --------------------------------------------------------------------- To unsubscribe, e-mail: id3v2-unsubscribe at id3.org For additional commands, e-mail: id3v2-help at id3.org From ray at homeautomationdev.com Wed Nov 15 18:33:01 2006 From: ray at homeautomationdev.com (Ray Manning) Date: Wed, 15 Nov 2006 18:33:01 -0800 Subject: [ID3 Dev] Why is footer not included in total size? In-Reply-To: <004701c708e3$3408aa50$6501a8c0@xp1800desk> Message-ID: > -----Original Message----- > From: Jim [mailto:jmartin92 at comcast.net] > Sent: Wednesday, November 15, 2006 10:23 AM > To: id3v2 at id3.org > Subject: Re: [ID3 Dev] Why is footer not included in total size? > > > I'm not sure we are in agreement. Even if the tag size includes > the footer > size, I think the footer flag is useful. If you have a prepended header > with a given size (including the footer if it is present), there are two > ways you can know that it contains a footer at the end. One is to have a > flag that tells you it does. The other way would be to compare > the last 10 > bytes of what should be the tag data and compare it against the format of > the footer. Personally, I think checking a flag bit is much easier to do. > It's like you said - if you aren't changing the size or other > flags, you can > skip processing the footer entirely. But you can't do that if you don't > have a flag that tells you those last 10 bytes are footer data and not tag > data. (You have to at least do the comparison of those byte against the > footer format to see if it is a footer or not.) > I missed the 'subtle' point that padding is mutually exclusive with a footer. You are correct. You would need to have the flag or shape the footer like a frame - which might be interesting but I wont go there. > > PS--I've done a little work with reading/writing other types of > tags (APEv2, > ID3v1, Lyrics3 v2) so if you are looking for any help with your tool > development feel free to email me directly. > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: id3v2-unsubscribe at id3.org > For additional commands, e-mail: id3v2-help at id3.org > > --------------------------------------------------------------------- To unsubscribe, e-mail: id3v2-unsubscribe at id3.org For additional commands, e-mail: id3v2-help at id3.org From id3v2 at audiott.com Wed Nov 1 03:29:15 2006 From: id3v2 at audiott.com (Michal Vician) Date: Wed, 1 Nov 2006 12:29:15 +0100 (CET) Subject: [ID3 Dev] mood tags In-Reply-To: <631330D0-27FD-4A46-AC1E-E3B00EA28A29@gmx.at> References: <631330D0-27FD-4A46-AC1E-E3B00EA28A29@gmx.at> Message-ID: <21959.195.91.54.86.1162380555.squirrel@webmail-4.domains.sk> As far as I know MediaMonkey supports it. But I'm not sure. > I believe Helim Music Manager does > > Am 25.10.2006 um 01:22 schrieb Owen Meyers: > >> does anyone know of any software that implements the mood field >> (TMOO) of the id3v2.4 spec? >> >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: id3v2-unsubscribe at id3.org >> For additional commands, e-mail: id3v2-help at id3.org >> --------------------------------------------------------------------- To unsubscribe, e-mail: id3v2-unsubscribe at id3.org For additional commands, e-mail: id3v2-help at id3.org From ray at homeautomationdev.com Wed Nov 22 05:33:53 2006 From: ray at homeautomationdev.com (Ray Manning) Date: Wed, 22 Nov 2006 05:33:53 -0800 Subject: [ID3 Dev] Why is footer not included in total size? In-Reply-To: <00c001c70dcb$5de7e830$6501a8c0@xp1800desk> Message-ID: I think there is too much focus on binary comparisons for the testing. Testing the write side of an application can consist of a tag reader that checks for tag conformance. It does not have to be as rigid as a binary comparison. The reader can look for non-conforming tags and indicate where the spec is being violated. It can also burp out warnings when a "should" clause of the spec is being violated. This allows the testing to be flexible and adds no burden to the writer. The reader source code would make a good adjunct of the spec and guide programmer's how to read and write tags. The reading side test suite could just be a series of nonconformant/conformant tags representing different aspects of the spec (i.e., frames, headers, footer's, unsync, etc.). It would be up to the programmer wanting to use the test tags how to get them into their reader. And of course the conformance tester would be able to eat all these tags. - Ray > -----Original Message----- > From: Jim [mailto:jmartin92 at comcast.net] > Sent: Tuesday, November 21, 2006 4:15 PM > To: id3v2 at id3.org > Subject: Re: [ID3 Dev] Why is footer not included in total size? > > > Even if a comprehensive test suite was not created, I think it would still > be better to have more example tags/files to use for testing a particular > app. Perhaps someone could be in charge of compiling submissions from > developers or other people that submit tags for use in testing? (That > person would have to have a thorough knowledge of the spec/standards. > Perhaps someone that has developed or is developing a fully > compliant ID3v2 > application?) If this project was started now, eventually it > could claim to > be a comprehensive set of example tags once enough submissions were > received. > > And if the order that the frames are written is carefully controlled, is > there something else that would cause a written tag to not be bit-for-bit > identical to an example tag? (That's assuming it followed the > model of the > example tag, like having/not having an extended header, using > unsynchronization, etc.) > > Jim > > --------------------------------------------------------------------- To unsubscribe, e-mail: id3v2-unsubscribe at id3.org For additional commands, e-mail: id3v2-help at id3.org From ray at homeautomationdev.com Wed Nov 15 05:46:58 2006 From: ray at homeautomationdev.com (Ray Manning) Date: Wed, 15 Nov 2006 05:46:58 -0800 Subject: [ID3 Dev] Why is footer not included in total size? In-Reply-To: <00ad01c70818$3059fe70$6501a8c0@xp1800desk> Message-ID: > -----Original Message----- > From: Jim [mailto:jmartin92 at comcast.net] > Sent: Tuesday, November 14, 2006 10:09 AM > To: id3v2 at id3.org > Subject: Re: [ID3 Dev] Why is footer not included in total size? > > > Some ID3v1 tag information can be found here: > http://www.id3.org/id3v1.html Thanks, I missed that link. > > > And I still think that the footer flag is useful. Sure you can check the > last 10 bytes of the tag data to see if it is a footer, but isn't > it easier > to check one flag bit instead of comparing 10 bytes for the header/footer > format? (This method may not confirm that the footer is valid as written, > but it does tell you to expect it to be there.) If I'm parsing a tag that > contains a footer, I can just subtract 10 bytes from the expected size of > the tag data/padding and deal with the footer later, if I need to. (If it > is a prepended tag and I do not change the overall size of the tag or the > flag byte, I can skip over dealing with the footer entirely.) > I agree the flag is useful as the spec is written today, but it is not necessary if the spec had made the tag size include the footer size. If you're parsing a prepended tag that contains a footer, you can ignore the footer all together unless you are going to resize the tag or modifiy the header flags. I'm assuming here that the tag size would include the footer size. Since the tag size doesn't include the footer size, then the bit is needed in order to determine where the end of the tag is. If you were parsing an appended tag, then you already know about the footer so the flag won't be used. I think we are in agreement, just confusing reality and the topic. - Ray --------------------------------------------------------------------- To unsubscribe, e-mail: id3v2-unsubscribe at id3.org For additional commands, e-mail: id3v2-help at id3.org From thomas.prog at mevtho.com Thu Nov 2 09:12:42 2006 From: thomas.prog at mevtho.com (Thomas MEVEL) Date: Thu, 02 Nov 2006 18:12:42 +0100 Subject: [ID3 Dev] java library Message-ID: <454A270A.4080108@mevtho.com> Hi, I found some java libraries dealing with ID3 tags. I would like to know which one I should use as I am willing to do edit and display tags value. Or at least I would like to know what I should take care of to choose. Also if you have some code samples on using the libraries. Thanks for your answers Thomas --------------------------------------------------------------------- To unsubscribe, e-mail: id3v2-unsubscribe at id3.org For additional commands, e-mail: id3v2-help at id3.org From wheeler at kde.org Tue Nov 21 04:53:21 2006 From: wheeler at kde.org (Scott Wheeler) Date: Tue, 21 Nov 2006 13:53:21 +0100 Subject: [ID3 Dev] Why is footer not included in total size? In-Reply-To: References: Message-ID: <4562F6C1.9090903@kde.org> Ray Manning wrote: > Is Martin Nilsson active on this list? > I've not seen anything ID3 related from him in years. > Example tags > A comprehensive test suite for all versions of ID3 tags are currently under > development. The test suite includes both conforming tags and non-conforming > tags so that both standards coformance and software robustness can be > tested. Part of these will be released as example tags while the rest will > be sold to cover development and running expenses. If you are interested, > contact Martin Nilsson. > > While waiting for the ID3v2 test suite, feel free to try the ID3v1/ID3v1.1 > test suite. > > -------------------------------------- > > That seems to imply to me that people have been waiting for example tags > since v1. > And they'll keep waiting until someone takes up the not-terribly-fun task of creating such a suite. It being a good idea won't make it happen. Even from there you've got a lot of obstacles: - It's going to be hard to get together multiple people that know the spec well to do bit-for-bit compliance checks. - Most implementations don't even claim to do the whole spec. - Writing is much more interesting than reading compliance-wise and it's very difficult to set things up to get bit-for-bit output matches even with compliant implementations. -Scott --------------------------------------------------------------------- To unsubscribe, e-mail: id3v2-unsubscribe at id3.org For additional commands, e-mail: id3v2-help at id3.org From fiji at ayup.limey.net Sun Nov 5 19:43:12 2006 From: fiji at ayup.limey.net (Ben Bennett) Date: Sun, 5 Nov 2006 22:43:12 -0500 Subject: [ID3 Dev] Confusing problem about ID3v2.Could it located at the end of file? In-Reply-To: References: Message-ID: <20061106034312.GA13165@ayup.limey.net> On Sun, Nov 05, 2006 at 07:17:52PM -0800, Gaurav Arora wrote: > As per my knowledge Id3v2.4 has a footer (which is optional) which > resides at the end of the file. But the footer can be present only > when the header tag is there, without ID3v2.4 tag footer will not be > appended to the file. I think you have tag and file mixed up. The tag is required to have a header, and as noted the footer is optional (unless the tag is appended). However, the tag can either appear at the start of the file, or it can appear near the end of file (the appended case). If it is an appended tag, then the tag footer is required, and the tag will be before the ID3v1 tag (if present) and any other tags that are understood... which is vague... so I would avoid appended tags wherever possible. -ben --------------------------------------------------------------------- To unsubscribe, e-mail: id3v2-unsubscribe at id3.org For additional commands, e-mail: id3v2-help at id3.org From benski at winamp.com Wed Nov 15 19:47:26 2006 From: benski at winamp.com (Ben Allison) Date: Wed, 15 Nov 2006 22:47:26 -0500 (EST) Subject: [ID3 Dev] Why is footer not included in total size? In-Reply-To: <035b01c707bd$abcf6e60$6501a8c0@xp1800desk> References: <6.2.0.14.2.20061107101949.027fdca8@pop3> <035b01c707bd$abcf6e60$6501a8c0@xp1800desk> Message-ID: <1608.69.175.177.145.1163648846.squirrel@mail.winamp.com> The footer is excluded from the length because it would trip up parsers that aren't expecting it (either because they are ID3v2.3 or aren't fully conformant to 2.4). It's easy to imagine, you're done reading the last frame, and then come across "3DI[0x04]" and assume it's a frame you don't understand, at which point you read the frame size and, woops, now you're somewhere in the middle of the file. As others have said, footers are meant for appended tags. Although not specifically banned from use on prepended tags, the fact that padding and the footer are mutually exclusive implies that it's never meant to be used at the beginning. -Ben Allison > Hi. > > I am wondering what the reasoning was behind the size stored in ID3v2.4 > tags not including the size of the footer (if present). > > I've been looking through the source code for some utilities for MP3 files > and some other audio file types. Many of these utilities use a simple > method for skipping over the ID3v2 tag if it is there. They read the > first 10 bytes of the file, do some simple checking (look for 'ID3', check > that version bytes are less than $FF and in some cases check that size > bytes are syncsafe, i.e. < $80) and if it looks like a tag, convert the > size and skip that many bytes ahead (+ 10 bytes for header). Most of > these utilities would be broken if the tag has a footer. They don't do > any specific version checking or checking of the flags byte. > > If the size stored in ID3v2.4 tags included the footer size (if it is > present), it would make these tags much more backwards compatible. (I > know it is a pretty easy change to add checking for the footer flag but > wouldn't it have been better to make it compatible with older apps that > don't really need to read the tag, just skip it?) Were there reasons > that came up during development why it was done the way it is? If so, I'd > appreciate if someone could share them with me. Or if there is somewhere > I can read about this (like some archive of the mailing list) I would > appreciate someone pointing me in the right direction. > > Thanks. > > Jim Martin > --------------------------------------------------------------------- To unsubscribe, e-mail: id3v2-unsubscribe at id3.org For additional commands, e-mail: id3v2-help at id3.org From jmartin92 at comcast.net Thu Nov 2 08:42:01 2006 From: jmartin92 at comcast.net (Jim) Date: Thu, 2 Nov 2006 11:42:01 -0500 Subject: [ID3 Dev] ID3v1 <-> ID3v2 References: <454A1DA4.3090308@mevtho.com> Message-ID: <006201c6fe9d$d4f71140$6501a8c0@xp1800desk> Hi Thomas. ID3v2 tags are completely separate from ID3v1 tags. They are stored at different places in the mp3 file. They can have the same information or they can have different information. Jim ----- Original Message ----- From: "Thomas MEVEL" To: Sent: Thursday, November 02, 2006 11:32 AM Subject: [ID3 Dev] ID3v1 <-> ID3v2 > Hi, > I am new to this list, I am from France. Maybe the question has already > been asked. > I would like to know if in a mp3 files what are the relations between > ID3v1 an ID3v2 tags. > I mean are the ID3v2 tags relying on the ID3v1 tags for common > informations or are this informations stored twice in the file ? > > Thanks for your answer, don't hesitate to tell me if you don't > understand what my problem is. > > > Thomas MEVEL > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: id3v2-unsubscribe at id3.org > For additional commands, e-mail: id3v2-help at id3.org > > --------------------------------------------------------------------- To unsubscribe, e-mail: id3v2-unsubscribe at id3.org For additional commands, e-mail: id3v2-help at id3.org From rmanson at gracenote.com Thu Nov 2 17:07:37 2006 From: rmanson at gracenote.com (Robert Manson) Date: Thu, 2 Nov 2006 17:07:37 -0800 Subject: [ID3 Dev] ID3v1 <-> ID3v2 Message-ID: <119461A3B1C2A847BABA421E6EB62CEA183E37@EMAIL1.gracenote.gracenote.com> I would say that in most cases you should prefer the content from the ID3v2 tag for two reasons: 1. it is less likely to be truncated 2. you know the character encoding (unless it is improperly marked) -Rob -----Original Message----- From: Thomas MEVEL [mailto:thomas.prog at mevtho.com] Sent: Thursday, November 02, 2006 4:34 PM To: id3v2 at id3.org Subject: Re: [ID3 Dev] ID3v1 <-> ID3v2 Thanks for yours answers. If I want to get the title for example, and both are different, which one should I choose ? Does a tag version have any priority on the other? Thanks again for the answers. Thomas Tom Sorensen a ?crit : > If a file has both tags then the information is stored twice. There is > no interdependancy, and it's not uncommon for one tag to have > different info than the other. > > On 11/2/06, Thomas MEVEL wrote: >> Hi, >> I am new to this list, I am from France. Maybe the question has already >> been asked. >> I would like to know if in a mp3 files what are the relations between >> ID3v1 an ID3v2 tags. >> I mean are the ID3v2 tags relying on the ID3v1 tags for common >> informations or are this informations stored twice in the file ? >> >> Thanks for your answer, don't hesitate to tell me if you don't >> understand what my problem is. >> >> >> Thomas MEVEL >> >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: id3v2-unsubscribe at id3.org >> For additional commands, e-mail: id3v2-help at id3.org >> >> > > --------------------------------------------------------------------- > To unsubscribe, e-mail: id3v2-unsubscribe at id3.org > For additional commands, e-mail: id3v2-help at id3.org > --------------------------------------------------------------------- To unsubscribe, e-mail: id3v2-unsubscribe at id3.org For additional commands, e-mail: id3v2-help at id3.org --------------------------------------------------------------------- To unsubscribe, e-mail: id3v2-unsubscribe at id3.org For additional commands, e-mail: id3v2-help at id3.org From fiji at ayup.limey.net Tue Nov 14 12:21:59 2006 From: fiji at ayup.limey.net (Ben Bennett) Date: Tue, 14 Nov 2006 15:21:59 -0500 Subject: [ID3 Dev] Why is footer not included in total size? In-Reply-To: References: <20061114163630.GB22957@ayup.limey.net> Message-ID: <20061114202159.GA31545@ayup.limey.net> > Perhaps easier, but if most tools don't know about appended tags, > and there is a general tendency to avoid appended tags, I question > their usefulness. I'd suspect software that adds tags will fail to > search a file backward to see if an appended tag already exists and > still prepend a new tag (obviously v2.3 software won't know about > appended tags and end up prepending a second tag). Yes. The spec is stale with respect to usage. If you stray too far from 2.3 then you get in trouble. > This comes down to a choice of when to add padding. Do you add more > padding if you use up what's there or do you add padding when there > isn't enough room to complete the task at hand? I really don't see > a reason to add padding if there is enough existing to complete the > task at hand. Like you mention, it's easier not to move the file > especially if the move is only to pad the tag. Obviously. (Save for the case where you need a byte of padding to avoid sync issues). Did you read the http://www.id3.org/id3guide.htm guide? Specifically the padding section. > Hmmm... being new to the ID3 world, I haven't seen ID3v1 tags nor is > there a spec available (that I can find) on www.id3.org so I suspect > it's obsolete? With data (the ID3v1 tag) following the ID3v2.4 appended > tag, it makes it that much harder to find the footer (back to scanning). ID3v1 is on almost every mp3 file have ever seen that has been tagged in any way. It is a very simple tag format that is a fixed 128 bytes at the end of the file. There is some info at http://www.id3.org/intro.html Specifically: http://www.id3.org/id3v1.html but the other links are interesting too. > Shouldn't the Id3v1 tag be removed when the Id3v4 tag is written? Never > having dealt with the Id3v1 tag, I might be off base here... Depends on what compatability level you want with players. Everything understands ID3v1. Some things understand v2.3 and a few things understand v2.4. And some even implement them correctly. Getting things to play well together is hell. For instance if you want iTunes to work correctly with large frames (e.g. images) you need to use 2.3 since they messed up reading the size in 2.4. But if you want to use Amarok too... then they partially support 2.3 and support 2.4 much better. If you want to write something that almost everything can read, then write a ID3v2.3 tag on the front (the only choice) and a ID3v1 tag on the end (again, the only choice). Also only a subset of tags are reliably supported. Populating too much can get you in trouble with some tools too... > Tools will have to know how to find the appended tag if you are to > avoid 2 tags in one file. pre-id3v2.4 tools don't know about > appended tags so will always prepend a second tag where an > appended tag exists. Yes. I fully understand that. You are the one talking about advanced features of 2.4. (Note there is a guide for scanning for tags in the 2.4 spec). I am not sure what you are trying to do, is this a tool for your personal use? Are you trying to make widely-readable tags? Etc. > The usefulness of the footer is for scanning backward. The backward scanner > doesn't care about the flag because he's going to skip footer->tagSize > backward > once he identifies the footer. The scanner doesn't need the footer flag. > It already knows the footer exists. You forget about the case where a file is streamed, the player receiveing the stream wants to know that there may be a tag following. Anyway, it may be silly, but it is already out there in the spec. -ben --------------------------------------------------------------------- To unsubscribe, e-mail: id3v2-unsubscribe at id3.org For additional commands, e-mail: id3v2-help at id3.org From tony at avic-tech.com Fri Nov 10 01:56:19 2006 From: tony at avic-tech.com (Tony) Date: Fri, 10 Nov 2006 17:56:19 +0800 Subject: About the text string question. Message-ID: <006101c704ae$78b88e10$a801a8c0@tony4ba2890f52> Hi all, Hello all of you. My name is Tony. I am coming from Malaysia. Nice to meet all of you. Recently, I study about ID3 format information. I've read over the id3v2.4.0-structure.txt and I am not so sure about the usage of the text string as I read the Chapter 4. ID3v2 frames overview. In fact, I don't quite understand the following paragraph: If nothing else is said, strings, including numeric strings and URLs [URL], are represented as ISO-8859-1 [ISO-8859-1] characters in the range $20 - $FF. Such strings are represented in frame descriptions as , or if newlines are allowed. If nothing else is said newline character is forbidden. In ISO-8859-1 a newline is represented, when allowed, with $0A only. Frames that allow different types of text encoding contains a text encoding description byte. Possible encodings: $00 ISO-8859-1 [ISO-8859-1]. Terminated with $00. $01 UTF-16 [UTF-16] encoded Unicode [UNICODE] with BOM. All strings in the same frame SHALL have the same byteorder. Terminated with $00 00. $02 UTF-16BE [UTF-16] encoded Unicode [UNICODE] without BOM. Terminated with $00 00. $03 UTF-8 [UTF-8] encoded Unicode [UNICODE]. Terminated with $00. Strings dependent on encoding are represented in frame descriptions as , or if newlines are allowed. Any empty strings of type $01 which are NULL-terminated may have the Unicode BOM followed by a Unicode NULL ($FF FE 00 00 or $FE FF 00 00).My question is : 1. What is the format of , or ? 2. How is the four types of text will be written in the mp3 files? What is the starting byte(s) and end byte(s)? 3. Do you have any example about this kind of mp3? I've some mp3 file but the text string format is always starting with a zero and the following bytes are always the DBCS(Double Byte Character Set) code, like big5, jis or others. Anyway, I hope someone can help me to crack my troubles. Thank you very much. Tony Teo -------------- next part -------------- An HTML attachment was scrubbed... URL: From jmartin92 at comcast.net Wed Nov 22 07:45:32 2006 From: jmartin92 at comcast.net (Jim) Date: Wed, 22 Nov 2006 10:45:32 -0500 Subject: [ID3 Dev] Why is footer not included in total size? References: <4562F6C1.9090903@kde.org> <00c001c70dcb$5de7e830$6501a8c0@xp1800desk> <45642007.8070008@fastmail.fm> Message-ID: <003001c70e4d$4faf7d00$6501a8c0@xp1800desk> I think some of those tags could be useful but I also think we would want to have some more complex example/sample tags, both to test proper reading of a tag and to test whether a reader can catch bad tags and how it handles them. (I think creating the set of bad tags would be much more complex because there could be many possible conditions to be tested. I'm thinking of starting with some simple cases like repeating a frame that should be unique and maybe something like a text frame that contains no encoding.) I think more complicated tags would be useful because one of the first projects I was working on involved reading/writing multiple 'TXXX' frames and I found more than one other reading/writing app that expected TXXX frames to be unique and only have one per tag. Do we have anyone that is volunteering to collects/sort the tags into some kind of compilation? I would be willing to do this but I am hoping that perhaps there is someone out there with a more thorough knowledge of ID3v2 tags that could be in charge (and I could still help). I readily admit that my knowledge of and experience with ID3v2 tags is mostly limited to the text information frames. Or perhaps we could merge this with the wiki project that Ben Bennett was talking about to provide a better forum for submission of sample tags as well as discussion about proper handling for some of the gray areas. (This mailing list is useful but with so many possible topics spinning off from these tags I think an online forum would be a better way to manage the discussions and avoid flooding this mailing list.) And I would hope for at least a little involvement from some of the people running or helping with the id3.org website. (This project could perhaps keep a more up to date list of non-compliant software.) Jim ----- Original Message ----- From: "Paul Taylor" To: Sent: Wednesday, November 22, 2006 5:01 AM Subject: Re: [ID3 Dev] Why is footer not included in total size? > Within the opensource jaudiotagger project > (https://jaudiotagger.dev.java.net/) I do some automatic testing, and as > part of this we have some test mp3 files (testdata) and some test id3 > tags (testtagdata) which we add to an mp3 at testing time to test > conformance. I certainly hope to increase the number of testtags and > would appreciate any help, the test tags could be used for conformance > in any project only the testing mechanism itself is tied to > jaudiotagger. Curently the id3 files have been extracted from mp3 files > but my idea time permitting would be in the first instance to create a > series of very simple tags, each containing a single frame to test > reading of frames, testing writing of frames is a bit more involved. > > Paul > > Jim wrote: > > Even if a comprehensive test suite was not created, I think it would still > > be better to have more example tags/files to use for testing a particular > > app. Perhaps someone could be in charge of compiling submissions from > > developers or other people that submit tags for use in testing? (That > > person would have to have a thorough knowledge of the spec/standards. > > Perhaps someone that has developed or is developing a fully compliant ID3v2 > > application?) If this project was started now, eventually it could claim to > > be a comprehensive set of example tags once enough submissions were > > received. > > > > And if the order that the frames are written is carefully controlled, is > > there something else that would cause a written tag to not be bit-for-bit > > identical to an example tag? (That's assuming it followed the model of the > > example tag, like having/not having an extended header, using > > unsynchronization, etc.) > > > > Jim > > > > > > ----- Original Message ----- > > From: "Scott Wheeler" > > To: > > Sent: Tuesday, November 21, 2006 7:53 AM > > Subject: Re: [ID3 Dev] Why is footer not included in total size? > > > > > > > >> Ray Manning wrote: > >> > >>> Is Martin Nilsson active on this list? > >>> > >>> > >> I've not seen anything ID3 related from him in years. > >> > >> > >>> Example tags > >>> A comprehensive test suite for all versions of ID3 tags are currently > >>> > > under > > > >>> development. The test suite includes both conforming tags and > >>> > > non-conforming > > > >>> tags so that both standards coformance and software robustness can be > >>> tested. Part of these will be released as example tags while the rest > >>> > > will > > > >>> be sold to cover development and running expenses. If you are > >>> > > interested, > > > >>> contact Martin Nilsson. > >>> > >>> While waiting for the ID3v2 test suite, feel free to try the > >>> > > ID3v1/ID3v1.1 > > > >>> test suite. > >>> > >>> -------------------------------------- > >>> > >>> That seems to imply to me that people have been waiting for example tags > >>> since v1. > >>> > >>> > >> And they'll keep waiting until someone takes up the not-terribly-fun > >> task of creating such a suite. It being a good idea won't make it happen. > >> > >> Even from there you've got a lot of obstacles: > >> > >> - It's going to be hard to get together multiple people that know the > >> spec well to do bit-for-bit compliance checks. > >> - Most implementations don't even claim to do the whole spec. > >> - Writing is much more interesting than reading compliance-wise and > >> it's very difficult to set things up to get bit-for-bit output matches > >> even with compliant implementations. > >> > >> -Scott > >> > >> > >> > >> --------------------------------------------------------------------- > >> To unsubscribe, e-mail: id3v2-unsubscribe at id3.org > >> For additional commands, e-mail: id3v2-help at id3.org > >> > >> > >> > > > > > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: id3v2-unsubscribe at id3.org > > For additional commands, e-mail: id3v2-help at id3.org > > > > > > > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: id3v2-unsubscribe at id3.org > For additional commands, e-mail: id3v2-help at id3.org > > --------------------------------------------------------------------- To unsubscribe, e-mail: id3v2-unsubscribe at id3.org For additional commands, e-mail: id3v2-help at id3.org From ray at homeautomationdev.com Tue Nov 14 09:36:30 2006 From: ray at homeautomationdev.com (Ray Manning) Date: Tue, 14 Nov 2006 09:36:30 -0800 Subject: [ID3 Dev] Why is footer not included in total size? In-Reply-To: <20061114163630.GB22957@ayup.limey.net> Message-ID: > -----Original Message----- > From: Ben Bennett [mailto:fiji at ayup.limey.net] > Sent: Tuesday, November 14, 2006 8:37 AM > To: id3v2 at id3.org > Subject: Re: [ID3 Dev] Why is footer not included in total size? > > > On Tue, Nov 14, 2006 at 02:56:17AM -0800, Ray Manning wrote: > > > > Good point. I was recently wondering the same thing (as well as > why someone > > would want to start a tag search from the end of a file in the first > > place!). > > It lets you append a tag which is way easier than moving all file data > so you can prepend. Perhaps easier, but if most tools don't know about appended tags, and there is a general tendency to avoid appended tags, I question their usefulness. I'd suspect software that adds tags will fail to search a file backward to see if an appended tag already exists and still prepend a new tag (obviously v2.3 software won't know about appended tags and end up prepending a second tag). > > > > I actually contemplated always outputing a footer in the tags I > write since > > it's simple to do and it removes the potential for a false sync signal > > should the last byte of the tag be 0xFF. I decided against it due to the > > potential incompatibility problems. > > Good choice. You can get around the sync problem by always including > padding. You probably want to include padding anyway so that minor > tag changes don't need the whole file to be rewritten. One of the > notes on the spec site (id3.org) suggests padding out to make the tag > be a full block (which is filesystem dependent, but a multiple of 512 > or 1024 makes sense). This comes down to a choice of when to add padding. Do you add more padding if you use up what's there or do you add padding when there isn't enough room to complete the task at hand? I really don't see a reason to add padding if there is enough existing to complete the task at hand. Like you mention, it's easier not to move the file especially if the move is only to pad the tag. > > > I tried to imagine why you might want to exclude the footer > from the size > > but I've come up blank. The closest I've come is that making a > copy of the > > tag at the end of the file can be as simple as a literal copy > of the tag and > > append the 10 byte footer. That should be sufficient for a tag search > > starting from the end of the file but it wouldn't be complete > since, you'd > > have to whack the header flags to indicate the presence of the footer (I > > smell the potential for an inconsistency between the header and footer > > here -- what would it mean to read a footer that doesn't have > the footer bit > > set?). > > I am not sure what you mean by "footer bit". Note that a footer has a Sorry, my inconsistency, I meant the footer _flag_. > different signature, it has "3DI" at the start of the 10 byte footer. > The footer is part of the ID3 tag, so you have: > [header, tag data, padding, footer] > Audio data > ID3v1 tag (if any) > > Of course a prepended tag with a footer is a bit silly. An appended > tag would look like: > Audio data > [header, tag data, padding, footer] > ID3v1 tag (if any) Hmmm... being new to the ID3 world, I haven't seen ID3v1 tags nor is there a spec available (that I can find) on www.id3.org so I suspect it's obsolete? With data (the ID3v1 tag) following the ID3v2.4 appended tag, it makes it that much harder to find the footer (back to scanning). Shouldn't the Id3v1 tag be removed when the Id3v4 tag is written? Never having dealt with the Id3v1 tag, I might be off base here... > > > Please note that you probably don't want to have 2 tags on the > file... either prepend or append. Most tools won't know about > appended tags anyway, so I would just avoid them. Tools will have to know how to find the appended tag if you are to avoid 2 tags in one file. pre-id3v2.4 tools don't know about appended tags so will always prepend a second tag where an appended tag exists. > > > > Assuming one buys into the idea that the header size should include the > > footer, is there any real reason to keep the footer flag? As > far as I can > > tell, that flag is only present to allow you to "fix" the size > calculation > > when skipping the tag. No one is going to be checking that flag > in order to > > verify the 10 bytes following the tag are actually a footer. > The flag does > > give you one more significant bit for verification when searching for a > > footer, but skipping to the header from the footer and > verifying the header > > should be more than sufficient. > > I really don't understand what you are getting at here. If you > produce a footer, you should produce a flag in order to conform to the > spec. If you are just reading the tag, then it is always helpful to > avoid having to scan to find the mpeg data. What I'm getting at here is that I believe the footer flag to be redundant. The usefulness of the footer is for scanning backward. The backward scanner doesn't care about the flag because he's going to skip footer->tagSize backward once he identifies the footer. The scanner doesn't need the footer flag. It already knows the footer exists. The only other tools interested in the footer will be tools that modify the tag or need to skip past it. With the footer size included in the tag size, the skipping becomes trivial (with no knowledge of the footer). The tools that modify a tag will be interested in the footer because they will need to update the size in the footer should they change the tag size. They would need to change the tag size if they were consuming padding in the tag. When consuming padding one can easily calculate the padding available by testing for the existence of a footer in the last 10 bytes of the tag (just as a backward scanner would find it). Note, none of these scenarios require the use of the footer flag making it redundant. - Ray --------------------------------------------------------------------- To unsubscribe, e-mail: id3v2-unsubscribe at id3.org For additional commands, e-mail: id3v2-help at id3.org From jmartin92 at comcast.net Wed Nov 15 22:05:47 2006 From: jmartin92 at comcast.net (Jim) Date: Thu, 16 Nov 2006 01:05:47 -0500 Subject: [ID3 Dev] Why is footer not included in total size? References: Message-ID: <00cd01c70945$48537190$6501a8c0@xp1800desk> Yes, 2.3 and 2.4 both use synsafe integers for the size in the tag header. (As does 2.2) But I was talking about the example that Ben (Allison) gave: > It's easy to imagine, you're done reading the last frame, and then come > across "3DI[0x04]" and assume it's a frame you don't understand, at which > point you read the frame size and, woops, now you're somewhere in the > middle of the file. Here he is talking about encountering the footer and thinking that it is a frame. Then you would read the FRAME size to skip that frame. I was saying that was unlikely to happen because (1) 2.3 (or 2.2) parsers shouldn't be reading 2.4 frames but even if they did try the frame sizes are not stored in the same format (syncsafe in 2.4 and normal in 2.3) so the parser would probably be lost long before it got to the footer, if it ever did, and (2) even a 2.4 parser that does not fully conform should be able to check the footer flag and subtract 10 from the size given in the TAG header ----- Original Message ----- From: "Ray Manning" To: Sent: Thursday, November 16, 2006 12:54 AM Subject: RE: [ID3 Dev] Why is footer not included in total size? > > I agree that that there is no explicit statement > in the spec that states a footer cannot appear on a prepended tag. > The spec only states that padding and footers are mutually exclusive > which only _implies_ a footer shouldn't appear on a prepended tag > but since it is not explicitly stated as ill formated, then you > have to prepare for it. > > Both 2.3 and 2.4 use a syncsafe int in the tag header. The 2.3 > spec just doesn't call it a syncsafe int. > > You might be thinking of the frame sizes which changed from > a normal int in 2.3 to a syncsafe int in 2.4 - along with > the change in the interpretation of the unsynchronisation > scheme (v2.3 is tag based where v2.4 is frame based). > > > - Ray > > > > -----Original Message----- > > From: Jim [mailto:jmartin92 at comcast.net] > > Sent: Wednesday, November 15, 2006 9:23 PM > > To: id3v2 at id3.org > > Subject: Re: [ID3 Dev] Why is footer not included in total size? > > > > > > Well, I can see the possibility of the problem there. However: > > > > I know padding and having a footer are exclusive, but since padding is > > optional for a prepended tag, how does this imply footers should > > not be used > > for prepended tags? (I'm beginning to agree that footers should > > not be used > > on prepended tags but relying on something implied by the spec seems to be > > asking for trouble. If footers should only be used on appended tags it > > would seem better to just update the spec to explicitly say that...and not > > leave it up to interpretation that could cause problems.) > > > > But let's assume for a moment that a footer CAN be added to a > > prepended tag. > > According to the spec, software that encounters a major tag version beyond > > what it understands should skip/ignore the entire tag. (Like a 2.2 parser > > encountering a 2.3 or higher tag or a 2.3 parser encountering a 2.4 or > > higher tag, etc.) How could any software that encounters a tag with a > > footer do this? If it uses the size given by the header and skips ahead > > that many bytes, it would end up exactly at the beginning of the footer > > instead of after it. > > > > I know there is never any guarantee that the size in the header is correct > > and will allow you to skip right to the "real" (meaning how it would be > > without the tag) beginning of the file but here you have a case where a > > properly written tag with a proper size would land you 10 bytes shy of end > > of the tag every time. That seems wrong. (Yes, I know that any decent > > player should check for the sync signal but shouldn't the goal be to avoid > > having to scan for this when you have a properly written tag with > > no "junk" > > data after it?) > > > > The idea that a 2.3 parser would get messed up because it would > > try to read > > this as a frame seems remote. For one thing, as previously stated, a 2.3 > > parser should skip a 2.4 tag entirely. But if it did try to parse the > > frames I would think it would already be hopelessly lost since the size in > > 2.4 frame headers is stored as a syncsafe integer while in 2.3 > > frames it is > > not syncsafe. And for a not fully conforming 2.4 parser it's > > true that this > > could be a problem. But, well, even if it doesn't fully conform to the > > spec, checking a flag bit and subtracting 10 from the given size > > is a pretty > > simple fix. > > > > Jim > > > > ----- Original Message ----- > > From: "Ben Allison" > > To: > > Sent: Wednesday, November 15, 2006 10:47 PM > > Subject: Re: [ID3 Dev] Why is footer not included in total size? > > > > > > > The footer is excluded from the length because it would trip up parsers > > > that aren't expecting it (either because they are ID3v2.3 or > > aren't fully > > > conformant to 2.4). > > > > > > It's easy to imagine, you're done reading the last frame, and then come > > > across "3DI[0x04]" and assume it's a frame you don't > > understand, at which > > > point you read the frame size and, woops, now you're somewhere in the > > > middle of the file. > > > > > > As others have said, footers are meant for appended tags. Although not > > > specifically banned from use on prepended tags, the fact that > > padding and > > > the footer are mutually exclusive implies that it's never meant > > to be used > > > at the beginning. > > > > > > -Ben Allison > > > > > > > Hi. > > > > > > > > I am wondering what the reasoning was behind the size stored > > in ID3v2.4 > > > > tags not including the size of the footer (if present). > > > > > > > > I've been looking through the source code for some utilities for MP3 > > files > > > > and some other audio file types. Many of these utilities use a simple > > > > method for skipping over the ID3v2 tag if it is there. They read the > > > > first 10 bytes of the file, do some simple checking (look for 'ID3', > > check > > > > that version bytes are less than $FF and in some cases check that size > > > > bytes are syncsafe, i.e. < $80) and if it looks like a tag, > > convert the > > > > size and skip that many bytes ahead (+ 10 bytes for header). Most of > > > > these utilities would be broken if the tag has a footer. > > They don't do > > > > any specific version checking or checking of the flags byte. > > > > > > > > If the size stored in ID3v2.4 tags included the footer size (if it is > > > > present), it would make these tags much more backwards compatible. (I > > > > know it is a pretty easy change to add checking for the > > footer flag but > > > > wouldn't it have been better to make it compatible with older > > apps that > > > > don't really need to read the tag, just skip it?) Were there reasons > > > > that came up during development why it was done the way it is? If so, > > I'd > > > > appreciate if someone could share them with me. Or if there is > > somewhere > > > > I can read about this (like some archive of the mailing list) I would > > > > appreciate someone pointing me in the right direction. > > > > > > > > Thanks. > > > > > > > > Jim Martin > > > > > > > > > > > > > --------------------------------------------------------------------- > > > To unsubscribe, e-mail: id3v2-unsubscribe at id3.org > > > For additional commands, e-mail: id3v2-help at id3.org > > > > > > > > > > > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: id3v2-unsubscribe at id3.org > > For additional commands, e-mail: id3v2-help at id3.org > > > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: id3v2-unsubscribe at id3.org > For additional commands, e-mail: id3v2-help at id3.org > > --------------------------------------------------------------------- To unsubscribe, e-mail: id3v2-unsubscribe at id3.org For additional commands, e-mail: id3v2-help at id3.org From andy at andy-k.co.uk Tue Nov 14 01:41:33 2006 From: andy at andy-k.co.uk (Andy) Date: Tue, 14 Nov 2006 09:41:33 +0000 Subject: [ID3 Dev] Why is footer not included in total size? In-Reply-To: <037d01c707cb$7a804290$6501a8c0@xp1800desk> References: <6.2.0.14.2.20061107101949.027fdca8@pop3> <035b01c707bd$abcf6e60$6501a8c0@xp1800desk> <1b3bacd80611140046j66a19265t23c1371485f03d46@mail.gmail.com> <037d01c707cb$7a804290$6501a8c0@xp1800desk> Message-ID: <1b3bacd80611140141k1c81d876o86097cdeccc8de1a@mail.gmail.com> Hmmmm, you are probably correct Jim. One of the major source of problems with the ID3v2 standards is the fact they are so open to interpretation and fail to be explicit is areas such as this. My thoughts have always been this; if the standard does not explicitly state that something is permitted and the failure to do so would lead to backward compatibility issues; then I have taken it as not being permitted (if that makes sense!!!). In this case, I would interpret the standard as not permitting footers for pre-pended tags. Besides, I am not quite sure what benefit there is if a pre-pended tag has a footer. Andy. p.s. sorry about the bluntness before, I had a long trip into work! On 14/11/06, Jim wrote: > > I'm not sure about that. I know that appended tags MUST have a footer > but there is nothing that says a prepended tag can't have a footer. (At > least nothing that I know of. Am I wrong about that?) > > ----- Original Message ----- > *From:* Andy > *To:* id3v2 at id3.org > *Sent:* Tuesday, November 14, 2006 3:46 AM > *Subject:* Re: [ID3 Dev] Why is footer not included in total size? > > I am pretty sure that footers are only to be written to a file when the > tag is appended, not pre-pended. > > > On 14/11/06, Jim < jmartin92 at comcast.net> wrote: > > > > Hi. > > > > I am wondering what the reasoning was behind the size stored in ID3v2.4tags not including the size of the footer (if present). > > > > I've been looking through the source code for some utilities for MP3 > > files and some other audio file types. Many of these utilities use a simple > > method for skipping over the ID3v2 tag if it is there. They read the first > > 10 bytes of the file, do some simple checking (look for 'ID3', check that > > version bytes are less than $FF and in some cases check that size bytes are > > syncsafe, i.e. < $80) and if it looks like a tag, convert the size and > > skip that many bytes ahead (+ 10 bytes for header). Most of these utilities > > would be broken if the tag has a footer. They don't do any specific version > > checking or checking of the flags byte. > > > > If the size stored in ID3v2.4 tags included the footer size (if it is > > present), it would make these tags much more backwards compatible. (I know > > it is a pretty easy change to add checking for the footer flag but wouldn't > > it have been better to make it compatible with older apps that don't really > > need to read the tag, just skip it?) Were there reasons that came up > > during development why it was done the way it is? If so, I'd appreciate if > > someone could share them with me. Or if there is somewhere I can read about > > this (like some archive of the mailing list) I would appreciate someone > > pointing me in the right direction. > > > > Thanks. > > > > Jim Martin > > > > > > > > -- > Andy. > > -- Andy. -------------- next part -------------- An HTML attachment was scrubbed... URL: From wheeler at kde.org Mon Nov 6 17:24:09 2006 From: wheeler at kde.org (Scott Wheeler) Date: Tue, 07 Nov 2006 02:24:09 +0100 Subject: [ID3 Dev] Finding the end of an ID3 Header In-Reply-To: References: Message-ID: <454FE039.90004@kde.org> Robert Sewell wrote: > > Hello, > > I have a need to verify that mp3 files uploaded by our users comply > with certain minimum specs (bit and sample rates, etc.). To get to the > mp3 headers, I first have to check for an ID3 tag, and if found, use > bytes 6-9 to calculate the location of the first mp3 frame. My routine > seems to work in most cases. However, I?ve got one mp3 files that > doesn?t seem to fit the specs, and fails my verification process, > although all mp3 players play the file without a problem. Below are > the first 13 bytes of the file: > > 49 44 33 03 00 00 00 01 79 76 57 4F 41 46 > > If I am interpreting the ID3 specs correctly, the first mp3 frame > should be found at offset 7D00. However, I only find 00 there; the > first mp3 is really at 7EA1. > Yep, your calculations are correct. > Am I missing something? Or did the program that added the ID3 tag > miscalculate the ID3v2 size bytes? If the latter, do all players allow > for mistakes and just start hunting for the 11-bit frame sync? > Being pedantic, the ID3v2 length doesn't indicate where the data starts, it indicates where the tag ends. Until you hit a valid MPEG synch it's just a blob of data. That said, it was probably some tagger that messed things up (apparently not including the padding in the length), but likely your users won't much care since the file seems fine to them. ;-) Basically you do need to look for the MPEG synch. -Scott --------------------------------------------------------------------- To unsubscribe, e-mail: id3v2-unsubscribe at id3.org For additional commands, e-mail: id3v2-help at id3.org From tsorensen at gmail.com Thu Nov 2 08:38:49 2006 From: tsorensen at gmail.com (Tom Sorensen) Date: Thu, 2 Nov 2006 11:38:49 -0500 Subject: [ID3 Dev] ID3v1 <-> ID3v2 In-Reply-To: <454A1DA4.3090308@mevtho.com> References: <454A1DA4.3090308@mevtho.com> Message-ID: <4da424620611020838y1c9ba111g2d8456ee236f3781@mail.gmail.com> If a file has both tags then the information is stored twice. There is no interdependancy, and it's not uncommon for one tag to have different info than the other. On 11/2/06, Thomas MEVEL wrote: > Hi, > I am new to this list, I am from France. Maybe the question has already > been asked. > I would like to know if in a mp3 files what are the relations between > ID3v1 an ID3v2 tags. > I mean are the ID3v2 tags relying on the ID3v1 tags for common > informations or are this informations stored twice in the file ? > > Thanks for your answer, don't hesitate to tell me if you don't > understand what my problem is. > > > Thomas MEVEL > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: id3v2-unsubscribe at id3.org > For additional commands, e-mail: id3v2-help at id3.org > > --------------------------------------------------------------------- To unsubscribe, e-mail: id3v2-unsubscribe at id3.org For additional commands, e-mail: id3v2-help at id3.org From ray at homeautomationdev.com Wed Nov 15 18:55:08 2006 From: ray at homeautomationdev.com (Ray Manning) Date: Wed, 15 Nov 2006 18:55:08 -0800 Subject: [ID3 Dev] Why is footer not included in total size? In-Reply-To: <20061115193745.GA15034@ayup.limey.net> Message-ID: > -----Original Message----- > From: Ben Bennett [mailto:fiji at ayup.limey.net] > Sent: Wednesday, November 15, 2006 11:38 AM > To: id3v2 at id3.org > Subject: Re: [ID3 Dev] Why is footer not included in total size? > > > > Anyway, if you are serious about this we should set up a wiki > somewhere (I can host it I suppose) and make some sample frames that > we can use for conformance testing. Then maintain a compatability > matrix of the various programs with respect to the sample frames. > > We should also open the 2.4 spec up for comments, but restrict it > solely to clarifications. > > I want to make a separate document that updates the programming > guidelines and discusses how to write "safe" tags. > > Comments? Who is with me? > > -ben I'd be all for it but I must admit I'm a systems programmer and don't know much about web programming so wouldn't know where to start. I think getting things written down in a public manner would only help to ensure the longevity and respectability of ID3. - Ray > > --------------------------------------------------------------------- > To unsubscribe, e-mail: id3v2-unsubscribe at id3.org > For additional commands, e-mail: id3v2-help at id3.org > > --------------------------------------------------------------------- To unsubscribe, e-mail: id3v2-unsubscribe at id3.org For additional commands, e-mail: id3v2-help at id3.org From id3v2 at audiott.com Wed Nov 1 03:31:14 2006 From: id3v2 at audiott.com (Michal Vician) Date: Wed, 1 Nov 2006 12:31:14 +0100 (CET) Subject: [ID3 Dev] Example tags In-Reply-To: <454103DF.5090904@email.it> References: <454103DF.5090904@email.it> Message-ID: <37970.195.91.54.86.1162380674.squirrel@webmail-4.domains.sk> > where i can find some "example tags" to test my app? Just create some with WinAMP, ITunes, AudioTT etc. and test the compatibility. --------------------------------------------------------------------- To unsubscribe, e-mail: id3v2-unsubscribe at id3.org For additional commands, e-mail: id3v2-help at id3.org From ray at homeautomationdev.com Wed Nov 15 21:54:57 2006 From: ray at homeautomationdev.com (Ray Manning) Date: Wed, 15 Nov 2006 21:54:57 -0800 Subject: [ID3 Dev] Why is footer not included in total size? In-Reply-To: <006201c7093f$45edf200$6501a8c0@xp1800desk> Message-ID: I agree that that there is no explicit statement in the spec that states a footer cannot appear on a prepended tag. The spec only states that padding and footers are mutually exclusive which only _implies_ a footer shouldn't appear on a prepended tag but since it is not explicitly stated as ill formated, then you have to prepare for it. Both 2.3 and 2.4 use a syncsafe int in the tag header. The 2.3 spec just doesn't call it a syncsafe int. You might be thinking of the frame sizes which changed from a normal int in 2.3 to a syncsafe int in 2.4 - along with the change in the interpretation of the unsynchronisation scheme (v2.3 is tag based where v2.4 is frame based). - Ray > -----Original Message----- > From: Jim [mailto:jmartin92 at comcast.net] > Sent: Wednesday, November 15, 2006 9:23 PM > To: id3v2 at id3.org > Subject: Re: [ID3 Dev] Why is footer not included in total size? > > > Well, I can see the possibility of the problem there. However: > > I know padding and having a footer are exclusive, but since padding is > optional for a prepended tag, how does this imply footers should > not be used > for prepended tags? (I'm beginning to agree that footers should > not be used > on prepended tags but relying on something implied by the spec seems to be > asking for trouble. If footers should only be used on appended tags it > would seem better to just update the spec to explicitly say that...and not > leave it up to interpretation that could cause problems.) > > But let's assume for a moment that a footer CAN be added to a > prepended tag. > According to the spec, software that encounters a major tag version beyond > what it understands should skip/ignore the entire tag. (Like a 2.2 parser > encountering a 2.3 or higher tag or a 2.3 parser encountering a 2.4 or > higher tag, etc.) How could any software that encounters a tag with a > footer do this? If it uses the size given by the header and skips ahead > that many bytes, it would end up exactly at the beginning of the footer > instead of after it. > > I know there is never any guarantee that the size in the header is correct > and will allow you to skip right to the "real" (meaning how it would be > without the tag) beginning of the file but here you have a case where a > properly written tag with a proper size would land you 10 bytes shy of end > of the tag every time. That seems wrong. (Yes, I know that any decent > player should check for the sync signal but shouldn't the goal be to avoid > having to scan for this when you have a properly written tag with > no "junk" > data after it?) > > The idea that a 2.3 parser would get messed up because it would > try to read > this as a frame seems remote. For one thing, as previously stated, a 2.3 > parser should skip a 2.4 tag entirely. But if it did try to parse the > frames I would think it would already be hopelessly lost since the size in > 2.4 frame headers is stored as a syncsafe integer while in 2.3 > frames it is > not syncsafe. And for a not fully conforming 2.4 parser it's > true that this > could be a problem. But, well, even if it doesn't fully conform to the > spec, checking a flag bit and subtracting 10 from the given size > is a pretty > simple fix. > > Jim > > ----- Original Message ----- > From: "Ben Allison" > To: > Sent: Wednesday, November 15, 2006 10:47 PM > Subject: Re: [ID3 Dev] Why is footer not included in total size? > > > > The footer is excluded from the length because it would trip up parsers > > that aren't expecting it (either because they are ID3v2.3 or > aren't fully > > conformant to 2.4). > > > > It's easy to imagine, you're done reading the last frame, and then come > > across "3DI[0x04]" and assume it's a frame you don't > understand, at which > > point you read the frame size and, woops, now you're somewhere in the > > middle of the file. > > > > As others have said, footers are meant for appended tags. Although not > > specifically banned from use on prepended tags, the fact that > padding and > > the footer are mutually exclusive implies that it's never meant > to be used > > at the beginning. > > > > -Ben Allison > > > > > Hi. > > > > > > I am wondering what the reasoning was behind the size stored > in ID3v2.4 > > > tags not including the size of the footer (if present). > > > > > > I've been looking through the source code for some utilities for MP3 > files > > > and some other audio file types. Many of these utilities use a simple > > > method for skipping over the ID3v2 tag if it is there. They read the > > > first 10 bytes of the file, do some simple checking (look for 'ID3', > check > > > that version bytes are less than $FF and in some cases check that size > > > bytes are syncsafe, i.e. < $80) and if it looks like a tag, > convert the > > > size and skip that many bytes ahead (+ 10 bytes for header). Most of > > > these utilities would be broken if the tag has a footer. > They don't do > > > any specific version checking or checking of the flags byte. > > > > > > If the size stored in ID3v2.4 tags included the footer size (if it is > > > present), it would make these tags much more backwards compatible. (I > > > know it is a pretty easy change to add checking for the > footer flag but > > > wouldn't it have been better to make it compatible with older > apps that > > > don't really need to read the tag, just skip it?) Were there reasons > > > that came up during development why it was done the way it is? If so, > I'd > > > appreciate if someone could share them with me. Or if there is > somewhere > > > I can read about this (like some archive of the mailing list) I would > > > appreciate someone pointing me in the right direction. > > > > > > Thanks. > > > > > > Jim Martin > > > > > > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: id3v2-unsubscribe at id3.org > > For additional commands, e-mail: id3v2-help at id3.org > > > > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: id3v2-unsubscribe at id3.org > For additional commands, e-mail: id3v2-help at id3.org > > --------------------------------------------------------------------- To unsubscribe, e-mail: id3v2-unsubscribe at id3.org For additional commands, e-mail: id3v2-help at id3.org From yegong1985 at gmail.com Sun Nov 5 08:57:38 2006 From: yegong1985 at gmail.com (=?UTF-8?B?5aSc5byT?=) Date: Mon, 6 Nov 2006 00:57:38 +0800 Subject: [ID3 Dev] Re:Kipp Gremillion Message-ID: <56111dc30611050857l46582471wa66e1eb0a988e9d8@mail.gmail.com> Thanks for explain, but the "http://www.id3.org/faq.html" said : -------------------------------------------- Q: Where is an ID3v2 tag located in an MP3 file? It is most likely located at the beginning of the file. Look for the marker "ID3" in the first 3 bytes of the file. If it's not there, it could be at the end of the file (if the tag is ID3v2.4). Look for the marker "3DI" 10 bytes from the end of the file, or 10 bytes before the beginning of an ID3v1 tag. -------------------------------------------- -- --- By ??(Yegong) From fiji at ayup.limey.net Sun Nov 5 10:13:19 2006 From: fiji at ayup.limey.net (Ben Bennett) Date: Sun, 5 Nov 2006 13:13:19 -0500 Subject: [ID3 Dev] Re:Kipp Gremillion In-Reply-To: <200611051742.kA5HgoaO029702@ayup.limey.net> References: <56111dc30611050857l46582471wa66e1eb0a988e9d8@mail.gmail.com> <200611051742.kA5HgoaO029702@ayup.limey.net> Message-ID: <20061105181319.GA30313@ayup.limey.net> It is indeed legal. See http://www.id3.org/id3v2.4.0-structure.txt. Section 5 (Tag Location). That said... I would not rely on that working. Any implementation of 2.4 that I have seen has either been incomplete or buggy (e.g. Apple gets the length wrong since it does not write the 2.4 length out in unsynchronized form). If you want to write a "safe" tag that will be read by most things, stick to 2.3. -ben On Sun, Nov 05, 2006 at 11:42:36AM -0600, Kipp Gremillion wrote: > Okay, well I stand corrected. I am sure someone will elaborate. There are > many people on this list with a much better understanding of this. I do > know that most programs tend to write v2.3 rather than v2.4 which may be > related to this. --------------------------------------------------------------------- To unsubscribe, e-mail: id3v2-unsubscribe at id3.org For additional commands, e-mail: id3v2-help at id3.org From mismail at visteon.com Mon Nov 6 21:51:09 2006 From: mismail at visteon.com (Ismail, Mohamed (M.)) Date: Tue, 7 Nov 2006 00:51:09 -0500 Subject: [ID3 Dev] Regarding maximum length of ID3Tag V2 Message-ID: <538D574F1250484EA840C88924E04B5E057031E1@vistap101.vlgdc.visteon.com> Team, Please clarify my questions, What should be the maximum lenth of ID3Tag V2. If there any software available to encode greater size jpeg image into the ID3Tag region. Thanks & Regards, Ismail -------------- next part -------------- An HTML attachment was scrubbed... URL: From jmartin92 at comcast.net Tue Nov 14 10:09:26 2006 From: jmartin92 at comcast.net (Jim) Date: Tue, 14 Nov 2006 13:09:26 -0500 Subject: [ID3 Dev] Why is footer not included in total size? References: Message-ID: <00ad01c70818$3059fe70$6501a8c0@xp1800desk> Some ID3v1 tag information can be found here: http://www.id3.org/id3v1.html While it is has some limitations in size and what information it can contain, it is a much simpler to use tag than ID3v2 so I'm not sure it is quite obsolete. Some files can contain both. I think most tag apps give the user the option of writing both or removing one or the other. (I could be wrong about that.) It is true that tools that don't support or know how to check for appended 2.4 tags will probably end up writing a 2nd prepended tag. That might be a good reason to avoid appended tags for now but hopefully most tools will eventually support and recognize appended tags. And I still think that the footer flag is useful. Sure you can check the last 10 bytes of the tag data to see if it is a footer, but isn't it easier to check one flag bit instead of comparing 10 bytes for the header/footer format? (This method may not confirm that the footer is valid as written, but it does tell you to expect it to be there.) If I'm parsing a tag that contains a footer, I can just subtract 10 bytes from the expected size of the tag data/padding and deal with the footer later, if I need to. (If it is a prepended tag and I do not change the overall size of the tag or the flag byte, I can skip over dealing with the footer entirely.) ----- Original Message ----- From: "Ray Manning" To: Sent: Tuesday, November 14, 2006 12:36 PM Subject: RE: [ID3 Dev] Why is footer not included in total size? > > > > -----Original Message----- > > From: Ben Bennett [mailto:fiji at ayup.limey.net] > > Sent: Tuesday, November 14, 2006 8:37 AM > > To: id3v2 at id3.org > > Subject: Re: [ID3 Dev] Why is footer not included in total size? > > > > > > On Tue, Nov 14, 2006 at 02:56:17AM -0800, Ray Manning wrote: > > > > > > Good point. I was recently wondering the same thing (as well as > > why someone > > > would want to start a tag search from the end of a file in the first > > > place!). > > > > It lets you append a tag which is way easier than moving all file data > > so you can prepend. > > Perhaps easier, but if most tools don't know about appended tags, > and there is a general tendency to avoid appended tags, I question > their usefulness. I'd suspect software that adds tags will fail to > search a file backward to see if an appended tag already exists and > still prepend a new tag (obviously v2.3 software won't know about > appended tags and end up prepending a second tag). > > > > > > > > > I actually contemplated always outputing a footer in the tags I > > write since > > > it's simple to do and it removes the potential for a false sync signal > > > should the last byte of the tag be 0xFF. I decided against it due to the > > > potential incompatibility problems. > > > > Good choice. You can get around the sync problem by always including > > padding. You probably want to include padding anyway so that minor > > tag changes don't need the whole file to be rewritten. One of the > > notes on the spec site (id3.org) suggests padding out to make the tag > > be a full block (which is filesystem dependent, but a multiple of 512 > > or 1024 makes sense). > > This comes down to a choice of when to add padding. Do you add more > padding if you use up what's there or do you add padding when there > isn't enough room to complete the task at hand? I really don't see > a reason to add padding if there is enough existing to complete the > task at hand. Like you mention, it's easier not to move the file > especially if the move is only to pad the tag. > > > > > > I tried to imagine why you might want to exclude the footer > > from the size > > > but I've come up blank. The closest I've come is that making a > > copy of the > > > tag at the end of the file can be as simple as a literal copy > > of the tag and > > > append the 10 byte footer. That should be sufficient for a tag search > > > starting from the end of the file but it wouldn't be complete > > since, you'd > > > have to whack the header flags to indicate the presence of the footer (I > > > smell the potential for an inconsistency between the header and footer > > > here -- what would it mean to read a footer that doesn't have > > the footer bit > > > set?). > > > > I am not sure what you mean by "footer bit". Note that a footer has a > > > Sorry, my inconsistency, I meant the footer _flag_. > > > > different signature, it has "3DI" at the start of the 10 byte footer. > > The footer is part of the ID3 tag, so you have: > > [header, tag data, padding, footer] > > Audio data > > ID3v1 tag (if any) > > > > Of course a prepended tag with a footer is a bit silly. An appended > > tag would look like: > > Audio data > > [header, tag data, padding, footer] > > ID3v1 tag (if any) > > > Hmmm... being new to the ID3 world, I haven't seen ID3v1 tags nor is > there a spec available (that I can find) on www.id3.org so I suspect > it's obsolete? With data (the ID3v1 tag) following the ID3v2.4 appended > tag, it makes it that much harder to find the footer (back to scanning). > > Shouldn't the Id3v1 tag be removed when the Id3v4 tag is written? Never > having dealt with the Id3v1 tag, I might be off base here... > > > > > > > Please note that you probably don't want to have 2 tags on the > > file... either prepend or append. Most tools won't know about > > appended tags anyway, so I would just avoid them. > > Tools will have to know how to find the appended tag if you are to > avoid 2 tags in one file. pre-id3v2.4 tools don't know about > appended tags so will always prepend a second tag where an > appended tag exists. > > > > > > > > Assuming one buys into the idea that the header size should include the > > > footer, is there any real reason to keep the footer flag? As > > far as I can > > > tell, that flag is only present to allow you to "fix" the size > > calculation > > > when skipping the tag. No one is going to be checking that flag > > in order to > > > verify the 10 bytes following the tag are actually a footer. > > The flag does > > > give you one more significant bit for verification when searching for a > > > footer, but skipping to the header from the footer and > > verifying the header > > > should be more than sufficient. > > > > I really don't understand what you are getting at here. If you > > produce a footer, you should produce a flag in order to conform to the > > spec. If you are just reading the tag, then it is always helpful to > > avoid having to scan to find the mpeg data. > > What I'm getting at here is that I believe the footer flag to be redundant. > > The usefulness of the footer is for scanning backward. The backward scanner > doesn't care about the flag because he's going to skip footer->tagSize > backward > once he identifies the footer. The scanner doesn't need the footer flag. > It already knows the footer exists. > > The only other tools interested in the footer will be tools that modify > the tag or need to skip past it. With the footer size included in the > tag size, the skipping becomes trivial (with no knowledge of the footer). > > The tools that modify a tag will be interested in the footer because > they will need to update the size in the footer should they change the > tag size. They would need to change the tag size if they were consuming > padding in the tag. When consuming padding one can easily calculate the > padding available by testing for the existence of a footer in the last 10 > bytes of the tag (just as a backward scanner would find it). > > Note, none of these scenarios require the use of the footer flag making > it redundant. > > > - Ray > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: id3v2-unsubscribe at id3.org > For additional commands, e-mail: id3v2-help at id3.org > > --------------------------------------------------------------------- To unsubscribe, e-mail: id3v2-unsubscribe at id3.org For additional commands, e-mail: id3v2-help at id3.org From bmearns at coe.neu.edu Thu Nov 16 04:51:28 2006 From: bmearns at coe.neu.edu (Brian Mearns) Date: Thu, 16 Nov 2006 07:51:28 -0500 Subject: [ID3 Dev] re-tagging wav files In-Reply-To: References: Message-ID: <455C5ED0.5050703@coe.neu.edu> There's plenty of free utilities on the web for bath converting to mp3. Don't know what they are off hand, but I know they're there. As far as a batch id3 edit from a spread sheet; I've never seen or heard of such a thing. It could exist in some id3 tool, but I'd be pretty surprised. If you know how to program, the easiest thing might be to download one of the id3 code libraries from id3.org and write a util to do it. -Brian synaptic fusion wrote: > I recently received a hard drive with wav files that are listed by > catalogue number and would like to know if there is a way to bulk > encode these files to mp3 and link the appropriate meta data from an > excel spreedsheet. Thank in advance. > > ~Joshua > > --------------------------------------------------------------------- > To unsubscribe, e-mail: id3v2-unsubscribe at id3.org > For additional commands, e-mail: id3v2-help at id3.org > --------------------------------------------------------------------- To unsubscribe, e-mail: id3v2-unsubscribe at id3.org For additional commands, e-mail: id3v2-help at id3.org From paul_t100 at fastmail.fm Tue Nov 21 04:05:21 2006 From: paul_t100 at fastmail.fm (Paul Taylor) Date: Tue, 21 Nov 2006 12:05:21 +0000 Subject: [ID3 Dev] Why is footer not included in total size? In-Reply-To: <20061115193745.GA15034@ayup.limey.net> References: <20061114202159.GA31545@ayup.limey.net> <20061115193745.GA15034@ayup.limey.net> Message-ID: <4562EB81.4040004@fastmail.fm> > Anyway, if you are serious about this we should set up a wiki > somewhere (I can host it I suppose) and make some sample frames that > we can use for conformance testing. Then maintain a compatability > matrix of the various programs with respect to the sample frames. > > We should also open the 2.4 spec up for comments, but restrict it > solely to clarifications. > > I want to make a separate document that updates the programming > guidelines and discusses how to write "safe" tags. > > Comments? Who is with me? > > -ben > > --------------------------------------------------------------------- > To unsubscribe, e-mail: id3v2-unsubscribe at id3.org > For additional commands, e-mail: id3v2-help at id3.org > > Yes a library of conforming tags/frames is what is missing from ID3, I have suggested the idea before but got no response. There must be a business opportunity here actually create a library and then offer to test an application for conformance for a small fee, and if it passes allow them to use some logo or something, but it would have to be run by id3.org (whoever that is), or at least authorised by id3 to have any worth. Paul Taylor --------------------------------------------------------------------- To unsubscribe, e-mail: id3v2-unsubscribe at id3.org For additional commands, e-mail: id3v2-help at id3.org From tony at avic-tech.com Fri Nov 17 00:09:34 2006 From: tony at avic-tech.com (Tony) Date: Fri, 17 Nov 2006 16:09:34 +0800 Subject: [ID3 dev] About the text string question. Message-ID: <003601c70a1f$b77f36a0$a901a8c0@tony4ba2890f52> Hi all, Hello all of you. My name is Tony. I am coming from Malaysia. Nice to meet all of you. Recently, I study about ID3 format information. I've read over the id3v2.4.0-structure.txt and I am not so sure about the usage of the text string as I read the Chapter 4. ID3v2 frames overview. In fact, I don't quite understand the following paragraph: If nothing else is said, strings, including numeric strings and URLs [URL], are represented as ISO-8859-1 [ISO-8859-1] characters in the range $20 - $FF. Such strings are represented in frame descriptions as , or if newlines are allowed. If nothing else is said newline character is forbidden. In ISO-8859-1 a newline is represented, when allowed, with $0A only. Frames that allow different types of text encoding contains a text encoding description byte. Possible encodings: $00 ISO-8859-1 [ISO-8859-1]. Terminated with $00. $01 UTF-16 [UTF-16] encoded Unicode [UNICODE] with BOM. All strings in the same frame SHALL have the same byteorder. Terminated with $00 00. $02 UTF-16BE [UTF-16] encoded Unicode [UNICODE] without BOM. Terminated with $00 00. $03 UTF-8 [UTF-8] encoded Unicode [UNICODE]. Terminated with $00. Strings dependent on encoding are represented in frame descriptions as , or if newlines are allowed. Any empty strings of type $01 which are NULL-terminated may have the Unicode BOM followed by a Unicode NULL ($FF FE 00 00 or $FE FF 00 00).My question is : 1. What is the format of , or ? 2. How is the four types of text will be written in the mp3 files? What is the starting byte(s) and end byte(s)? 3. Do you have any example about this kind of mp3? I've some mp3 file but the text string format is always starting with a zero and the following bytes are always the DBCS(Double Byte Character Set) code, like big5, jis or others. Anyway, I hope someone can help me to crack my troubles. Thank you very much. Tony Teo -------------- next part -------------- An HTML attachment was scrubbed... URL: From andrea_moro at email.it Thu Nov 2 09:06:28 2006 From: andrea_moro at email.it (Andrea Moro) Date: Thu, 02 Nov 2006 18:06:28 +0100 Subject: [ID3 Dev] Example tags In-Reply-To: <4548AF4B.2050502@fastmail.fm> References: <454103DF.5090904@email.it> <37970.195.91.54.86.1162380674.squirrel@webmail-4.domains.sk> <4548AF4B.2050502@fastmail.fm> Message-ID: <454A2594.3040304@email.it> if the id3 is an old technology, what is the actual best technology? Paul Taylor wrote: > The trouble with this approach is that individuals tend to create tags > the same way, but because ID3 is so complicated they do not actually > test many valid scenarios. A comprehensive set of ID3 tags would be > great but is probably a pipe dream because ID3 is quite an old > technology now. --------------------------------------------------------------------- To unsubscribe, e-mail: id3v2-unsubscribe at id3.org For additional commands, e-mail: id3v2-help at id3.org From paul_t100 at fastmail.fm Thu Nov 2 13:07:05 2006 From: paul_t100 at fastmail.fm (Paul Taylor) Date: Thu, 02 Nov 2006 21:07:05 +0000 Subject: [ID3 Dev] Example tags In-Reply-To: <454A2594.3040304@email.it> References: <454103DF.5090904@email.it> <37970.195.91.54.86.1162380674.squirrel@webmail-4.domains.sk> <4548AF4B.2050502@fastmail.fm> <454A2594.3040304@email.it> Message-ID: <454A5DF9.70907@fastmail.fm> The point is that MP3 is old technology it has been usurped by MP4 and also some lossless formats, and many of these format have their own meta-data format and do not use ID3. MP3/ID3 are going to be round for some time yet but I cannot imagine anyone starting now to put a lot of investment into creating a tag test library. Andrea Moro wrote: > if the id3 is an old technology, what is the actual best technology? > > Paul Taylor wrote: > >> The trouble with this approach is that individuals tend to create tags >> the same way, but because ID3 is so complicated they do not actually >> test many valid scenarios. A comprehensive set of ID3 tags would be >> great but is probably a pipe dream because ID3 is quite an old >> technology now. >> > > --------------------------------------------------------------------- > To unsubscribe, e-mail: id3v2-unsubscribe at id3.org > For additional commands, e-mail: id3v2-help at id3.org > > > > --------------------------------------------------------------------- To unsubscribe, e-mail: id3v2-unsubscribe at id3.org For additional commands, e-mail: id3v2-help at id3.org From ray at homeautomationdev.com Wed Nov 15 07:02:22 2006 From: ray at homeautomationdev.com (Ray Manning) Date: Wed, 15 Nov 2006 07:02:22 -0800 Subject: [ID3 Dev] Why is footer not included in total size? In-Reply-To: <20061114202159.GA31545@ayup.limey.net> Message-ID: > -----Original Message----- > From: Ben Bennett [mailto:fiji at ayup.limey.net] > Sent: Tuesday, November 14, 2006 12:22 PM > To: id3v2 at id3.org > Subject: Re: [ID3 Dev] Why is footer not included in total size? > > > > Perhaps easier, but if most tools don't know about appended tags, > > and there is a general tendency to avoid appended tags, I question > > their usefulness. I'd suspect software that adds tags will fail to > > search a file backward to see if an appended tag already exists and > > still prepend a new tag (obviously v2.3 software won't know about > > appended tags and end up prepending a second tag). > > Yes. The spec is stale with respect to usage. If you stray too far > from 2.3 then you get in trouble. I guess I'll be asking more questions here along my ID3 tag journey then. Having just recently started looking at the specs, I assumed 2.4 would be the place to start. From what I'm learning from this discussion and and reading the 2.3 and 2.4 specs, I now see my assumption was invalid. It would be helpful, I think, if this mailing list was archived somewhere so new comers like me might gain better insight into the state of things. I tend to believe that the more senior members of this list have seen many repeated topics/issues. Something as simple as forwarding this mailing list to a nntp server and having Google do the archive would be helpful. > > If you want to write something that almost everything can read, then > write a ID3v2.3 tag on the front (the only choice) and a ID3v1 tag on > the end (again, the only choice). Also only a subset of tags are > reliably supported. Populating too much can get you in trouble with > some tools too... Thanks for the tip. That helps focus my efforts. Can you shed some light on what problems you've encountered with adding too many tags? I do realize that not all tags will be interpreted the same way (for example, I've seen a "Comedy" track that listed the comedian as the composer). Is this the main issue or have you expreienced problems with the raw size of the tag? > > > Tools will have to know how to find the appended tag if you are to > > avoid 2 tags in one file. pre-id3v2.4 tools don't know about > > appended tags so will always prepend a second tag where an > > appended tag exists. > > Yes. I fully understand that. You are the one talking about advanced > features of 2.4. (Note there is a guide for scanning for tags in the > 2.4 spec). I am not sure what you are trying to do, is this a tool > for your personal use? Are you trying to make widely-readable tags? Etc. I didn't realize appended tags were an "advanced" feature. If you are talking about the suggestions for scanning in section "5. Tag location", then yes I did see that. The word "unembedded" gave my stomach a flip. What is an embedded frame? I'm guessing it's embedded in an audio stream in order for players to pick up frames from a stream? The tool I'm working on is for managing a large music database and importing music into it. I need to be able to read tags from multiple sources and file formats as well as write tags that can be widely understood. > > > The usefulness of the footer is for scanning backward. The > backward scanner > > doesn't care about the flag because he's going to skip footer->tagSize > > backward > > once he identifies the footer. The scanner doesn't need the > footer flag. > > It already knows the footer exists. > > You forget about the case where a file is streamed, the player > receiveing the stream wants to know that there may be a tag following. > I don't understand what you're saying here. How would the player receiving a stream, know a tag follows without seeing the tag header first? I'd assume a player would be looking for a header and not a footer. I'm also thinking this is where the SEEK frame might be useful. > Anyway, it may be silly, but it is already out there in the spec. > Agreed. That doesn't mean it can't be improved upon the next version. It almost sounds to me like 2.4 is reluctantly being accepted due to some of the issues it introduces. I certainly don't get the impression people are in a hurry to move to 2.4 which is somewhat surprising to me given a 6 year old standard and the increased exposure of mp3 in that same period. - Ray > -ben > > --------------------------------------------------------------------- > To unsubscribe, e-mail: id3v2-unsubscribe at id3.org > For additional commands, e-mail: id3v2-help at id3.org > > --------------------------------------------------------------------- To unsubscribe, e-mail: id3v2-unsubscribe at id3.org For additional commands, e-mail: id3v2-help at id3.org From paul_t100 at fastmail.fm Wed Nov 22 02:01:43 2006 From: paul_t100 at fastmail.fm (Paul Taylor) Date: Wed, 22 Nov 2006 10:01:43 +0000 Subject: [ID3 Dev] Why is footer not included in total size? In-Reply-To: <00c001c70dcb$5de7e830$6501a8c0@xp1800desk> References: <4562F6C1.9090903@kde.org> <00c001c70dcb$5de7e830$6501a8c0@xp1800desk> Message-ID: <45642007.8070008@fastmail.fm> Within the opensource jaudiotagger project (https://jaudiotagger.dev.java.net/) I do some automatic testing, and as part of this we have some test mp3 files (testdata) and some test id3 tags (testtagdata) which we add to an mp3 at testing time to test conformance. I certainly hope to increase the number of testtags and would appreciate any help, the test tags could be used for conformance in any project only the testing mechanism itself is tied to jaudiotagger. Curently the id3 files have been extracted from mp3 files but my idea time permitting would be in the first instance to create a series of very simple tags, each containing a single frame to test reading of frames, testing writing of frames is a bit more involved. Paul Jim wrote: > Even if a comprehensive test suite was not created, I think it would still > be better to have more example tags/files to use for testing a particular > app. Perhaps someone could be in charge of compiling submissions from > developers or other people that submit tags for use in testing? (That > person would have to have a thorough knowledge of the spec/standards. > Perhaps someone that has developed or is developing a fully compliant ID3v2 > application?) If this project was started now, eventually it could claim to > be a comprehensive set of example tags once enough submissions were > received. > > And if the order that the frames are written is carefully controlled, is > there something else that would cause a written tag to not be bit-for-bit > identical to an example tag? (That's assuming it followed the model of the > example tag, like having/not having an extended header, using > unsynchronization, etc.) > > Jim > > > ----- Original Message ----- > From: "Scott Wheeler" > To: > Sent: Tuesday, November 21, 2006 7:53 AM > Subject: Re: [ID3 Dev] Why is footer not included in total size? > > > >> Ray Manning wrote: >> >>> Is Martin Nilsson active on this list? >>> >>> >> I've not seen anything ID3 related from him in years. >> >> >>> Example tags >>> A comprehensive test suite for all versions of ID3 tags are currently >>> > under > >>> development. The test suite includes both conforming tags and >>> > non-conforming > >>> tags so that both standards coformance and software robustness can be >>> tested. Part of these will be released as example tags while the rest >>> > will > >>> be sold to cover development and running expenses. If you are >>> > interested, > >>> contact Martin Nilsson. >>> >>> While waiting for the ID3v2 test suite, feel free to try the >>> > ID3v1/ID3v1.1 > >>> test suite. >>> >>> -------------------------------------- >>> >>> That seems to imply to me that people have been waiting for example tags >>> since v1. >>> >>> >> And they'll keep waiting until someone takes up the not-terribly-fun >> task of creating such a suite. It being a good idea won't make it happen. >> >> Even from there you've got a lot of obstacles: >> >> - It's going to be hard to get together multiple people that know the >> spec well to do bit-for-bit compliance checks. >> - Most implementations don't even claim to do the whole spec. >> - Writing is much more interesting than reading compliance-wise and >> it's very difficult to set things up to get bit-for-bit output matches >> even with compliant implementations. >> >> -Scott >> >> >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: id3v2-unsubscribe at id3.org >> For additional commands, e-mail: id3v2-help at id3.org >> >> >> > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: id3v2-unsubscribe at id3.org > For additional commands, e-mail: id3v2-help at id3.org > > > > --------------------------------------------------------------------- To unsubscribe, e-mail: id3v2-unsubscribe at id3.org For additional commands, e-mail: id3v2-help at id3.org From ray at homeautomationdev.com Tue Nov 21 04:17:39 2006 From: ray at homeautomationdev.com (Ray Manning) Date: Tue, 21 Nov 2006 04:17:39 -0800 Subject: [ID3 Dev] Why is footer not included in total size? In-Reply-To: <4562EB81.4040004@fastmail.fm> Message-ID: Is Martin Nilsson active on this list? From http://www.id3.org/develop.html: ------------------------------------- Example tags A comprehensive test suite for all versions of ID3 tags are currently under development. The test suite includes both conforming tags and non-conforming tags so that both standards coformance and software robustness can be tested. Part of these will be released as example tags while the rest will be sold to cover development and running expenses. If you are interested, contact Martin Nilsson. While waiting for the ID3v2 test suite, feel free to try the ID3v1/ID3v1.1 test suite. -------------------------------------- That seems to imply to me that people have been waiting for example tags since v1. - Ray > -----Original Message----- > From: Paul Taylor [mailto:paul_t100 at fastmail.fm] > Sent: Tuesday, November 21, 2006 4:05 AM > To: id3v2 at id3.org > Subject: Re: [ID3 Dev] Why is footer not included in total size? > > Yes a library of conforming tags/frames is what is missing from ID3, I > have suggested the idea before but got no response. There must be a > business opportunity here actually create a library and then offer to > test an application for > conformance for a small fee, and if it passes allow them to use some > logo or something, but it would have to be run by id3.org (whoever that > is), or at least authorised by id3 to have any worth. > > Paul Taylor > > --------------------------------------------------------------------- > To unsubscribe, e-mail: id3v2-unsubscribe at id3.org > For additional commands, e-mail: id3v2-help at id3.org > > --------------------------------------------------------------------- To unsubscribe, e-mail: id3v2-unsubscribe at id3.org For additional commands, e-mail: id3v2-help at id3.org From thomas.prog at mevtho.com Thu Nov 2 08:32:36 2006 From: thomas.prog at mevtho.com (Thomas MEVEL) Date: Thu, 02 Nov 2006 17:32:36 +0100 Subject: [ID3 Dev] ID3v1 <-> ID3v2 Message-ID: <454A1DA4.3090308@mevtho.com> Hi, I am new to this list, I am from France. Maybe the question has already been asked. I would like to know if in a mp3 files what are the relations between ID3v1 an ID3v2 tags. I mean are the ID3v2 tags relying on the ID3v1 tags for common informations or are this informations stored twice in the file ? Thanks for your answer, don't hesitate to tell me if you don't understand what my problem is. Thomas MEVEL --------------------------------------------------------------------- To unsubscribe, e-mail: id3v2-unsubscribe at id3.org For additional commands, e-mail: id3v2-help at id3.org From jmartin92 at comcast.net Mon Nov 13 23:21:49 2006 From: jmartin92 at comcast.net (Jim) Date: Tue, 14 Nov 2006 02:21:49 -0500 Subject: [ID3 Dev] Why is footer not included in total size? References: <6.2.0.14.2.20061107101949.027fdca8@pop3> Message-ID: <035b01c707bd$abcf6e60$6501a8c0@xp1800desk> Hi. I am wondering what the reasoning was behind the size stored in ID3v2.4 tags not including the size of the footer (if present). I've been looking through the source code for some utilities for MP3 files and some other audio file types. Many of these utilities use a simple method for skipping over the ID3v2 tag if it is there. They read the first 10 bytes of the file, do some simple checking (look for 'ID3', check that version bytes are less than $FF and in some cases check that size bytes are syncsafe, i.e. < $80) and if it looks like a tag, convert the size and skip that many bytes ahead (+ 10 bytes for header). Most of these utilities would be broken if the tag has a footer. They don't do any specific version checking or checking of the flags byte. If the size stored in ID3v2.4 tags included the footer size (if it is present), it would make these tags much more backwards compatible. (I know it is a pretty easy change to add checking for the footer flag but wouldn't it have been better to make it compatible with older apps that don't really need to read the tag, just skip it?) Were there reasons that came up during development why it was done the way it is? If so, I'd appreciate if someone could share them with me. Or if there is somewhere I can read about this (like some archive of the mailing list) I would appreciate someone pointing me in the right direction. Thanks. Jim Martin -------------- next part -------------- An HTML attachment was scrubbed... URL: From ray at homeautomationdev.com Tue Nov 14 02:56:17 2006 From: ray at homeautomationdev.com (Ray Manning) Date: Tue, 14 Nov 2006 02:56:17 -0800 Subject: [ID3 Dev] Why is footer not included in total size? In-Reply-To: <035b01c707bd$abcf6e60$6501a8c0@xp1800desk> Message-ID: Good point. I was recently wondering the same thing (as well as why someone would want to start a tag search from the end of a file in the first place!). The footer does seem like it may, in some situation, for someone, solve a problem but IMO, it shouldn't foist knowledge of itself into the interpretation of the size field. To interpret the size field, you now have to understand the flags as well as choose the proper calculation in order to determine how many bytes are included in the tag. Overly complex, and as you mention a breaking change. I see no reason why it couldn't have been made part of the size field and have a fixed position at the last 10 bytes of the header. I actually contemplated always outputing a footer in the tags I write since it's simple to do and it removes the potential for a false sync signal should the last byte of the tag be 0xFF. I decided against it due to the potential incompatibility problems. I tried to imagine why you might want to exclude the footer from the size but I've come up blank. The closest I've come is that making a copy of the tag at the end of the file can be as simple as a literal copy of the tag and append the 10 byte footer. That should be sufficient for a tag search starting from the end of the file but it wouldn't be complete since, you'd have to whack the header flags to indicate the presence of the footer (I smell the potential for an inconsistency between the header and footer here -- what would it mean to read a footer that doesn't have the footer bit set?). Assuming one buys into the idea that the header size should include the footer, is there any real reason to keep the footer flag? As far as I can tell, that flag is only present to allow you to "fix" the size calculation when skipping the tag. No one is going to be checking that flag in order to verify the 10 bytes following the tag are actually a footer. The flag does give you one more significant bit for verification when searching for a footer, but skipping to the header from the footer and verifying the header should be more than sufficient. - Ray -----Original Message----- From: Jim [mailto:jmartin92 at comcast.net] Sent: Monday, November 13, 2006 11:22 PM To: id3v2 at id3.org Subject: [ID3 Dev] Why is footer not included in total size? Hi. I am wondering what the reasoning was behind the size stored in ID3v2.4 tags not including the size of the footer (if present). I've been looking through the source code for some utilities for MP3 files and some other audio file types. Many of these utilities use a simple method for skipping over the ID3v2 tag if it is there. They read the first 10 bytes of the file, do some simple checking (look for 'ID3', check that version bytes are less than $FF and in some cases check that size bytes are syncsafe, i.e. < $80) and if it looks like a tag, convert the size and skip that many bytes ahead (+ 10 bytes for header). Most of these utilities would be broken if the tag has a footer. They don't do any specific version checking or checking of the flags byte. If the size stored in ID3v2.4 tags included the footer size (if it is present), it would make these tags much more backwards compatible. (I know it is a pretty easy change to add checking for the footer flag but wouldn't it have been better to make it compatible with older apps that don't really need to read the tag, just skip it?) Were there reasons that came up during development why it was done the way it is? If so, I'd appreciate if someone could share them with me. Or if there is somewhere I can read about this (like some archive of the mailing list) I would appreciate someone pointing me in the right direction. Thanks. Jim Martin -------------- next part -------------- An HTML attachment was scrubbed... URL: From paul_t100 at fastmail.fm Wed Nov 1 06:29:31 2006 From: paul_t100 at fastmail.fm (Paul Taylor) Date: Wed, 01 Nov 2006 14:29:31 +0000 Subject: [ID3 Dev] Example tags In-Reply-To: <37970.195.91.54.86.1162380674.squirrel@webmail-4.domains.sk> References: <454103DF.5090904@email.it> <37970.195.91.54.86.1162380674.squirrel@webmail-4.domains.sk> Message-ID: <4548AF4B.2050502@fastmail.fm> The trouble with this approach is that individuals tend to create tags the same way, but because ID3 is so complicated they do not actually test many valid scenarios. A comprehensive set of ID3 tags would be great but is probably a pipe dream because ID3 is quite an old technology now. Michal Vician wrote: >> where i can find some "example tags" to test my app? >> > > Just create some with WinAMP, ITunes, AudioTT etc. and test the > compatibility. > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: id3v2-unsubscribe at id3.org > For additional commands, e-mail: id3v2-help at id3.org > > > > --------------------------------------------------------------------- To unsubscribe, e-mail: id3v2-unsubscribe at id3.org For additional commands, e-mail: id3v2-help at id3.org From paul_t100 at fastmail.fm Tue Nov 21 04:30:45 2006 From: paul_t100 at fastmail.fm (Paul Taylor) Date: Tue, 21 Nov 2006 12:30:45 +0000 Subject: [ID3 Dev] Why is footer not included in total size? In-Reply-To: References: Message-ID: <4562F175.3030909@fastmail.fm> I dont know, but I get the impression he has moved on to other things > Is Martin Nilsson active on this list? > > >From http://www.id3.org/develop.html: > ------------------------------------- > > I dont know, but I get the impression he has moved on to other things --------------------------------------------------------------------- To unsubscribe, e-mail: id3v2-unsubscribe at id3.org For additional commands, e-mail: id3v2-help at id3.org From andy at andy-k.co.uk Tue Nov 14 00:46:20 2006 From: andy at andy-k.co.uk (Andy) Date: Tue, 14 Nov 2006 08:46:20 +0000 Subject: [ID3 Dev] Why is footer not included in total size? In-Reply-To: <035b01c707bd$abcf6e60$6501a8c0@xp1800desk> References: <6.2.0.14.2.20061107101949.027fdca8@pop3> <035b01c707bd$abcf6e60$6501a8c0@xp1800desk> Message-ID: <1b3bacd80611140046j66a19265t23c1371485f03d46@mail.gmail.com> I am pretty sure that footers are only to be written to a file when the tag is appended, not pre-pended. On 14/11/06, Jim wrote: > > Hi. > > I am wondering what the reasoning was behind the size stored in ID3v2.4tags not including the size of the footer (if present). > > I've been looking through the source code for some utilities for MP3 files > and some other audio file types. Many of these utilities use a simple > method for skipping over the ID3v2 tag if it is there. They read the first > 10 bytes of the file, do some simple checking (look for 'ID3', check that > version bytes are less than $FF and in some cases check that size bytes are > syncsafe, i.e. < $80) and if it looks like a tag, convert the size and > skip that many bytes ahead (+ 10 bytes for header). Most of these utilities > would be broken if the tag has a footer. They don't do any specific version > checking or checking of the flags byte. > > If the size stored in ID3v2.4 tags included the footer size (if it is > present), it would make these tags much more backwards compatible. (I know > it is a pretty easy change to add checking for the footer flag but wouldn't > it have been better to make it compatible with older apps that don't really > need to read the tag, just skip it?) Were there reasons that came up > during development why it was done the way it is? If so, I'd appreciate if > someone could share them with me. Or if there is somewhere I can read about > this (like some archive of the mailing list) I would appreciate someone > pointing me in the right direction. > > Thanks. > > Jim Martin > > -- Andy. -------------- next part -------------- An HTML attachment was scrubbed... URL: From josearturo.castillo at gmail.com Mon Nov 6 07:56:31 2006 From: josearturo.castillo at gmail.com (Jose Arturo Castillo) Date: Mon, 6 Nov 2006 09:56:31 -0600 Subject: [ID3 Dev] Confusing problem about ID3v2.Could it located at the end of file? In-Reply-To: <20061106034312.GA13165@ayup.limey.net> References: <20061106034312.GA13165@ayup.limey.net> Message-ID: ID3v2 should be at the beginning of the file. The specification says that it COULD be at the end, but must players will look just at the beginning. You should look for the "ID3" tag at the begining. ID3v1 is at the very end of the file [128 bytes before the end], and there is where all players look for. You should look for the "TAG" tag at the beginning of the 128 bytes. You are by sure messing up everything, if you are writing the ID3v2 info at the very end the players would not be able to find ID3v1 neither ID3v2. Hope this helps. Jos? Arturo -------------- next part -------------- An HTML attachment was scrubbed... URL: From thomas.prog at mevtho.com Thu Nov 2 16:34:01 2006 From: thomas.prog at mevtho.com (Thomas MEVEL) Date: Fri, 03 Nov 2006 01:34:01 +0100 Subject: [ID3 Dev] ID3v1 <-> ID3v2 In-Reply-To: <4da424620611020838y1c9ba111g2d8456ee236f3781@mail.gmail.com> References: <454A1DA4.3090308@mevtho.com> <4da424620611020838y1c9ba111g2d8456ee236f3781@mail.gmail.com> Message-ID: <454A8E79.3090502@mevtho.com> Thanks for yours answers. If I want to get the title for example, and both are different, which one should I choose ? Does a tag version have any priority on the other? Thanks again for the answers. Thomas Tom Sorensen a ?crit : > If a file has both tags then the information is stored twice. There is > no interdependancy, and it's not uncommon for one tag to have > different info than the other. > > On 11/2/06, Thomas MEVEL wrote: >> Hi, >> I am new to this list, I am from France. Maybe the question has already >> been asked. >> I would like to know if in a mp3 files what are the relations between >> ID3v1 an ID3v2 tags. >> I mean are the ID3v2 tags relying on the ID3v1 tags for common >> informations or are this informations stored twice in the file ? >> >> Thanks for your answer, don't hesitate to tell me if you don't >> understand what my problem is. >> >> >> Thomas MEVEL >> >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: id3v2-unsubscribe at id3.org >> For additional commands, e-mail: id3v2-help at id3.org >> >> > > --------------------------------------------------------------------- > To unsubscribe, e-mail: id3v2-unsubscribe at id3.org > For additional commands, e-mail: id3v2-help at id3.org > --------------------------------------------------------------------- To unsubscribe, e-mail: id3v2-unsubscribe at id3.org For additional commands, e-mail: id3v2-help at id3.org