Master of Science, graduated!

Today, I graduated. At 15:00, I was in the lecture room. At 16:00, I gave a talk, which went well. At 16:40, I signed the final piece of paper. Drinks and dinner with friends and family, some more – excellent day. Result: I’m, as of now, graduated as Master of Science. Woo!

Me and D., just before; and me doing my last presentation.

Me receiving my laudatum from my supervisor Ronald Oosting, from the department of psychopharmacology at the University of Utrecht; and me receiving my diploma officially.

DVD menus

Finally, after all those years. Screw the words, we want screenshots:

Yes, ladies and gentlemen, with #301312, #306555 and #166783 applied, your Totem with GStreamer backend supports DVD menus. All of it.

DVD subtitles #2

You’ll need all latest patches from #306555, #301312 and #166783 applied to enjoy this… With those, DVD subtitles will work (e.g. “gst-launch-0.8 playbin uri=dvd://” or Movie -> Open Disc in Totem). I hope to integrate this cleanly into CVS somewhere later this weekend.

DVD menus, here we come.

Desktop finetuning

So while others are discussing on whether or not to ship Gtk+ 2.8 in GNOME 2.12, I’ve taken another approach to being (or trying to be) useful. All sort of small finetuning to Totem, integrating the volume control keybindings with the applet and applying patches from others (mostly to GStreamer). All in all, this should be rather easy, but it’s taken me several days to get all bugzilla work sorted out to a reasonable state again.

The title “coolest hack of the day” goes to Jordan Saunders, who wrote a patch to control multiple tracks at the same time using the volume control applet. So while some may claim that this is silly, it really is not. Some cards, nowadays, lack a pure master controller; thus, they need to control several outputs to have the wanted effect, e.g. speakers + headphones. Some people (e.g. on fedora-devel) have suggested that GStreamer should emulate a master track for such cards, but I’m not quite sure how to do this yet. I may end up doing this at some point. Until then, this patch is extremely useful. An additional patch adds this behaviour to the keybindings, too. Now this is integration.

With all this movement going on, I haven’t been able to integrate the DVD subtitle support in playbin yet, I hope to do that this weekend or sometime soon after.

Hackergotchi
Some people from GNOME-NL complained about my current Planet GNOME hackergotchi sucking, because my eyes are closed. So they made a new one:

Feel free to put this as my new gotchi on Planet GNOME and Planet GNOME-NL!

DVD subtitles

So, yesterday morning, I was looking for something silly to do. So I decided to work on DVD subtitle support. Jan already did quite some work on it, but nothing working yet for me.

Image blending
The thing is, DVD subtitles are not text; they are run-time length encoded (RLE) images. So in order to support DVD subtitles, you need image mixing support. GStreamer already ships with a videomixer element, which does pretty much this. There’s also an alternative imagemixer implementation in bugzilla. Both of those don’t handle a non-continuous stream correctly, though. However, our current text-subtitle renderer, pango-textoverlay, does. So step 1 was to make an image blender, taking the various pieces of each of those elements. That was finished yesterday. With that, I can do general image blending (e.g. image-over-video, video-over-video, text-over-video, etc.).

Getting pieces in place
From here on, it’s pretty much getting pieces in their place, since we already had a DVD subtitle rendering element in bugzilla for a while. So now, it was just a matter of doing it right, which I got working this morning.

It’s not perfect yet, it has many (fixeable) loose ends right now:

  • the subtitle pads are only created when we see DVD subtitles in the MPEG stream. We should create pads in advance by going over the stream or reading the DVD .ifo headers. As a workaround, I use a silly timeout value right now.
  • Rendering is kinda slow.
  • Alpha values are wrong (the subtitle in the screenshot is semi-transparent…?).
  • This works on command-line, but obviously needs to be made workign in playbin so that it works in Totem, too.
  • Once all that is done, the pango-textoverlay element needs to be changed in a pure subtitle renderer (without image blending), so that we can use that element in combination with this new imagemixer, too.

