What to do with features nobody wants to implement

Tim Janik had a post about never rejecting a feature request, which got me thinking about an issue in the GStreamer bugzilla. We have a gazillion requests for support for every weird audio or video format under the sun. With weird formats I am talking about things like gameboy audio, NES audio, computer game video formats and things like that.

So these kind of requests seldom comes with patches and I tried asking for such a few times. They are also not something you don’t generally get anyone interested in helping out with, as people who just want to help out on GStreamer prefer working on something that a large numbers of users might actually enjoy, as opposed to something only the 5 person linux-based gameboy audio format community might get a thrill from ;)

So my opinion is that such features will only ever enter GStreamer if the bugreporter is interested in doing it him/herself. And if that not the case they are just ‘bugzilla clutter’.

So we are left with a situation where we have tons of stuff ‘cluttering’ bugzilla, yet it feels a bit bad closing them as they are valid feature requests and of course you can ignore the bugs by excluding enchancements from your bug search for instance (although that also filters out the more realistic feature enhancements).

Now I realize of course that the lack of gameboy audio format support makes GStreamer useless for people like Linus, and that we are fucking idiots for not diverting resources from for instance improving VoiP support over to work on supporting such formats, but in the meantime I a trying to figure out a usefull way to deal with these bug reports :)

Usability

The little flamewar with Linus about usability do bring up a few good points. So usability was made a focus for the GNOME 2.x series and a lot of good have come of that, but it has had some unforseen side effects.

First of all, the vast majority of GNOME users and developers don’t know the details of why certain things are like they are in any given module, we only know the details of the select modules we develop/follow closely. The issue of printer options as discussed is one good example, I had no idea (before the Linus thread) why things where the way they where.

The problem is that we and the community in general have started to assume that UI design decisions are behind everything in GNOME being the way they are. So when people come complaining about missing printer options, the assumption is that that its a design decision and not simply something not implemented yet (as was the case in the printer options case) or Havoc simply not having had the time and interest to work on Linus’s mouse button mapping issue enough to bring it to completion. Yet, out there people assumed this things where caused by design decisions, even people relativly close to the development community, and often people would even give this assumption as the answer to anyone they talk with who brought up the issue.

The rate to which this belief has become embedded in peoples conception is actually amazing. I have had multiple discussions with people complaining about this or that in GNOME, and when looking into it finding that the reason something is the way it is has nothing to do with a ‘make it simple’ design decision, but simply that the developers haven’t gotten around to it yet, or in some cases not being aware of the usecase/need. And I have then found that when returning with this information I actually have to spend a lot of time convincing people that their wanted functionality XY is simply a lack of developertime/awareness and not a concious UI design decision.

This is a problem in many ways. It creates fertile grounds for silly misunderstandings like the issues brought up by Linus.It might also cause a lot of people to not create patches adding the functionality they want because they assume its omission is on purpose and thus hindering people from joining the project.

On the other hand I guess it do mean people have a lot of faith in the level of the UI design work going into GNOME, since they obviously assume nothing is in GNOME or ever happens in GNOME without a lot of UI thought having gone into it :)

Stop playing those songs!

So its seems RIAA is topping themselves. I guess their success at stopping the filesharers have left them with lawyers who need something to do. So now going after people who share notes or lyrics too. The argument seems to be that having people sing popular songs around the campfire causes artists to starve. Saddest part is that this ugly behaviour where first started by a Norwegian organisation called Kopinor.

Be aware, their next goal is to have you arrested for humming in the car.

libmms

In what almomst feels like being inconsistent I am happy to announce the availability of libmms 0.2. This latest version now includes mmsh support so you can listen to any MMS stream out there. Check out the download site for details. Edgard Lima updated the MMS plugin to GStreamer 0.10 and this release, so in gst-plugins-bad you know find the mmssrc plugin.

GUADEC sightseeing

