Pain in multimedia keyboard land

After my latest update of Rawhide I suddenly noticed my multimedia keys had stopped working. It turned out the feature had been removed as it didn’t work as expected. Instead one is supposed to use the keyboard layout settings now to choose the keyboard one have and it will contain mappings for any multimedia keys on your keyboard. A couple of things strike me, the first is that we should be very clear on communicating this switch, to many people assume or like to foster the assumation that we remove features for the fun of it. So it should be made clear that the feature is not removed, but moved. That said I am not sure our new solution is good enough, problem is that multimedia keys are horribly unstandarized and I fear the keyboard layout list might grow very long and ungainly with this approach. Part of the problem is that even with the same hardware maker the keys don’t seem to have a standard mapping. For instance in the layout menu there is a Inspiron 8xxx option, but they key-mappings for it doesn’t seem to match with my inspiron 8600 keyboard. Anyway, Bastien and Crispin is working on a Wiki page with some explanations on how to add your keyboard to the system so maybe it will at not be all bad.

Fluendo motorsports

Ok, some time ago I linked to some photos of the Fluendo sponsored motorbike from my blog. Now we have a demo stream up with a race video showing it in action. If you look closely at the red motorbike you see the Fluendo flower logo and you also see in on the walls in the garage and so on. Fluendo is truly racing ahead :)

Finally Ogg Vorbis works on the 770

Edgard Lima did it again, after a lot of hacking on his side and a lot of testing on my we finally got Ogg Vorbis playback working on the 770 using GStreamer 0.10 and the Tremor (Integer Vorbis decoder) working.

Using a pipeline like this:
gst-launch-0.10 gnomevfssrc location=http://stream.fluendo.com:8841 ! tremor ! dsppcmsink

I was able to listen to the Europa Plus Ogg stream. The CPU usage was about 25-30% on the ARM, but turning of some of the debug stuff etc., should cut it down a little more.

GNOME Board

Attended my last board-meeting on Wednesday. It was the transition meeting between the new and the old board. We talked about what had happened over the last year, what experiences we had both good and bad in terms of work processes and so on. And some discussion about funding levels and sources of income.

I have great hopes for this new board and I think that they are in an excelent position to make good things happen this year. Meanwhile those of us not on the board will continue with the most important part, making sure GNOME rocks and moves fast forward.

GStreamer 0.10 and multimedia playback

Edward have been working on a mediatestsuite for GStreamer 0.10. It contains a ton of files which we use to test GStreamer’s performance in terms of playback. You can
see a relativly new test result ouput here
. These files are a collection of the worst and thoughest files around (some easy pickings to of course), horribly muxed and badly/non-standard encoded. We are working our way through them, by making first none of the files cause a crash first and then making sure as many as possible suceed. Of course a lot of the crasher fixes also fix playback issues so even the short term crasher work help with the long term sucess percentage. I think its safe to say that your own playback percentage should be much better unless you are getting most of your media clips from a really horrible source :)

Newsforge story on our MP3 plugin

So
Newsforge
has a story discussing our MP3 plugin.
The article do point out one item we in the GStreamer community have been discussing since long before Fluendo’s founding. The issue GPL, patents and non-GPL compatible code. Which is also the reason why after a lot of discussion and thinking the licensing advisory was written.

Anyway the article has a few misunderstandings, the first is the claim that any GPL application shipping with GStreamer would need the exception clause. This is not correct, only programs that would use the plugins need it. Which is why there is no need to add a clause to gnome-cd for instance.

One thing we often considered is adding some for of API to GStreamer which would allow applications to say something like ‘I don’t want to load a non-GPL compatible plugin’ and through that allow distributions to keep shipping GPL applications alongside non-free plugins(to be used by other apps). This would funnily enough be a DRM system meant to protect the integrity of the GPL. The problem with a simplistic model here is that a user is not violating the GPL by installing a non-GPL compatible plugin themselves, so you get the same problem as you get with a lot of other DRM systems, it would overreach. We have discussed other models of solving the issue by crosschecking betweeen vendor tags and licensing etc., but so far the issue has seemed to complicated and the uncertainty that a good solution can be found has kept anyone from implementing it. Personally I think this issue should be solved on the application licensing side, which it slowly is, and articles like the one on Newsforge do help make people aware of this issue.

