FS#12046 - MP4 parser robustness: error on certain files

Attached to Project: Rockbox
Opened by MichaelGiacomelli (saratoga) - Wednesday, 06 April 2011, 16:29 GMT
Last edited by Andree Buschmann (Buschel) - Monday, 02 May 2011, 07:19 GMT
Task Type Bugs
Category Codecs
Status Closed
Assigned To No-one
Operating System All players
Severity Low
Priority Normal
Reported Version Release 3.8
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No


mp4.c errors out with "MP4 metadata error. errno 22, samples 9507840, frequency 44100. filesize 0".

Plays in other software without error.
This task depends upon

Closed by  Andree Buschmann (Buschel)
Monday, 02 May 2011, 07:19 GMT
Reason for closing:  Not a Bug
Additional comments about closing:  The reported file has a major defect.
Comment by Andree Buschmann (Buschel) - Wednesday, 06 April 2011, 17:40 GMT
The parser does not find the existing "mdat" frame. This "mdat" frame is present and located late in the m4a header. I will further investigate.
Comment by Andree Buschmann (Buschel) - Wednesday, 06 April 2011, 18:38 GMT
The files itself is broken. The first "free" frame indicates a wrong length (0xC07A). If the correct length is indicated (0x17928) the files plays fine.

I have uploaded the file with this simple change:

So, our parser does not have any bug, but is not as error resilient as others...

Edit: The header has two sets of metadata (album, title, etc.). The 2nd one is not placed correctly and preceeded by several kilobytes of data (audio stream?). Seems like a tagger has messed up the file...