Request for help with Transmageddon

One task I been trying quite a few times with Transmageddon is to port it from libglade to gtkbuilder. So far I have always failed for some reason or the other. A big part of it is that I have tons of examples out there for how things are done with libglade, but not so much for gtkbuilder yet.

That said I am also convinced that someone with the right skills could do the port in about 30 minutes or so. Which is the reason for this blog post. Is there anyone out there who would be willing to cook up a patch for me to port Transmageddon to gtkbuilder? (Its written in Python). If so please grab either the latest release or check out git master from GNOME git.

Any help with this would be much appreciated.

Update: Multiple patches received, much appreciated. I will use weekend to try to merge

Mobile linux and the desktop

Edward pointed my to this blog today which brought up a point I myself have been making in regards to Android. I spoke to several people at the CE Linux meeting a couple of weeks ago about this for one. To quote from the blog:

Android is an island of its own, and useful code sharing is largely limited to the kernel.

At Collabora Multimedia we are currently working with both Maemo and Android systems and while I can see the appeal of Android from a phone makers perspective I can’t help but be a little saddened by how worthless it is to the general linux eco-system. One of the things I always loved about Nokia’s Maemo effort is that since its using so many of the standard components that we use on the Linux Desktop, it means that when a feature is added or a bug is fixed in Maemo, it directly helps also the linux desktop. Nokia and Maemo has had a strong and direct impact on a lot of open source projects, ranging from GStreamer, D-bus, GTK+, Telepathy, Matchbox, X Window System and more. And Nokia’s work on Qt going forward will of course have a direct impact on the quality of KDE.

Android on the other side has a much more marginal impact. I know they have contributed some patches to Webkit, but apart from that they offer little value to the rest of the linux eco-system. Been even told by some kernel developers that an Android kernel driver is about as immediately useful for the mainstream kernel as a FreeBSD or OpenSolaris driver. Meaning that porting is needed.

So for me personally I can’t help but feel a lot more positive about Maemo (or Moblin for that matter as they too share the same kind of philosophy as Maemo) and getting a N900 is definitely on my TODO list. That said Android is a work in progress and hopefully we can get them to abandon their essentially proprietary stack going forward and instead incorporate more and more shared libraries with the server and desktop. Maemo has proved that for a smartphone these libraries works just as well as Googles homebrew. Some of the efforts we are involved with are pushing in that direction and hopefully Google will realize that the secret to the success of open source is synergy.

Welcoming new team members to Collabora Multimedia

We have recently added 3 new members to our growing Multimedia team and GStreamer consulting business. The first one onboard was Thiago Sousa Santos who I think many of you probably already know as he has been a regular GStreamer contributor for the last few years. He also wrote some important plugins for GStreamer as part of the last two Google Summer of Code projects, namely the Quicktime/MP4/3GPP muxer for GStreamer and this year the ASF muxer and ASF RTP payloader. Having been so impressed with his work as part of the community over the last few years we made sure to snatch him up as soon as he graduated from University :)

The second person we added to our team was Robert Swain. He might not be familiar to people following GStreamer or GNOME, but he has been an active contributor to the ffmpeg project, working for instance on improving the AAC support in ffmpeg. A lot of the work we do at Collabora Multimedia is of course low level multimedia handling and optimisations and Robert will strengthen our capabilities in that field. Also with his experience with ffmpeg we can hopefully use his knowledge to improve the GStreamer ffmpeg plugin where possible.

And finally we have Arun Raghavan, who will be joining us next Month. Arun comes to us recommended by Pulse Audio maintainer Lennart Poettering and will be part of our effort to officially support the Pulse Audio sound server as part of our portfolio of open source projects we offer expertise and consulting services around. Wim Taymans have been moonlighting a bit as a pulse audio developer over the last year, but with Arun on the team we now have a person dedicated to Pulse Audio development, making sure Pulse Audio works great for our customers on their embedded systems. We also hope his efforts will pay dividends for Pulse Audio users on the desktop too in terms of more features and better stability. The synergy we are able to create between the embedded world and the desktop is part of our core mission here at Collabora and with Arun on the team we hope to continue and deepen the great working relationship we have established with Lennart. As a sidenote Arun comes to us from NVidia so maybe we can even have him help improve the GStreamer vdpau plugins :)

Speaking of synergies between embedded and desktop work, I hope everyone read Guillaume Desmottes blog post about Collabora’s increased effort behind the Empathy chat,VoIP and video conferencing client

Returning home from CE Linux Europe

Its been an interesting week here Grenoble, been talking with a lot of people about linux on consumer electronics in general, but also of course about the GStreamer consulting we offer at Collabora Multimedia. It is also always encouraging to see the number of people at an event like this who already have heard about Collabora, be it in conjunction with GStreamer or Telepthay or Webkit or any of the other projects we either have the lead on or are contributing heavily or been told about us by an existing customer.