Another misunderstanding in the article is that distributions would not be allowed to build the plugin themselves. This is wrong, our license do allow that. We have tried to style our distributor license towards being like a tapping license for Coca Cola. The MIT source code is our ‘secret recipie’ and by signing an agreement with us distributions are allowed to use the recipie together with our name and trademarks to produce a real ‘Fluendo GStreamer MP3 plugin’. Of course the difference with Coca Cola is that our recipie is really not that secret and others, like Sun are going to use it together with their own Thomson MP3 license to ship GStreamer mp3 support. That plugin would of course not be a ‘Fluendo GStreamer MP3 plugin’, but a ‘Sun GStreamer MP3 plugin’

But the article to make one good point and that is that distributions who wants to ship things like the Fluendo MP3 plugin (or any other non-GPL compatible plugin, like the Monkey’s Audio plugin for instance) would need to only ship those applications that have an added clause to their GPL license, like Totem. Or which uses a license that allows non-free plugins by default, like Banshee (MIT) or Jamboree (LGPL in CVS).

The GPL v3

So the GPL v3 is out and judging by the relative lack of discussion in the community few people in the community have any big beefs with it. Which is a good thing of course, Eben promised it to be mostly about clarification not about any change of direction and he delivered on that.

There was a lawyer who stated that the interesting part wasn’t really the new GPL, but the new LGPL, which I agree with. The LGPL has stayed unchanged for much longer and its language is much more obscure (it almost has to be read in the light of the GPL to be interpretable). The impact for businesses in and around Free Software will be much bigger if the LGPL changes in a significant way.

Anyway there are a couple of items I am a bit unhappy about regarding the new GPL. The first is the lack of any true clarification of the ‘system libraries clause’, while using X Windows and kernel as examples at least makes the intent a bit clearer, but personally I think they should seriously consider saying that any library standarized by the LSB for instance goes under this clause. And if X Windows is included I guess GTK+ and GStreamer is covered by it too.
And one could muse that if Qt is bundled by the distribution you target with a closed source application, then Qt too would be covered by that clause and thus removing the effects of the GPL upon your application. One could even say that this is the opinion of Troll Tech too, as the systems library clause was something they called upon in their defense when people said it was a license violation to ship GPL apps with Qt in the old days before the Qt relicensing.

Another item which I am not to impressed by is the patent protection one. I mean what exactly does it mean to ‘shield’ downstream users from 3rd party patents lawsuits ? Personally I would think something like the MPL mandatory LEGAL file can be seen as such a shield, as it shields people downstream in the sense that it informs them of what patents apply and thus lets them aquire their own patent licenses before getting sued. On the other hand I guess the FSF interprets it as getting a transferable patent license that follows the code (or maybe not, license compatability was a goal with the new GPL so my interpretation would make the GPL more MPL compatible).

The DRM clause I have to admit I consider posing from the FSF, mostly there to get cheers from the crowd. Yes, they have some clever wording and a good defense against DMCA suits over GPL code, but in reality implementing a DRM systems and licensing under the GPL is a very unlikely action to be undertaken by anyone, DRM clauses or not. For example for the DRM work we have been doing ourselves at Fluendo lately, the amount of time we spent pondering using the GPL for it can be measured in no bigger units than nanoseconds. I also think the new anti-DRM measurements might backfire on the FSF in the sense that it makes the use of the GPL license less likely for a lot of security related software too. The thing is that the vast majority of software developers are not lawyers and seeing statements about having to publish all keys etc., is likely to make them uncertain enough about the implications to decide to choose another license for their security software, no matter how little it has to do with DRM or not.

Of course I am not a laywer, so most of these observations might be completely wrong :)

Building the Perfect Audio Editor

Jono Bacon blogs about the new Audio editor project he is trying to kick of. Jono has done some really nice design and planning work and I really hope he manages to get this project of the ground. It is sad that they are stuck using Windows for recording their LUG Radio show. So any developers out there who want to get involved in a really cool multimedia project should head over to Jono’s page to read up and then get in touch with Jono about contributing.

Making stuff look good

These mockups
with proposals for what GNOME could/should look like have caused some stir. Currently they do some stuff not yet possible with GTK+, but I think they are a great starting point for current and potential GTK+ developers to get an idea of what kind of features to add to upcoming GTK+ releases. I think mockups is the only plausible way to get an idea of what theming features are worth going after.

A very pleasant experience

