The GNOME Media Player:
So, in order to slay xine and thereby bring the day closer that we will conquer the world, I decided to start hacking on libgstplay. The result is available in bug number #143030 and can hopefully be backported in one way or another to the 0.8.x GStreamer series. The idea is to simplify it a lot and thereby increase the involvement of core hackers such as ds or company in fixing libgstplay-related issues and thereby improving playback capabilities of GStreamer.

The result is quite nice. Within a day, we saw a UI based on it that can playback music much like projects like Muine or Rhythmbox. Not that it looks as pretty, but that’s not the point of a testing application anyway. I hope this work will make libgstplay work much more reliably than it used to. There’s some minor other points involved, but I have some interesting ideas on how to progress once this is done.

The final goal should be clear: Totem - based on a GStreamer backend - should make it into GNOME 2.8.0! A desktop without an ass-kicking media player is just not the same.

GNOME Volume Control:
In the mean time, ow3n came over to me on IRC and told me that the ALSA version of GNOME Volume Control really looked horrible (no kidding!) and offered to help in fixing it (yay!).

As earlier proposed by Seth, we should hide all those switches in the default UI. Does anybody know what they mean? Even the ALSA people don’t! So we’ll just omit those from the default UI and maybe even hide some obscure volume controls (my laptop doesn’t have a phone, you moron! And not two either!) given that they make little sense.

This will also make it into GNOME 2.8.0.

What’s Life All About…
Now, one thing that I’ve particularly noticed here in New York is that all nice girls are already taken. Not much difference from the Netherlands, in hindsight.

Well, little choice but to go out with the already-taken-ones, then!

d-d-l signal/noise ratio:
Michael, there is nothing wrong with closing d-d-l. d-d-l is used as a one-for-all list because it has that image: it is an open list, everyone posts to it and on random subjects. I can see that in the archives! Tadah, a list for all my random mess has been born. The solution is simple: close it, and post good guidelines for new subscribers.

I’m not subscribed to several interesting lists because of that, and would hate to add d-d-l to that list-of-lists for this reason.

A GNOME developer that wants to join GNOME development and related discussions should have the motivation to do the basic effort of subscribing. If he doesn’t, then he’s doomed to not be a good GNOME developer.

On the other side, I like it when Jeff pulls on his dictatorship hat and screams end-of-thread. I’ll miss that. Ohwell, I’ll have to cope with that.

Surround sound support in GStreamer:
Some genious mind provided me with a surround sound system for my laptop. I just got it working, and my housemates will hate me for quite some time now. For some unknown reason, I know have six speakers in my three-by-two meter room, and they make enough noise to keep the whole house with me. Lovely!

Interestingly, we also pretty much figured out how we want this to be done in GStreamer. My previous proposal was not ideal enough, so we adapted it slightly. It now is somewhat more extensible than the previous proposal.

Basically, for a GstCaps/GstStructure with X channels, the structure will have an extra property “channel_positions” (if absent on channels <= 2, it’s simply mono or stereo), which is a GValueArray filled with an enum of type GstChannelPosition. This will proove to be a truely adventurous task, because we haven’t used named enums before. Particularly, serialization/deserialization (going to enum from string and back, for things like GConf or gst-launch commandline and so on) will proove to be interesting. Secondly, we will need type-specific (extendible) fixation functions (to make sure that it fixates to something sane (which somewhat resembles “surround”, rather than “all channels topleft”.

The enum will be similar to Microsoft’s enumeration of channel positions, as specified here.

Time to proove myself worthy to this genious mind! I’d better have some interesting 5:1 DVDs with me for the next few weeks! :).

The instructions are: Grab the nearest book, open it to page 23, find the 5th sentence, post the text of the sentence in your journal along with these instructions.

Due to there being 64 (4^3) possible codons, but only 20 different amino acids, the genetic code is degenerate: each amino acid is specified on average by about three different codons.

It’s 10 PM, and I’m at the university. What a life…