We ended up having a very nice conference dinner yesterday evening at one of the restaurants on top of the mountain travelling there by cable car.

Getting ready to start my journey back home now, and while I have to say Grenoble has made a very positive impression on me, I am looking forward to getting home to Cambridge.

At CE Linux in Grenoble

I am currently in the town of Grenoble in France, attending the CE Linux conference. Or rather the official conference starts tomorrow, so today I am attending a workshop hosted by ST Ericsson talking about their open source effort around the Nomadik platform, more specfically the NHK-15 platform. Looks like a very interesting piece of kit and I also got a nice development board to take home. Met a few known faces already here, for instance Dave Neary is also attending the workshop today, but I am sure there will be more people when the official conference kicks of tomorrow.

Anyway, if anyone else are attending CE Linux and want to talk about Collabora, GStreamer, Telepathy, PulseAudio and so on, be sure to look me up.

I also noticed that I tend to try to speak Spanish to everyone here. Not sure why, but I guess my mind on some level assume that they might have a better chance to guess what I mean if I speak Spanish and they only speak French. Or maybe its because my new housemate, Abigail, is Spanish, so due to speaking with her my mind is now tuned to jump to trying to use Spanish words :)

Transmageddon 0.14 released

Pushed out a new release of Transmageddon today. It is mostly
about fixing bugs and trying to make things more robust. But I also added the PSP and Google G1 profiles to this release.
Remuxing should be more robust now and if it lacks the plugins it needs it will let you know and let you choose something else instead.

My next step is going to be to combine the device profiles with remuxing, so that if the device you are targeting supports
for instance the audio and/or video format used in the incoming media Transmageddon will just remux it instead of decode and re-encode it. Should eventually in combination with a AC3 parser plugin enable you to just remux Matroska files with H264 and AC3 audio to MPEG TS when you choose the PS3 profile to get a playable file. Only problem there of course is the bitrate requirements of AC3 when used in MPEG TS on the PS3.

Writing code that does nothing

My Transmageddon hacking has slowed down a little over the last few Months. But I am still working on it, fixing bugs and adding little features. However a lot of the stuff I have been doing recently is adding code to work around or detect errors. Error handling is nice in the sense its code that help my application work on computers other than my own, but it is also something which I guess people find rather uninteresting. Its like you compare the last 3 versions and from a feature standpoint they are almost identical, even though I added quite a bit of code to handle all the kind of problems people reported to me.

For instance I spent quite a few hours yesterday adding code to make sure I could handle the situation of missing audio and video parsers. Currently if you choose passthrough mode and missed the needed parser plugin the application would just hang, with a lot of ugly spew on the command line. Well thanks to changing 70 lines of code and spending hours coming up with those lines the application now handles it gracefully. Of course for someone not running into this problem the application does nothing it didn’t before.

So part of my feel that these sort of fixes are quite boring and uninteresting, but on the other hand I guess they are exactly the stuff that is the difference between an application that obviously was never meant to work on any system apart from that of the application writer and an application that most people can actually use. And when people tell me they successfully used Transmageddon it do make me more happy than when I am told they tried it and it failed horribly. I mean the point of releasing Transmageddon to the public was not to make them familiar with python error messages :)

I have a small question to the more python savvy people out there though. I have been trying to set a environment variable for Transmageddon in python, but so far it doesn’t seem to work. If I in the shell do:
export GST_DEBUG_DUMP_DOT_DIR= "/tmp"
that works fine. But if I in my python code do
os.environ["GST_DEBUG_DUMP_DOT_DIR"] = "/tmp"
os.putenv('GST_DEBUG_DUMP_DIR_DIR', '/tmp')

neither of them seem to have any effect. Anyone got a clue to what I am doing wrong?
Edit: Turns out I was setting the environment variables to late in my file, I needed to do it before import gst was called :) Thanks Edward.

Dollhouse is brilliant

Last weekend I visited Jan and Jaime in Dublin. We had a great time while I was there and they managed to get me hooked on Joss Whedons latest creation, Dollhouse, staring Eliza Dushku and Tahmoh Penikett.

I guess like a lot of people involved in computing I been thinking about the possibility of interfacing with the brain as a computer for some time, mostly in the terms of transferring oneself from the body into a computer and thus achieving virtual immortality. For some reason my thoughts have mostly been about the practical issues of interfacing with a computer (the brain) that was never meant to be interfaced with.

Joss Whedon though with Dollhouse has taken a step back and are instead looking at the social and psychological impact such an option would have. Of course wrapped in an entertainment wrapping, but profoundly interesting non the less. I recommend that if you haven’t seen it you should, the first season is already out on Blu-Ray. Joss should start making series for HBO instead though, think the freedom that would give him would enable him to take his series to the next level.

It also has to be mentioned that Jonatha Brooke has written a brilliant theme song with What You Don’t Know, I even ended up buying it from iTunes.