Tuesday, May 13, 2008

GSoC First Lines of Code

Since last week, I started coding the first lines of the qtmux (yes, that will be the name of the new plugin/element).
The muxer is still at an early 'draft state', but what concerns me more at this point is creating the MPEG4 Atoms hierarchy to be used by the muxer. This hierarchy will last during the whole project and it could cause some headaches later.

I thought of two main options:
  • Create a gobject class hierarchy: it is better organized and we could have some common interfaces, but it would be probably too much of a overhead
  • Create a 'struct hierarchy': composing structs is pretty easy and straightforward to do. Having common structs at the top place might also provide some common methods, but probably difficult to maintain
Structs seems better to me at this point, I'm for the KISS (Keep It Simple, Stupid) principle. And I also don't expect to be changing those atoms often (after my code gets stable, at least). But, of course, I'm accepting comments and sugestions and critics.

Other than that, I'll be starting a repository to put the code in the following days, so that interested people might take a look at it.

Thursday, April 24, 2008

Let the games begin

GSoC has just started this year (I've been accepted :D) and I'll use this space to provide information about my ongoing work. My project is to create and develop the quicktimemp4mux plugin for GStreamer.

For the past weeks, I've been studying specs and code on mpeg4. Right now, I'm starting to think on how to validate the resulting files my plugin will be able to generate. Some options that have already been suggested to me:
  • use qtdump to inspect the files
  • use a GStreamer pipeline to play the files
Other than that, I'm also wondering what could be my first goal at the plugin implementation, and I think that being able to create a mpeg4 file that contains only one audio track (possibly mp3) would be a nice start.

That's it, I hope that GSoC will be fun and, mostly, that I manage to finish a good quality plugin so that everybody gets happy :D