Yet another TODO item mostly solved. La grande question: when will DVD menues work? :) .

Making movies of your desktop

So we all know some cool tools. Dave wrote a VNC client for GStreamer a while ago. Right now, you can also do it simpler, without requiring a VNC server!

gst-launch-0.8 ximagesrc ! ffmpegcolorspace ! videoscale ! video/x-raw-rgb,width=320,height=240 ! ximagesink

And it’ll just work. Nice stuff, someone should write a “make-a-movie-of-your-desktop” app around this. Something like the command below makes a playable Theora movie of your desktop. Performance isn’t all that perfect yet, we may want to peek at what other X desktop grabbers do, they appear to be a whole bunch faster.

gst-launch-0.8 ximagesrc ! ffmpegcolorspace ! videoscale ! video/x-raw-yuv,width=320,height=240,framerate=\(double\)2 ! theoraenc ! oggmux ! filesink location=/tmp/desktop.ogg

Sample movie available here, which is a sample of how to check in a fix to gst-ffmpeg (no, it’s not interesting, I know).

Politics and Parties

Dutch referendum
As expected, the Netherlands (or, rather, the people) rejected the proposed constitution for Europe. The interesting thing comes next: what caused this, and who will get dumped for it?

Why? Because nobody agrees. Thing is, every large organization and political party was in favour of this thing. Every one of them, left- to right-wing, conservative or progressive, government or opposition. This is a PR-disaster as you barely ever get to see. So, as always in politics, they all have their own fancy littly reasons on why it failed and how their political programme is going to solve everything, and here’s where the old fun just continues as ever:

  • The right-wing capitalist VVD, as spoken for by former leader Bolkestein, thinks people got too confused with the increased political power of the EU, and the EU should go back to being an economical cooperative union.
  • The left-wing socialist parties PvdA and Groen-Links all think it’s because Europe lost touch with its people, and we need new love to get back together.
  • Right-wing radical splinter party Groep Wilders, who was campaigning against the proposed constitution, claims this all shows everyone is sick of the current political parties and we need a new political system.
  • Our Harry Potter-like prime minister Balkenende at least got one thing right: we’re not against Europe. Seriously, I love it. I can go to Germany (GUADEC) without requiring a single bordercheck or currency exchange. I love you, Europe. Just not that way.

So all in all, it doesn’t really get us anywhere. But at least the proposed constitution is definitely off now.

GUADEC (in hindsight)
Looking back, GUADEC was awesome. First of all, the talks were mostly excellent and the demos were breathtaking. So you think Linux (GNOME, that is) on the desktop can’t keep up with Windows or Mac OS X? Wait until you see what we make for you right now. We all know Owen Taylor’s fancy Window-manager Luminocity, but imagine a slap-stick-like introduced dry brittish Xgl demo next. “Oh, wait, I can turn my desktop as a cube, too.”

“WHOA!”

Robert Love’s talk on performance was enlightening while still being understandable (thank you!), and Jeff Waugh totally surprised me with his Topaz peptalk. Glynn Foster’s as our GNOME muse was a worthy last talk for the event.

The evenings were mostly spent in the beautiful Schlosseplaze, which is basically Stuttgart’s town square with a nice set of resturants and bars around it. Monday night was spent enjoying Novell-paid beer (wooh!).

While there, I decided to work on a silly smallish bug in gnome-settings-daemon (keybindings) related to ALSA and how it handles mute. Also talked with Bastien Nocera on what to do next with Totem (it’s nice; but never perfect) and got some good ideas on where to go next, and tried to poke Colin Walters back into Rhythmbox (which may have succeeded), and many other discussions with many others, not without thanks to the monday-night party.

Finally, let’s not forget the fact that we had a huge attendance from NL compared to any other year (10-15 in total). Long live GNOME-NL!