Some time ago I asked about the ‘best’ http library to use. In the end we had to decide between libsoup and neon. I was partial to libsoup, but since part of the reason we wanted this new http element for GStreamer was to have an element to offer non-gnome projects like Amarok, the choice ended up being neon.

Anyway the incredible Edgard Lima did the hacking and today we have a sparkling neonhttp plugin in our CVS repository. It turns out however that Shoutcast servers aren’t 100% http compliant, having a slight variation of http called the ICY protocol. libneon didn’t like this very much. Luckily the libneon maintainer Joe Orton was willing to make libneon accept even ICY traffic as soon as we explained the issue to him and the next version of libneon will accept also ICY traffic.

A big thanks to Edgard for making the plugin and to Joe for being so helpful and pleasant to work with resolving the issue we had.

One step closer to world domination :)

Fluendo MP3 plugin and Sun

Also nice to see Brian and Sun looking into using our MP3 plugin with JDS. One thing which I think some people missed is that you can of course use the code to add mp3 support to your system, even without signing a contract with Fluendo, as long as you have your own mp3 license from Frauenhoffer/Thomson, which Sun do. Regarding the the other points of Brian posts, I did merge the sunaudio plugin patches to both our 0.8 and 0.10 trees yesterday, and the missing file is taken care of long ago :)

Where Creative Commons botched

I think Creative Commons is and was a great effort, but I think they made one critical mistake, the non-commerical clause. I can understand that at first glance that making it possible to limit ‘commercial use’ seems like a good idea, at least in order to get people onto the idea of copyleft style licensing, but in practicality it kills the basic purpose of the license, to allow people to freely copy.

For instance many websites which would be interested in distributing this content and provide free downloads of it, use banner adds to pay for or subsidize the cost of the servers and bandwith. Problem is that as soon as you add that banner add, you are enganging in a commerical activity and are no longer allowed to distribute anything with the non-commercial clause.

I ranted on this issue in a recent
mail to the Creative Commons license list
.

Mono and GNOME

Red Hat’s decision to start shipping Mono based applications and libraries have altered the landscape quite a bit in the ongoing discussion about Mono’s place in the GNOME development landscape.

Although Sun probably is still negative they do have a partnership currently with Microsoft which should make shipping Mono with their GNOME desktops less of a problem for them.

While I don’t think this makes the decision that Mono is the future of GNOME, I do think it means that Mono have a place in GNOME’s future.

GNU Flash

Frederic Crozat pointed me to a news article about GNU Flash today. My opinion is that GNU Flash is a mostly useless project due to its licensing. Flash today isn’t just playing Flash animations, it also includes audio through mp3 support and 2-3 video codecs non of them free. Which means a GPL flash library will never be usefull is large parts of the world. People should instead get involved in Swfdec which is LGPL and already made to integrate with GStreamer. If GNU thinks flash support is important they should offer it under a license that doesn’t make half their users wait 5 years before they can legally use it. Or if they wanted something to compete with Flash and which is free they should join up with librsvg and help improve it to become a Flash killer. Combining SVG with SMIL should create something very similar to Flash in capabilities.

Cleaning up our sites

Jaime Hemmett is now working fulltime on for Fluendo, fixing and developing our websites and our stream hosting backoffice solutions. So our pages will be of better quality going forward now with someone actually working on making them good. Up to now its been me or Thomas fiddling with them as time permitted (which it seldom did). One thing Jaime fixed right away was the annoying frame setup we had making linking to anything but the front page of www.fluendo.com a pain.

She is also working on improving our webstore so its ready for business.

One little webhack I did allow myself today though was adding the Europe Plus WMA stream to our directory listing.
As some might guess this also means our WMA encoder plugin will go into our beta program soon and then appear in the webshop.

Friday morning web development

To get an easy start of my day I fixed the Project Schrodinger
pages to be fully w3c compliant. Fixed a lot of other stuff as part of it too, like splitting out the header and footer for the pages into separate shared files.

Only thing I am not 100% happy about atm is the video reel’s visual appearance. They actually looked a bit better before my fixes. Not sure how to fix them properly as it was a kinda dirty trick I used to have then look ok before. I think if I could make the reels be a separate class applied to the TR element instead of the TD elements that would give me perfect looking reels, but my experiements so far have failed me (I am not a very good web developer).

Was happy to see the Schrodinger project mentioned in the LWN weekly summary as part of their development section.