Ramblings on computers…

Tag Archives: Totem

I've arrived about a week late to the party, but there are now some shiny new releases of Almanah, Hitori, Totem/totem-pl-parser (with my I'm-Bastien-Nocera hatbeard on) and libfolks for people to use and abuse. (Versions: 0.9.0, 0.3.2, 3.3.92, 3.3.92 and 0.6.8, respectively.) Many thanks to all the people who've done all the work on them this cycle (including all the bug fixing and running around which I was supposed to do; sorry about that).

Why so late? I was busy. University has been keeping my work queue full up for the past few months, and it's not going to ease off until June. Doing all these releases has made me realise what a bad maintainer I am for projects like Almanah. It's used by many people, but has seen few releases recently, and even less development work (basically none of which has been done by me). There's an ongoing plan to modernise its design, and I'm sad that I can't put any time into making this happen.

I'm putting Almanah up for adoption. Wanted: an enthusiastic new maintainer with big ideas for the project's future. It's a reasonably stable project, with a well documented, if a little crusty, code base. There's plenty of scope for new features, and I'll try and guide you as appropriate. Let me know if you're interested! If not, Almanah will continue to limp along as best I can manage.

I've just released Totem 2.90.0 after some person conned me into rolling the tarball. This release is notable because Totem's now been ported to use libpeas for plugin handling. This allowed us to eliminate a lot of the old plugin handling code, but unfortunately it means that Python and Vala plugins don't work any more. We're working on this (when we're not reading comics).

It's the end of a busy summer and I've just stumbled over the finishing line with some (very) late patches to Totem for the 2.28 release. Let's hope it's a good one.

This horrendous timing on my behalf for getting around to doing these patches is mainly due to tacking an InterRail trip onto the end of my busiest summer ever. Ten days travelling around sunny Europe with friends went surprisingly well, with only one person attempting to rob us. The highlight of the trip had to be the Austrian train system: easily the best out of the ones we used (French, German, Austrian, Dutch and Belgian). Photos of the trip are up on my PicasaWeb account.

And now for something completely different: university! I've got just under two weeks left before I leave to start my BA in computer science at Gonville and Caius college, Cambridge. The pile of stuff to take with me is starting to grow, all my computers are reinstalled with Fedora (which should hopefully last for three years without needing too much time spent on keeping it going), and most of my former schoolmates have already left for their respective universities.

I don't know how much time I'll have for GNOME stuff — I'll have to see how the workload is when I get there. It is, however, at the top of my free time priority list, along with learning all the funny language Cambridge has for things, punting, debating and drinking Pimm's. OK, I was kidding about the last three.

It's about time to announce something I've been working on for about three months now: libgdata. It's a GLib-, libsoup- and libxml2-based library for accessing GData APIs, as used by most Google services. There already exist several such libraries in a variety of languages, but as far as I'm aware this is the first one written in C — and thus the first which is widely accessible to the GNOME stack. So far it has decent support for YouTube video queries, and the beginnings of Google Calendar support.

Having ported the Totem YouTube plugin to use libgdata, my next plan is to port the evolution-data-server Google Calendar backend as well. With that done, libgdata will hopefully be stable and fully-featured enough for people to get to work on starting to fulfil Rob Bradford's dream of tighter desktop integration with web services.

In time for GNOME 2.26, the Totem help manual has been given a much-needed revamp. It's now completely up-to-date, and the first manual to reach "final" status with the new documentation status tracking features. I must apologise to all the translators whose work I trampled on by repeatedly changing things just after they updated the translations. That won't happen any more; as the documentation's now at "final" status, there shouldn't be any more changes to it for the 2.26 release. Translate away!

My thanks to Shaun McCance for stubbornly continuing to put all his effort into documentation work despite dwindling numbers of documenters, and for speedily reviewing the updated Totem manual.

Totem now has API documentation for the API it exposes to plugins. The documentation has actually been in the source code a while, but we couldn't build pretty reference pages from it. Last night, I separated most of Totem out into a noinst library, which we now use with gtk-doc to build pretty documentation. When we make the next tarball release, the documentation should make its way to library.gnome.org for all budding plugin authors to read.

I was all set to copy-and-paste the required gtk-doc sorcery from another module and leave it at that, when I came across this gtk-doc GNOME Goal. It turns out none of the modules from which I would copy the black magic were making full use of recent gtk-doc features, such as namespace support. Another little bit of hacking later, and Totem now has a symbol index which is actually sorted usefully, and will check the documentation when running `make check`.

To fix problems with parsing playlists from slow servers in Totem, it's necessary to add asynchronous parsing functions to totem-pl-parser, so that parsing can be run in a thread. I've stuck a preliminary patch in bug #561444, but before it goes any further it would be great if other users of totem-pl-parser would take a look and see if the API's sane and suitable for their needs.

I have been led to believe I started this model matchstick train nine years ago (when I was eight); a present from my grandmother. I'm pleased to say it's now finished!

Of course, that wasn't nine years of hard work. Anybody would be hard-pressed to get me to do that; it was an initial spurt of activity, followed by years of bits of the model just sitting on a shelf. I picked up construction again last year, and I've been working on it on and off since then.

Unfortunately, it's not as well-built as it could be, with several of the structural parts of the model not being square (or even flat, in places) due to mistakes I made all those years ago. Still, I think it's turned out OK!

Next, I think I'll finish off all those Airfix models I've neglected over the years. There are about three helicopters in various stages of misassembly or decay waiting for some love.

In GNOME news, I'm hacking on getting YouTube upload support into Conduit, with the eventual aim of adding a Conduit plugin in Totem to allow video upload to any supported video website. I've been having awful trouble with the Python GData API (again), but I think it's just about sorted now. I got the first video uploaded ten minutes ago, and it's cleanup from here on!

It took a little longer than I'd have liked, considering the simplicity of the patch, but I've finally added support for high-resolution videos in Totem's YouTube plugin.

Compare:

On the top is the old, low-resolution video, and on the bottom is the spiffy new high-resolution video, automatically downloaded using YouTube's fmt=18 option if your connection speed is set to 1.5Mbps or higher. As per Bastien's testing, we can't use the fmt=6 option due to it not being supported for many videos.

The difference may not be immediately obvious due to the window being so small for the screenshot, but it is visible — just look at the left-hand side of the hut's roof. Enjoy.