Good progress on 0.10 items for 2.14

Just noticed that Ross closed the port GStreamer to 0.10 bug as resolved. Things are also looking good on the GNOME Media side with the planed release for today making sure everything is ported and working nicely.

Julien and Tim have also been making very good progress on getting Totem up to speed, with Julien commiting first stage support for .sub subtitle files to CVS yesterday. And now working on polishing it up with proper seeking support.

Another long standing issue now getting some attention is that of multiple soundcards and USB soundcards. Jürg Billeter is now hacking on the problem and hopefully this will give us a really sweet solution for this problem. Go Go Jürg!

Travelling in Barcelona

So I got of my lazy ass yesterday and onto my bike. I biked all the way up to Tibidabo which is a church and ammusement park located on a mountain behind the city. It was heavy going getting up there, especially as I had no clue on how to get there I just biked straight ahead, which meant making my way through some residential areas and also through narrow forrested paths climbing the mountain. Going down as easier as I just followed the main road, although I thought I where to freeze my fingers off :)

GPL and DRM – the real battle

In an earlier blog entry I commented on the DRM provisions in the GPL 3 draft and why I felt they where empty grandstanding from the side of the FSF. A lot of people from various side of the fence seems to disagree. A moronic Microsoft employee muses that ‘With it’s anti-DRM provisions, …….., open source loses as proprietary software rushes in to fill the void left by GPL code.’. My only reply to that is; yes, as we all know all DRM related software today is using the GPL…..the void caused by DRM implementations no longer being possible to license under the GPL will be overwhelming……. If this is the kind of thinkers Microsoft must hire these days then they are in bigger trouble than I thought.

On the other side the Groklaw crowd is discussing if the current DRM provisions in the GPL v3 draft can be worked around. Yes, once again we see the belief that the amount of people spending energy on trying to do DRM systems under the GPL license is huge. To the Groklaw crowds defence they are also discussing the point the I was trying to make, that the DRM provisions might have uninteded side effects.

Fighthing DRM the only way it can be fought

Anyway I have come to terms with that most of the extended community at this point follows the policy that they are ready to fight something to their death as long as it doesn’t inconvenience them in
any way. So they spend their morning screaming online against the evils of DRM systems and software patents before going down to the local store to by a new DRM using DVD, sporting patented media formats.

Anyway I figured I should try to actually do something which will have a real effect if more people starts doing it. I signed up for a music store which sells DRM free music. emusic offers DRM free mp3 downloads of their whole catalog, which was much bigger and had more well known names than I had expected. They even give you the first 75 songs for free. True, I will not find the common radio hits there, so I have to live without Brittney and Madonna, but at least I get DRM free music.
To bad they don’t offer Vorbis downloads, but once again if enough free software people sign up and start requesting it then I think they are still small enough to actually listen to us. Anyway I am now listening to some cool music from a band called Ladytron. I also found some nice Frank Zappa songs there. I guess the lesson I am trying to teach is that action speaks much more than words; which maybe is something the Slashdot crowd should take to heart? :)

Continued stream testing

Thanks to Tim, Bastien and James from Virgin Radio we where able to resolve a lot of issues with the streams today.

None of the streams ‘bork’ out anymore. Those that don’t work will nicely tell you so. A pleasant suprise today was that with the playlists and their parsing fixed, the Real streams worked nicely. The AAC+ stream also got nicely fixed today by Tim.

The RTSP only streams (like the one called Real 10 AAC) still doesn’t work and won’t start to work until we get someone interested in helping with the RTSP support.

Also have some weird WMA or MMS issues which makes the WMA stream not work properly atm. Need to have Julien to look into that I think in order to figure it out. Although not having any firm proof I do suspect mmssrc, but I guess that is partially cause I know libmms is as good as orphaned and in desperate need of someone to come and adopt and love it.

Still all in all some good progress today, and once again a big thanks to Tim, Bastien and James for their efforts.

Testing GStreamer 0.10 and Totem

Seems Virgin Radio UK are streaming in every possible format known to the Gods above and probably a few even the gods don’t know about. Anyway I figured it be a good test for GStreamer and Totem, so I went through their streams to see which work and which needs more work. Things aren’t quite as rosy as I had hoped, but apart from the issue with chained oggs there wasn’t anything I would consider embarasing either. Most if the issues where related to our RTSP support being early stage though. Wim did write a rtspsrc element some time ago, but there has been little RTSP client side work happening since then. Hopefully someone with an interest in RTP and client side support for it will take a look at these streams and totem and start hacking to get them working. Should be doable within a week or two, including writing the needed depayloaders, but it of course depend upon how much RTP and general programming experience one got.

Of course everthing wasn’t about missing functionality in GStreamer. Two issues where one which needed to be resolved by Totem’s playlist parser, one of them which bastien fixed right away. Tried mailing Virgin Radio reporting that their playlist needing fixing, wonder if they will ever get back to me on that :).

In related news I managed to view a windows media video in Mozilla using the Totem browser plugin today using the Fluendo Windows Media plugins. the MadModMike demo video from Nvidia worked fine. Was a tiny stride issue in the wmv decoder, but that should be a quick fix for Julien and David. As soon as that issue is fixed I will send out the Windows Media plugins to our beta testers.

Since I am on the media support issue. Got a new issue of Red Hat magazine today. Was happy to see that the Ogg format was back among the video formats supported and that it was of good quality this time. Good going Red Hat!

Multimedia keyboard howto

So thanks to Crispin
and the people commenting on his blog I at least figured out how
one creates new keyboard profiles for X11.

Step 1: Get the numerical code for the key using the ‘xev’ tool shipping with X

Step 2: Figure out the X11 code by looking up those numbers in /usr/share/X11/xkb/keycodes/xfree86

Step 3: Add a section to /usr/share/X11/xkb/symbols/inet with those codes linking them to relevant XFree86 codes. (make a backup copy first) For my laptop that ended up with:

// Laptop/notebook Dell Inspiron 8xxx
partial alphanumeric_keys
xkb_symbols "inspiron" {
    key <I22>   {       [ XF86AudioPlay, XF86AudioPause ] };
    key <I10>   {       [ XF86AudioPrev         ]       };
    key <I19>   {       [ XF86AudioNext         ]       };
    key <I24>   {       [ XF86AudioStop         ]       };
    key <I30>   {       [ XF86AudioRaiseVolume  ]       };
    key <I2E>   {       [ XF86AudioLowerVolume  ]       };
    key <I20>   {       [ XF86AudioMute         ]       };
};

Step 4: Then make a unified patch by doing:

diff -u inet inet.backup > inet.patch

Step 5: And finally submit
a bug into the freedesktop bugzilla

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 :)