I should have posted this before, but the code for GSoC is already hosted online at http://gforge.embedded.ufcg.edu.br/scm/?group_id=122 (there's info about checkout there, and also you can browse the code online)
After writing a lot of repetitive code for atoms serialization I decided to stop and rethink it. So, creating a function for serializing each type of property an atom can have made the code much shorter and better to read. This refactoring proved even more useful, when I found out that mp4 files had to be big endian, I did the changes to support it in no time, as I only had one spot to change.
Other than that, I've been using qtdump for validating my generated files, but sometimes it only reports "unsupported file type", and I need more than that. So, I'm also adding more verbosity to qtdump (and also qtinfo). I'm trying to make it able to tell why it is not a valid mp4 file.
As always, comments and critics on my code are very welcome.