One man against the elements

Every once in a while a man is faced with what seems like an insurmountable obstacle, at that point he has two choices, give up and despair or tackle the challenge head on. Yesterday I was faced with such an obstacle and in honour of my mountain dwelling ancestors I did the right thing and of course took on the challenge.

So what peril came across my path you ask? What challenge lead me to having to reach for new heights in ingenuity and problem solving? Well I will tell you. It all started in those days that Cambridge was bathed in blue skies and sunlight for over a week, it being such a rare occasion I felt a special tribute to the sun needed to be built and with no one else stepping up to the plate it was left to me to take on this Herculean and potentially dangerous task. The first component of my sun altar came from a land far away, known for its huge amounts of sunlight and its skimpy bikinis. This crucial building block was called the Amazonas Paradiso Terracotta Hammock and yesterday morning it was delivered to my humble abode.

However standing there with my new hammock I realized all was not well in the land, my garden only got one tree in it. And while others might have looked to the sky and screamed ‘why me?’ I instead decided to take matters into my own hands. So after a quick trip to B&Q I had gathered the materials I needed to create my own tree, my frankentree one could say. After a lot of digging, hammering, drilling and rope cutting, my act of creation was done, and a wonder had appeared in my humble garden.

And thus it had happened, against all odds and mother nature herself fighting against me, I had endured and in the end succeeded in my mission.

So now I can spend the rest of the summer relaxing in my wondrous hammock, enjoying Pax Romana

NLNet, Collabora Multimedia and Echo Cancellation

One of our main goals here at Collabora is to move the open source multimedia platform forward. Due to this we are investing a lot of time and effort into projects such as GStreamer, Telepathy, PiTiVi, Empathy and PulseAudio. So when we are able to play our part in making sure open source and linux desktops keep abreast of current development, like our work on WebM with Google and Entropy Wave we of course feel extra happy.

Well I thought it was time to announce another important effort we have just undertaken. Thanks to the generous support of NLnet, the same guys who helped Collabora make the Muji multi party chat extension for XMPP, we are now kicking of an effort to add echo cancellation support to Pulse Audio.

The goal of this effort is to make it possible to hook in various kind of audio effects into PulseAudio, including echo cancellation, so that as an application you can just tell PulseAudio that you want it to give you echo cancellation between an incoming and outgoing channel. As a starting point we will port some open source echo cancellation implementations to this framework, with one of them ending up as the default (the goal is that applications can just ask for the default, but that they can also ask for a specific one if it doesn’t want the default for some reason).

We hope this work will have a lot of positive long term effects, easier support for echo cancellation in applications, new improved echo cancellation algorithms and implementations being released and improved audio drivers on the linux desktop (not all drivers are doing a good job currently).

So in the coming weeks Wim Taymans will be leading this effort on our side and I will try to keep you up to date on it as it progresses.

So a big thanks to NLnet for making this possible.

Deadline for submitting talks to GStreamer Conference

Thought I should remind everyone that if you want to do a talk at the GStreamer Conference 2010 you need to submit an abstract before end of June. We already got some really great talks and presentations lined up, but there are still some slots up for grabs.

We are currently looking at splitting the day up into a batch of 45 minute presentations of GStreamer technologies and projects, some 10 minute lightning talks, and finally some 30 minute case-study type talks. So if you are interested in any of those make sure to send in an abstract. Looking forward to seeing as many of you as possible in October!

DLNA, GStreamer and Gst-convenience

It is always nice to see various pieces of code that has been under development for some time start coming together and new functionality get unlocked. Since it is also of critical importance to Transmageddon I have been following the work of Edward Hervey on the gst-convenience library. Well actually gst-convenience isn’t really a separate library, it is a planned extension to GStreamer itself which makes a lot of things a lot easier to do with GStreamer, like advanced multimedia attribute discovery and encoding.

One of the first projects set to benefit from this is the Rygel DLNA library written by Zeeshan Ali. Zeeshan recently posted a great post on how through utilizing gst-discoverer they are now able to do proper DLNA profile detection in the gupnp-av library, you can find the full email here, it is definitely worth a read in my opinion. One thing Zeeshan doesn’t mention in his email, but as I see as one of the big advantages of this new system is that it is also easy to do intelligent transcoding. No matter if you are doing automatic DLNA transcoding or manual transcoding to your device, you normally want to transcode as little as possible. Dumb transcoding (which is what my current Transmageddon profiles do, just transcoded the audio and video to a known working target, regardless of if either the incoming video or audio already was in an acceptable state, thus taking more resources and decreasing audio and video quality more than needed. With smart transcoding you instead cross check between input and output the possibilities and you figure out an optimal remuxing and or transcoding strategy. Thanks to gst-convenience this is not easy to do in Rygel and it will be easy to do in Transmageddon.

One thing holding is a little back atm is that doing bindings using GObject introspection seems a little raw still. Since Rygel and gupnp needs Vala bindings and Transmageddon needs Python bindings it would be nice if we could get the bindings generation working smoothly, but so far it hasn’t been. If anyone got any experience with this I am sure the help would be appreciated.

Want to join the Collabora Multimedia team?

Want to be working on cool multimedia software? Well we are looking to recruit a few more people to Collabora Multimedia over the next few Months. Anyone who got strong multimedia and programming skills are encouraged to apply, for instance the last few additions to our team didn’t have much GStreamer experience at all before joining us, but instead had strong skills developed on other multimedia related projects.

So if you got experience with any of the following technologies and a decent open source track-record please send us your CV by emailing my at christian(dot)schaller(at)collabora(dot)co(dot)uk.:

  • GStreamer
  • Pulse Audio
  • Vala programming
  • GObject
  • C programming
  • Python programming
  • DLNA and upnp
  • ffmpeg
  • v4l
  • Open GL
  • DSP programming

We offer a flexible work environment with a strong free software focus and competitive terms. You could either work from one of our 3 offices (Barcelona – Spain, Cambridge – UK or Montreal – Canada) or from home. Most the work we do for our customers is done remotely so only modest needs for travel and all hardware/software needed is provided.

Transmageddon and WebM

So after a long hiatus I finally managed to push out a new Transmageddon release, 0.16. In addition to a lot of new translations (big thanks to all members of the GNOME translation team) there are a few bugfixes in there, but most importantly this release adds support for the new WebM format, enabling you to quickly and easily make such files. Thanks to the work Sebastian and David did this was very easy for me.

Mandatory screenshot:

Transmageddon encoding a WebM file

Transmageddon encoding a WebM file

To make this work however you will need a lot of bleeding edge software, including todays git master of gst-plugins-good and gst-plugins-bad and libvpx installed (libvpx adds VP8 support).

This release also lets you put the On VP8 codec into other container formats, such as Ogg, Quicktime and AVI.

For Fedora users I recommend grabbing the latest libvpx SRPM created by Tom "spot" Callaway from Red Hat bugzilla. It should work perfectly with the GStreamer configure scripts.

For Ubuntu users I recommend the GStreamer PPA repository for getting latest libvpx. You probably need a newer gst-plugins-good than you find there right now though, but hopefully we will get that PPA updated today.

I also think libvpx has been packaged into Debian.

Totem playing WebM file

Totem playing WebM file

So I think that with this release Transmageddon is the first free software encoding GUI tool supporting the WebM format. At minimum the first I care about ;)