Wingo and I took the train to Villanova yesterday to check out the town that will be the scene of next years GUADEC. We ate lunch there and strolled around the city and the beach for a few hours. The town seems pleasant and the connections are excellent. Even if people arrive at the main Barcelona airport it is very easy to get there with a short train ride from the Airport to Barcelona Sans and then another short train ride out to Villanova. Villanova is a bit comparable to Kristiansand in terms of size it seems, but maybe a bit more compact than Kristiansand was. And much cheaper :). The resturant we went to had very good food, Wingo claimed they had the best fish he tasted for far in Spain an I got a really nice desert, blackberry youghurt ice with fresh strawberries.

Software updates

Tried updating my system this weekend in the hope that a newer version of Evolution would fix a crasher bug I had. Ended up upgrading a lot of stuff, including Firefox. Firefox 1.5 seems nice, and it was good to check my svg comparison test to see how it fares against the Inkscape and librsvg. One strange thing though is that it seems to default to quite large font sizes in its GUI for some reason, and I was not able to re-adjust it. Evolution still crashed though so I ended up filing a bug on it.

New release of gnome-themes-extras

I had basically given up maintaining gnome-themes-extras, but yesterday, having a public holiday here in Spain, I sat down, merged the latest changes from David Vignoni, went through the bugzilla reports and put together a new release. gnome-themes-extras 0.9.0 is out!. Special thanks to the translators and Josselin Mouette (who contributed the cool new mixer icons). Even ended up doing some more work in CVS after the release, so expect a new release soon. Just going to give Thos a few days to do some long promised Gorilla work.

GStreamer and DRM

Thought I should use the chance to clear up some questions about GStreamer and DRM that has popped up over the last few days since my last DRM blog entry.

How will the DRM stuff be implemented? Will it take over my system and not allow me to do the stuff I do today with GStreamer?

The DRM additions are being done as a separate helper library and using special plugins. This means the core of GStreamer and the current plugins will remain untouched by this change. The DRM enabled plugins will be able to playback both DRM’ed content and normal non-DRM’ed content in the formats they support. You can have both your current free software plugins and any drm enabled plugins installed even if they support the same formats.(Just like GStreamer 0.8 could play back mp3’s using both the libmad plugin or the ffmpeg plugin). This DRM implementation is not something that tries to hide itself on your system like the Sony CD stuff, it will be there in plain view with clearly marked packages if you choose to install it.
So no, it will not in any way ‘take over your system’.

Why would I want to install the DRM additions?

Because they give you access to playback things you wouldn’t otherwise. Many music stores only offers DRM’ed WMA files for download, and without a system supporting Windows DRM these files are useless on your Linux system. DRM also includes stuff such as the protection mechanism on the upcoming high-definition DVD’s.
That said, what DRM systems actually get supported depends on more than just having the technical infrastructure in place, like being allowed to ship support for the various DRM systems etc. Some of the DRM system vendors disallow desktop Linux support by default for instance due to fears that the open nature of GNU/Linux will make it to easy to circumvent..

Still couldn’t I just wait for JLJ and friends to reverse-engineer these DRM systems? Like what happened with DVD CSS?

Sure. But that means you have to wait for quite a bit after each such system is released and no distribution will probably dare to actually ship it. But I am sure that such things will be done also in the future and I am also sure there will be GStreamer plugins using them, like there is a GStreamer plugin doing DVD CSS.

Is it really possible to do DRM as Free Software?

Sun claims they have a system that does so (and has released code to prove it).
I haven’t looked in detail to how it works, but I would say that saying in general that open source DRM is impossible is like saying that GPG can’t be secure since its free software. There might be some ramifications of being free software which will make the resulting system have conditions for use that makes it painful, like a requirement for being online when playing back as an example, but its definetly not impossible.

What DRM systems will you support?

The DRM system is being developed in such a way that anyone who wants can implement a DRM module for their DRM system of choice. Fluendo will probably support a couple of DRM systems ourselves, but it is not sure at this point in time that we will provide them for use outside the embedded market. Customer interest and what kind of contracts we are able to negotiate will decide that.

GStreamer 0.10.0 is out!

Noticed on freshmeat today that GStreamer is about 6 years old now. And we celebrate that by doing the first release the new 0.10 stable series.
The amount of work gone into this release is staggering, but it feels mighty good. Sure there are still things missing, like decoders and demuxers for some formats, but all in all the framework is ready now. Worked on a release announcement which turned out pretty sweet, next step world domination!

