The end of a bug

Wim finally closed bug 320984 today. This is the Chained Ogg bug which has been open in GStreamer bugzilla since 2005. So with the CVS version of playbin2 we can finally handle these files properly in GStreamer. While the amount of chained ogg files out there is limited there are at least a few internet radio’s using them for their streams.

With the recent work being done here at Collabora by Pierre-Luc Beaudoin enabling the HTML5 elements in GTK Webkit using GStreamer, it is good to know that even these ‘corner case’ Ogg files can now be properly supported. Will of course still be some Months before this feature has made is way from our development repository to being packaged by your favourite distribution, but at least know it is on its way :)

Nokia on Ogg

Slashdot linked this weekend to a Nokia position paper on the use of Ogg in the HTML5 proposal for the media elements. For those of us who have followed the HTML5 discussion for some time there is little new in the position paper, he is simply regurgitating the same arguments that Apple Safari people came up with.

Let me start by saying that I know that Nokia is a big organisation and that the opinions expressed by Stephan Wenger in the linked position paper do not reflect the opinion of everyone at Nokia. So unlike the Slashdot crowd I am not putting this position paper at the feet of everyone at Nokia. I would point out that Stephan Wenger’s job at Nokia seems to consist of traveling the world attending MPEG meetings eating canap’es, so there is probably a lot of self interest in that position paper also :)

That said I do feel it correct to address some of the concerns/claims made in that document and by some Slashdot commenters.

To start with the Slashdot headline, the definition of proprietary in this context I guess could be open to debate, I have myself referred to technologies as proprietary if they are mostly a one group/company effort myself, even if the code is available. If that description would fit Ogg, Vorbis and Theora is another matter, but I will for the sake of argument allow that the what makes something proprietary in the context of software is open to some discussion.

What I felt was the biggest red herring in the paper was actually the musing about DRM. There is nothing stopping you from DRM protecting Ogg,Vorbis and Theora content and thus his arguments about the need for DRM support seemed rather misplaced. Sure you can not play back a DRM protected file on a system only supporting the normal playback but that is true for any format. You can not play back a Windows Media DRM’ed file on a non-DRM supporting Windows Media stack either. Same for playing back a Fairplay protected AAC file on a system with no Fairplay support. And unless he wanted to also standardize on a specific DRM system in HTML5 it doesn’t matter what format you use cause if people use different DRM systems you don’t get better interoperability anyway. An OMA DRM protected AAC file do not work with a Fairplay enabled AAC playback system and vica versa.

He also spent a some time nagging about what are the currently popular formats on the net and what terms they are commonly available under. The cutest argument however was how he managed to try to say that if the W3C accepted a royalty bearing set of codecs for this specification it could at the same time try to push for more royalty free stuff through MPEG and ITU-T…..yes….sounds brilliant……no better way to convince organizations creating royalty bearing standards that they need to do royalty free standards than to start paying money to use their standards…..errrrr NOT.

His section on Alternative ways forward is also quite hilarious. Proposal 1. Leave it up to the market forces. Dude, standardizing on Vorbis/Theora is part of creating market forces. And for the claim that the market had quickly chosen something at earlier points in other non-related markets was also quite hilarious. If he instead had looked at the Web of today there is a big mix of stuff being used like Windows Media, Quicktime, Flash Video, DivX, Real Media and more. And its been like that for a long time. The only way the HTML5 media tags have any hope of causing consolidation is of course to propose specific codecs for HTML5. If not there will be zero motivation for anyone to move away from their current Windows Media or Quicktime or Flash or whatever solution.

His second option was to adopt some ancient standards which where sure to be out of patent. One would have hoped a position paper from a world leading organisation like Nokia would be held at a higher professional standard than being based on a random authors ‘author’s personal experience‘ to quote the article. That said Theora as it is could be better and it is in the process of getting a lot better due to Monty’s ongoing work.

His last proposal is of course the oldest most true and tested way of trying to derail an effort: propose to set up a committee to investigate the issue…

Hopefully the next time Nokia want to write a position paper on something they will choose someone to write it who wants to be part of the solution and not the problem.

Interesting multimedia developments

I ended up doing a full reinstall of my Fedora 8 install yesterday. It finally gave me a chance to play with PulseAudio. I guess I have for a long time belonged to the group of people skeptical about the value of a soundserver in a local setting. But working with people like Wim and having them tell me my skepticism is misplaced and that PulseAudio seems to be doing it right I haven’t voiced my skepticism to loudly.

And while there still is some work needed on the UI side (something I saw Lennart point out himself in a wiki post) I have to say the functionality provided by Pulse is nice. Those who have followed the latest iterations of GNOME would have noticed that the audio support has been evolving at a steady pace for quite a few releases. These things have focused on playing with the GStreamer gconf elements which allows your sound output to be configured through various GConf keys. This does work, but it do not lend itself to a high degree of granularity and we still have some way before it provided the user experience we wanted in terms of devices that come and go like USB and Bluetooth headsets. PulseAudio seems a more natural fit for these scenarios and I have to say it was a fun experience today switching audio back and forth between my USB headset and the laptop speakers using the PulseAudio mixer.

