Today is my last day at work. I’ll have the next week off and after that, I’m hoping to live in Manhattan, New York City, to finish my studies (biomedical sciences) at the Weill Medical College (Cornell University) there. I can’t wait to go there. But I know I’ll leave a lot behind me for the next six months. I’m not expecting to have much time left for GNOME or GStreamer for the next six months… And I’ll definately miss my friends here. :-(. We watched the movie “Discovery of Heaven” together yesterday, sort of a “last goodbye” for me. I’m expecting to see them once or twice next week, but I’m already starting to get that feeling that I miss them, and I’m not even gone yet. Still makes you drop a tear…

On the bright side of things, I can say that during the last month (when I worked on GStreamer for work), a lot of good stuff happened. I mostly rewrote and finished GStreamer’s Plugin Writer’s Guide (which had been unfinished for almost 2 years now). I’ve done quite a lot of work in basic video encoding, recording and parsing (mostly DivX and MPEG) and I just had a lot of fun. GNOME media seems to work fine too, finally, so things are good. I’ll continue working for the company while in New York, but only a few hours per week.

Apparently, Julien wants me to fix ffmpeg’s codec wrappers so we can release a new GStreamer version. My boss just asked me to first work on MPEG transmuxing (we have a strange issue here that basically comes down to Windows Media Player hanging for up to a minute on streaming video input before starting to play; all other players play the content just fine; however, we need to support WMP since about 90% of the world appears to use just that :( ).

Hm…

Since the MPEG stuff can be done using ffmpeg, I’ll probably combine the two and work on both together. It’s nice to be able to spend time on GStreamer at your regular job. ;).

Trying to integrate autotools (libtool, automake, autoconf) into ffmpeg. Oh my, I never imagined libraries could be this badly managed. Their configure script is more than a thousand lines of hand-written pure SH code. Their Makefiles are a sign of the devil’s existence. Parts of their code contain assembler that isn’t PIC-capable (PIC is required for shared libraries). And yet, they claim portability. Why, why, oh mother god, why did you allow us to create this pure evil?

Fortunately, my life is doing better: watched the faculty yesterday (BBC1, 0:00 AM), I’m trying to finish my graduation research report (promised to hand it in Tuesday) and I’ve got an appointment at the US consulate next Thursday to request a visum.

I’m currently working on a profile interface thingy for GStreamer. Think of an automated, simple way of saying how a file should be encoded in Sound Juicer or (hey ;) ) GStreamer Recorder.

Screenshot of the profile editor: see here.

The idea is very simple: each plugin has default profiles (e.g. ‘DVD’ for an MPEG encoder, ‘CD quality’ for vorbis, etc.), and the user can define custom profiles, too. Sound Juicer or GStreamer Recorder (or any encoding/transcoding app) will, in the default preferences window, just show the available profiles for a given element. For the application, it’s a simple list/get/set as API. Of course, the app can also access properties individually, but that’s more for power users… Be honest: is there any user that knows whether a bitrate of 250 (kbps) is a good quality for half-PAL MPEG-4 TV capture (will the CPU handle fine? Too high/low bitrate? Finetunings?).

Thomas has a simplified (but working ;) ) version of this in Gnome-media for Gnome-2.6. I hope this can go in for Gnome-2.8.