You can download Transmageddon 0.16 from the usual location on the Transmageddon homepage.

Note: Some long standing bugs, like trouble identifying some input files and no deinterlacing support, are still not fixed. I am waiting for Gst-conveniece to be ready with Python bindings, in order to fix those two bugs.

Engaged

Life sometimes takes unexpected turns and that is definitely true in my case. Some months ago I ran into Qurat-ul-Ain by chance and that one event has changed my life forever. Ever since that initial meeting this smart, beautiful, kind, reflected, headstrong woman has been the most important person in my life. Taking a cue from Beyonce I decided that since I liked it I should put a ring on it ;) , so last weekend I proposed to Qurat-ul-Ain and she actually said yes :)

Qurat-ul-Ain

My fiancee Qurat-ul-Ain

We haven’t set a date for the wedding yet, but we hope it do so this weekend, we do already know however that the ceremony/celebrations will take place in Lahore where Qurat-ul-Ain got her family.

So when you read this Qurat-ul-Ain, do know I love you deeply and I look forward to sharing my life with you and the family we will create together.

engaged

Holding hand with engagement ring

WebM and GStreamer

As many of you might be aware, Google today announced the open source release of the WebM Project and VP8 codec. What you might not be aware of is that Collabora Multimedia and Entropy Wave have been working with the WebM team and due to this are able to announce the availability of a full set of GStreamer plugins for this new and exciting video format, the needed updates to support the WebM container format and finally we have been working with Xiph.org and Monty to announce the availability of a Ogg container format mapping for WebM, which we have also implemented support for in GStreamer. So by grabbing our WebM branches from GStreamer git you can today do the following things with all GStreamer applications:

  • Encode video into the WebM VP8 video format
  • Decode videos which are in the WebM video format
  • Mux VP8 and Vorbis into the official WebM container format (based on Matroska)
  • Demux WebM files with VP8 and Vorbis
  • Stream VP8 video as part of Ogg http streams
  • Mux and demux VP8 into Ogg container format

We also hope to be working with the WebM project community to offer RTP streaming of VP8 as soon as possible after this launch.

So a big thanks to the good people at Google for releasing WebM to the world and for working with us and other members of the open source community to enable WebM usage in the open source community from day one.

So for the actual code all patches will be committed to gst-plugins-good/base/bad and will be available in new pre-releases today

For those of you running latest releases and prefer to stick with that until the next full release then patches against latest releases will be available from these locations (web interface):
http://git.collabora.co.uk/?p=user/slomo/gst-plugins-base.git
http://git.collabora.co.uk/?p=user/slomo/gst-plugins-bad.git
http://git.collabora.co.uk/?p=user/slomo/gst-plugins-good.git

You can read more about the WebM release at the official WebM blog post.

You find the official joint press release of Collabora Multimedia and Entropy Wave here.

Update: Thought I should also link to Montys blog which gives the official Xiph.org view.

Going to Lahore, Pakistan

I will be going to Lahore in Pakistan this Friday and stay there for about 3 weeks. Lahore is the old capital of the Mughal empire and I am really looking forward to seeing it. I thought I should post this blog entry to see if there are any active Linux, GNOME, GStreamer or other related people in the area. who would be interested in meeting up while I am there. For instance is the a Lahore LUG? If you live or are in the area and would be interested in meeting up sometime in the next few weeks please let me know on uraeus(at)linuxrising(dot)org.

I might also be doing a talk at a IET event while there, so if any of you are involved with that organisation I hope to see you at that event too.

GStreamer Conference 2010

I am very happy to announce that we are organizing the worlds first GStreamer conference on the 26th of October 2010. The conference will be organized in collaboration with the Consumer Electronics Linux Europe conference so this could be a great chance to catch two great conferences at the same time.

We already have some great speakers lined up and I hope to put up a draft agenda up for the conference soon. But in the meantime make sure to bookmark the GStreamer Conference 2010 webpage and check back from time to time for further updates and details.

Hope to see you here in Cambridge in October!