As said some UI improvements is still needed before this is perfect, for instance it took me a little time to figure out how to do it before eventually discovered that right clicking was my friend :). But I have to say the feeling I got is that this is the way forward and that the foundation is very solid.

And of course thanks to the PulseAudio GStreamer plugin Lennart wrote all my GStreamer apps work wonderfully in this new PulseAudio world :).

GStreamer on MacOS X and Windows

Speaking of GStreamer, Julien commited two plugins recently to gst-plugins-bad I think are quite exciting. The two plugins in questions are a Quicktime codec loader for MacOSX and a DirectShow codec loader for Windows. The Quicktime loader, which I believe is the first working one available in any open source project, gives GStreamer access to native codecs when running on MacOSX. This means that when you run a GStreamer application under MacOSX you don’t need to install GStreamer specific codecs for codecs provided by MacOSX by default.

The DirectShow codec loader is very similar to what people have been using under linux for a long time to load Windows codec .dll files using Wine, but once again its goal is to enable access to native codecs when running GStreamer under Windows.

The MacOS X plugin was written by Edward Hervey, while we were still at Fluendo, and the Windows plugin was written by Sebastian Moutte, Juliens brother. The two plugins where done as the result of an agreement with Songbird so a big thanks goes to them. In fact the Songbird team just recently released their 0.3 release of the Songbird player so if you haven’t already you should give it a try.

So anyone reading this who runs and/or develops with GStreamer on either Windows or MacOSX platforms please test the plugins and help ensure they can be moved over to gst-plugins-good in the not to distant future.

Life in England

Beginning to feel settled in here in Cambridge now with most practical stuff taken care of. Sharing and office with Rob and Daf here at Collabora has been a very nice experience so far. Cambridge is also a really interesting town with a lot of things happening. For instance on Wednesday I attended the founding meeting of Games Eden, a business networking organization for people in the East England area involved with various aspects of computer game industry. The meeting was attended by for instance the guys from Ninja Theory who are behind the PS3 game Heavenly Sword, David Braben the man behind the legendary game Elite and who runs his own game development studio here in Cambridge was there, Andy Serkis was there, who was the person giving life to the characters of Golem in Lord of the Rings and King Kong in the movie by the same name. Andy was partly there due to his involvement in the creation of Heavenly Sword, but he also had some very interesting business ideas which would ensure his future involvement in the game industry going forward.

Things going very well business wise at Collabora, seems there is not a week going by without a new company popping onto the scene using GStreamer, often in conjunction with Telepathy. And more often than not they are also interested in our help with getting their products and projects moving forward. Ended up with a lot of onsite assignments recently which has had especially Edward probably spending more time away than at home. :). I also have to say that I am quite impressed with how Robert and Philippe manages to keep so well coordinated across time zones and continents. It think it would have been very easy to end up with two very separate units with the team almost spread 50/50 between Europe and Canada, but they somehow manage to make it seem easy to keep the two parts of the company humming like one integrated machine. Part of it is of course applying open source social mechanics to organization of the company, but even with that as a background it is a big challenge and Rob and Philippe without a doubt got a natural affinity for the challenge.

Open Source Video Codecs

At various recent conferences I have been asked if I think there is any hope for free software video codecs. Outside the core linux community the amount of people who even know that Theora exists is still quite small. That said and while it still is a big canvas to bleach, I do think open source video codecs have a mainstream future. At least most Linux companies are providing Theora copies of their promotional videos now, which it wasn’t that long ago they didn’t. We are still a bit raw on the tools side though, and while Pitivi is making good strides forward, its still isn’t ready for production use. One great piece of news on the Theora side of things is that Red Hat has Monty working on improving Theora further to improve video quality and get the magic 1.0 release of libtheora out. Check out this write up by Monty to get the details.

Dirac is also making strong strides forward and version 0.9.0 of libschrodinger, which got released today, will feel like a great leap forward for the causal tester. Most noticeable is that David Schleef tweaked the default parameters of the encoder to produce even nice looking images when transcoding high definition clips. This means that even if the tons of parameters you can set on the encoder is ancient Greek for you you can still play with it and create good looking video’s.

David also spent a lot of time for this release allowing you to set a specific bitrate for the encoded file, a feature a know a lot of users have wanted. That said the bitrate specification for Dirac is still not finished so any files produced with this version are not likely to keep working as development continues. But at least you can play with it now and get an idea of what Dirac will be able to do in the near future.

And of course on the horizon we do have the mp3 and mpeg2 patents ticking down towards expiration within the next 2-3 years, making these extremely common codecs free.

Working for Collabora

So with the press release out I guess its not a secret anymore that Wim, Edward, Tim and myself are now working for Collabora. Those who read my blog entry about our future plans a while back might have expected us to set up shop on our own, well so did we. But when Rob and Philippe came and offered us to join Collabora we decided it was an opportunity too good to pass up on.

