This is the bug/patch tracker for Rockbox. Click here for more information.
Quick links: Bugs · Patches · Rockbox frontpage
FS#5268 - Improved MP4 metadata parser
|
DetailsThis patch is a rewrite of the MP4 metadata parser. The main reason
for writing it is that the existing one makes assumptions about the order in which elements (so called atoms) appear in the file, making it fail for files not created by certain programs. This is an attempt to make a more flexible one, that is based on the specifications (at least the ones I was able to find...). So why isn't it committed yet? Mainly because... * It isn't very well tested yet. I've run in through a couple of test files (generated by a couple of different programs), and those worked well (both in the simulator an on a Coldfire target), but as the MP4 decoder isn't really usable on Coldfire-based players, I haven't been motivated to test more. :) * Some more error checking should probably be added. (Mainly in the form of checking for non-zero errno in a few more places.) * Some debug code should be removed (DEBUGF macros mainly). |
This task depends upon
Closed by Magnus Holmgren (learman)
Wednesday, 11 October 2006, 21:05 GMT+2
Reason for closing: Accepted
Wednesday, 11 October 2006, 21:05 GMT+2
Reason for closing: Accepted
Once they are using it, maybe some useful feedback can be had.
This patch needs a little more testing before it's ready for CVS (it only touches metadata.c, it doesn't change the parser which is actually being used by the AAC codec itself), so it may not fix the problems with all files.
I'm planning to carry on the work with this patch, but that will probably be after 3.0.
making it easier to apply.
Also includes support for the ©wrt tag, where it has priority over the
"composer" field, if both are present (completely untested though).
The @wrt tag is actually left over from the Quicktime format that the container apparently evolved from, according to my research. iTunes uses @wrt to hold the Composer information, but several other programs don't seem to default to doing so. My personal concern is simply that there's a conflict between existing implementations already, and it seems more technically correct to go with what the tag is named. But I'm okay with defaulting to @wrt if Composer isn't present, but strongly against giving it priority over Composer since that really doesn't seem to make any sense. You only create an actual Composer atom at the point when you've already decided _not_ to use @wrt for it.