DRM and GStreamer

Sun finally released the Opera DRM sourcecode the other day which is part of their Open Media Commons effort launched some time ago. It is interesting in the sense that its a major DRM effort with a complete implementation available.

In that regard I think its prudent to mention that we are currently working on DRM support for GStreamer at Fluendo currently. The goal is to have a framework for using various DRM systems with the GStreamer framework without interfering with the way GStreamer currently works. Opera DRM is one system we are looking into implementing support for as a proof of concept. Since its free software it fits well with our goal of releasing our DRM integration stuff as free software too (although it will allow for closed source modules to be made for things like Windows Media DRM and Fairplay for instance).

The DRM work has included a lot of thinking on our part about the implications and I think its safe to say that we love DRM as little as everyone else. On the other hand we have also seen that a lot of doors get closed on us, GStreamer and GNU/Linux due to lack of DRM support, which means people in those cases go with a Windows based solution instead. Which of course is no win for free software.

On the other side there is the question on how far you should go in trying to accomodate people too and I am sure many in the community feels that any sort of DRM support is going too far.

For me personally it comes down to a evaluation of what we can achieve and what position we are operating from. Personally I doubt technology providers will be able to dictate this, or rather if we say no then someone else will say yes (ie. Microsoft). The only group out there with the power to shut down DRM are the consumers, they need to revolt at the idea and stop buying music and movies which are using DRM. What we as a technology provider can do is try to move DRM usage in favour of the more userfriendly and fair systems.

In some ways I hope we will be able to do with DRM what we hope to accomplish with our streaming hosting platform. People come to us and ask for WMA or MP3 streaming, and we are able to give them that, but we also give them Ogg streaming as part of the package. In that way we help make sure more and more content is available as Ogg streams and through that help solve part of the chicken-egg problem that is there in regards to widespread adoption of Ogg.

Of course all that said, we are running a business at Fluendo and making money is of course one of our main objectives (companies who don’t have that objective tend not to be around for long for some reason), so I am not claiming we are altruism incorporated. But we do try to do morally ‘the right thing’ in the way we operate and do right by the community we sprung from. So I hope we do not anger the community to much by our current work.

It also have to be said that there are some technology landscape level changing agreements being part of this. I am not able to say anything more about that at this point, but we should be able to make some announcements about it during the first half of next year. Hopefully when its announced people will agree that we did the right cost/benefit calculation.

Listen to da Music

So Europa Plus is now online streaming their Radio channels in mp3 and Ogg Vorbis using Flumotion and our soon to be launched Fluendo Streaming Platform (stream hosting service).

Go to their webpage and click on the ‘live’ button to get access to the streams.

A Feast for Crows

So I got George R.R. Martins latest book ‘A Feast for Crows’ delivered on Friday and spent a large part of the weekend reading it. The book has been something of a disapointment and its shortcomings are similar to the problems with recent Robert Jordan books, a cast of characters grown to big, the author not being able to cut away some dead meat and general verbiosity. The too many characters problem has the same origin in both George R.R. Martins and Robert Jordans books. They started out with a group of people and at that point their number wasn’t a problem, then they split the group up so no you need multiple storylines to cover them all. Neither author seems prepared to put any of their characters on the backburner either, turning them into secondary characters (at least for a while) although Martins did kill of a few of them in his first books.

Martins have also ended up splitting this fourh book into two, with the second part meant to come out next year. Problem is he split it mostly on a per character basis, which means that the next book will in many ways not move the story forward at all compared to this book. And this book did very little to move the story forward to begin with. Sigh.

I still think its a good book series, but Martin (and Jordan) should take to heart that even in multi-book epic series, sometimes less is more.

GStreamer 0.10 will rock

So Wim decided to go lethal on our list of undocumented API’s in GStreamer core. Today it reads:


100% symbol docs coverage (1449 symbols documented, 0 symbols incomplete, 2 not documented)

Pretty sweet :)

We got something else working today and as you can see the reaction is quite extreme.