The four of us are really excited about this and together with the great team Rob and Philippe have already assembled at Collabora I think we have some great things in store ahead of us. We have already lined up some interesting customers between us and I think people will be surprised about some of the projects we are looking at currently which are taking our key technologies such as GStreamer and Telepathy into some truly fascinating territory.

So next step, world domination :)

UPNP tools for Linux

As most of you know Zeeshan has been hacking on creating a set of upnp tools for Linux similar to those Intel makes available for Windows users. I decided to give them a test run on Fedora to make sure there where no distro differences screwing up the build, but everything went smoothly apart from some pkconfig weirdness which I think is a Fedora bug. Anyway below is a screenshot of the upnp tools control point application viewing Coherence.

Zeeshan’s Upnp tools

I think these set of tools will be of great use as things such as DLNA becomes more and more prevalent. People using the GMAE stack for instance will probably be very happy to have a native testing suite available. A big thanks to Zeeshan for the effort so far!

Update: I should have mentioned that the upnp library that the upnp control point application is using, gupnp, is done by Jorn Baayen at Opened Hand. So a big thanks also to Jorn for this.

Update 2: and for those who don’t know the Intel upnp tools and what they do take a look at this page.

gnome-sound-properties

I have known for some time that there was a work being done on improving the sound handling in GNOME, but I somehow missed out on it until today. Decided to test a USB headset and figured I would need to edit a GStreamer pipeline to get Banshee to output to this USB device. Then someone pointed out that there is GNOME sound properties now which I then used and noticed a ‘USB audio’ option having popped up. And it just worked.

So to the authors of gnome sound properties a big thank you from a happy user!

GNOME Sound Properties

International Herald Tribune talks FLAC and Shorten

I picked up a copy of the International Herald Tribune today (which is sorta the internationally targeted version of The New Your Times). On the front page these was a small entry called ‘The End User: A revolt against MP3’ pointing to an article inside the paper. The article talks mostly about how increased bandwith and storage is causing a lot of people to look at lossless audio formats for the music collections. While the article mentions that both Apple and Microsoft have such formats available most of the article talks about FLAC and mentions some tools available for creating FLAC files.

The article made me think a bit as I have been pushing for a bundling of a surround sound tuned version of Vorbis with Dirac to create an open source ‘killer combo’. But reading this article, which also mentions that Dolby and DTS are offering lossless codecs for surround, I started thinking that maybe I was thinking of a response to yesterdays challengers, and what should be done is work on surround sound with FLAC and then create a killer bundle of Dirac and FLAC. I mean FLAC is already the leading lossless codec, and while the iPod only supporting ALAC might help make that format relevant, we might have a good chance to build upon the success of FLAC going forward by putting it to use in a wider array of usecases.

The Incredible Summer of Code students

One thing I wanted to do for a while, is write up an entry praising this years Summer of Code students working on GStreamer related projects. The success rate of a Summer of Code project is a highly uncertain thing for a variety of reasons including things like overly optimistic time estimates, underestimation of the difficulty in doing the task at hand, bad/missing communication between mentor and student and so on. And of course even in the cases where a student manages to meet the objective goal of the summer project it do not necessarily mean that the upstream project will be able to merge the results without further work.

Anyway, this year things seems to be progressing extremely well with few or no major hickups.

Michael Sheldon have been steadily progressing on integrating Telepathy and Jokosher and his recent screenshots of his progress are truly exiting. Applications taking advantage of the advanced infrastructure that has been built to do some innovative things is something we wanted to see happen for a long time and this one has also been on the blue-sky plans for Jokosher from early on. Some nice screenshots available here and here.

Sebastian Droge have been hacking on improving our infrastructure for doing media editing/manipulating applications as part of his Summer of Code and most of his fixes are already in GStreamer CVS. He is currently working on fixing the long term painful issue of accurate seeking in mp3 files, which has been causing pain and problem for both Pitivi and Jokosher for a long while. Not a highly screenshootable effort, but none the less a very critical one.

Thanks to the incredible work that Brandon Lewis has been doing on Pitivi as part of his Summer of Code we now have cutting in Pitivi which is a major milestone in getting Pitivi to a stage where its actually useful and not only showing a lot of promise. More on that including a screenshot in Edward’s blog.

I guess you all have read Daniel Siegel’s great blog entries outlining the development of Cheese. This photoboot like application just kicks ass and what is more I am sure we will be able to resuse a lot of the work of Cheese in for instance Empathy as that efforts gears up to take on iChat in the blingy chat client space.

Alessandro Decina has also been kicking ass on improving GStreamer’s DVB support, which he is working on for the Freevo project. He is initially focusing on DVB-S, but to make sure those of us viewing DVB-T didn’t get left out in the cold, I bought a DVB card for my own money and sent of to Alessandro :)

So to sum up, you guys rock!