[RFE] distinction between mp3 and mp3pro


Hi. I just thought it would be awesome if anytag and mp3tag could display if the file is a mp3 file or an mp3pro file.
(For example, I just figured out that some of my mp3 files are in fact mp3pro files which play back at very low quality if you don't have mp3pro software installed).

PS: AS a sidenode, Florian, wouldn't you like to like to have a separate section for ideas and features (instead of putting them all together in 'general discussion') ? That's the way you choose for the german section, why not for english too ?
... just my 2 cents :slight_smile:


Determining if a file is MP3 or mp3PRO would require decoding or at least parsing the ancillary data / side information of the frames which is a bit too much work for a tagging software IMHO.


Hm ... I thought there were a special byte sequence somewhere at the beginning of the file (like shown here: http://www.garykessler.net/library/file_sigs.html) or something else which could easily be detectable ...
is there really nothing ?


Whether it would need decoding or guessing of magic-numbers it's not a planned feature.

Kind regards,


OK, thanks anyway for your comment.

(I just mentioned it because I thought if it's as easily detectable as the presence of an id3v2 or v1 tag than it might be quite useful.)

Have a nice day.


I wasn't able to find anything on that site which is related to mp3PRO in particular. It only contains the pattern for MPEG audio frames (0xff 0xf?) which can be MP1, MP2, MP3 or mp3PRO. As I said, you would have to analyze more than just the MPEG frame header to see if SBR data is present in the MPEG audio bitstream. One special thing about mp3PRO is that the frame header usually reports a sampling rate of 22.05 KHz only. This doesn't mean that all 22.05 KHz MP3s are mp3PRO, since normal MP3s can also have that sampling rate, just that a file reported by Mp3tag as having 44.1 KHz is not an mp3PRO for sure.


No Sebastian, it was just general info about magic values (just in case the concept was not clear). I'm not too familiar with the intestines of an mp3 file beyond the id3 tags, but I thought that mp3Pro files might have had an unique byte sequence (like in the example you mentioned), maybe at the very beginning of the mp3pro stream, that were really exclusive to an mp3pro stream and make it identifiable. This detection would have been just as easy as the detection of the presence of id3v1 and v2 tags and could have been done at the same moment.


Sebastian, You certainly know all of this, but here http://en.wikipedia.org/wiki/Mp3#File_structure you can see that there are special bits in the mp3 header, which indicate for example the mpeg standard or the presence of audio layer 3. I was hoping that there was a unique byte sequence or at least some bits which would reveal the presence of an mp3pro file unambiguously. This would have made the decoding of the actual audio data unnecessary.


No, there is no easily detectable information that you can use to check if a file is mp3PRO or not. mp3PRO frame header reports MPEG-2.0 Layer III with a sampling rate of 16, 22.05 or 24 KHz. SBR information which is used to synthetically double the sampling rate is stored in the ancillary data of each frame. As the MPEG header does not contain any information on where the ancillary data begins, you would have to decode a frame in order to find out where this additional information that makes out an mp3PRO file begins.

BTW, the idea behind all this is to preserve compatibility with non-mp3PRO decoders. If mp3PRO had information stored in the MPEG frame header or the main data, a "legacy" decoder would get confused as it doesn't know what the new values mean.