Thursday, March 12, 2009

Happy new year!

This year had a slow start, but it seems that things are heating up.

1) I decided to be back on bikes (after 5 years), going twice a week for about 30km, starting at 5 AM. Surprisingly, I'm riding with the same group I used to and they remember me (I was 15 by that time!). Note: I need a new bike.

2) Google's Summer of Code is starting again this year and I'll try to participate again for GStreamer. From the tasklist, ASF muxing support and mpeg2ts interested me the most. But I'm open to suggestions.
Also, I've been asked to do a small presentation at the university to the Computer Science department (students and teachers) next wednesday. And I've already started reading ASF spec.

3) University classes are back (1 year to finish it!)

4) As my undergraduation is almost over, the amount of requests for small parallel projects has increased, which is good, most of them are simple web-based CRUD applications. They take little time and are a good source of money for a student.

Finally it is starting! Happy new year, everyone!

Thursday, September 18, 2008

mpeg4 trouble

Expanding qtmux to support mpeg4 was going all well, everything was almost ready! Then the ES Descriptor appeared. For .mov files it was only used for AAC description atoms. For mpeg4 it has to be used for every format, and:
  1. This ES Descriptor has a DecoderConfigDescriptor that has 'objecttype' and 'streamtype' integer fields that would identify the stream format and I can find no info on how to map the formats to those values (other than AAC).
  2. The DecoderConfigDescriptor has some 'bitrate' and 'decoding buffer size' fields which aren't usually provided by GStreamer, so I'm just filling that up with zeros.
If there is someone out there that knows how to map formats to those fields or any idea on how GStreamer could provide bitrate (perhaps tag events?) I'd really appreciate some help. I've been stuck for almost a week.

Also I've started to test the mpeg4 files in a PS3, too bad it doesn't give meaningful error messages.

Tuesday, September 9, 2008

AAC and MP3 at qtmux

I know I just posted, but I'd like to make a separate post for this.

Jan Schmidt(thaytan) sent me a patch that got AAC and MP3 to work! Thanks!

And he also sent me an optimization patch!

Friday, September 5, 2008

GSoC summary and thanks

Now that Summer of Code ended, I'd like to summarize what has been done around qtmux and some random thoughts around it.

Firstly, I'd like to thank the guys from GStreamer for letting me participate with them, specially to Win (my mentor) and Christian(AFAIK, the org leader for GSoC). Also to those that answered my daily questions at IRC (mainly Mike, David and Tim). This was a great experience, learned lots of stuff about muxing, GStreamer and quicktime/mp4 file formats. Thanks also to the guys from pitivi for reporting problems and their effort for already adding qtmux to it.

It feels great to see the community actively using, testing, reporting bugs and requesting features at this early stage of qtmux, this is really motivating! Also, it will be moving soon to GStreamer repos. That means more developers working on it, consequently better quality code and more supported formats.

Looking at the application proposal, most of the formats promised are already working, but qtmux still lacks the flavor selection. That's why the next step is adding isomedia ('isom') output format, some work is already commited, but it is still at an early experimental state.

Lastly, another thanks to you all (GStreamer and Google), I really enjoyed participating and I hope that qtmux is already usable and meeting the expectations.

Saturday, August 30, 2008

A lot of help

The last week has been unusually productive due to 3 people helping me with qtmux (well, everyday I get help from people at #gstreamer, but those 3 were directly helping).

In a non chronological order:
  • Edward Hervey (bilboed at IRC) did some changes to faac plugin and now we can have qtmux muxing mov files that contain AAC which play at totem (gstreamer) and mplayer. (Quicktime Player still can't play those).
  • Chris Cooksey is a possible future user of qtmux (one that really understands from the mov container) and while testing qtmux spotted 7 or 8 problems in the resulting files and reported me, so we fixed them (most related to timescale, dates and durations in the file).
  • David Schleef (ds at IRC) sent me a patch for adding Dirac support into qtmux (it works!).
Thanks to you 3.

Tuesday, August 26, 2008

finally h264!

Just for letting you know: qtmux now supports h264 (and also a-law and mu-law)

Yay! \o/

Friday, August 22, 2008

Update on qtmux

I've been through the semester final exams the last weeks (my university timeline is all messed up) and time was short, so I couldn't update here with news on qtmux, but the semester in now finally over, so here are the new features:
  • raw formats (both audio and video) and mp3 are working correctly in all players I tested (totem, vlc, mplayer and quicktime)
  • support for h263 has been added and also works on the players above
  • support for aac and amr has been added and it still doesn't work at quicktime, but works in totem and mplayer (vlc went nuts on my machine, and I still haven't got it to work again)
  • ilst atom metadata support (used by itunes and qtdemux) has been added
I couldn't get aac and amr working, after some days searching for specs and testing applications that could generate qt files with amr or aac with no success, I noticed too much time was being lost and started working on other features.
None of the applications I tested could generate a qt file (with amr or aac) that quicktime would actually play, and I couldn't find any useful spec. I also tried inspecting bytes in some files that played successfully, but just looking at them wasn't enough, the different bytes are easy to find, but not easy to understand.

I said that I would add flavor selection in the previous post, but I was advised to work on some widely used formats first, so I did it.

GSoC is comming to an end in the next days, but work won't, qtmux has still a lot to be worked on and I'll keep it up.