Category Archives: GNOME

Weekend hacking

Spent some time this weekend hacking on Transmageddon. Fixed various small bugs and UI issues that I had punted up until now for the UI. For instance with latest git when you create a pure audio file it doesn’t automatically get the suffix .mp3, which is nice in the cases when you are not creating a mp3 file :) And if you put aac into a quicktime container the file gets named .m4a instead of .mov.

Also started looking into the issue of how to handle multiple audio streams in the file being transcoded. Currently all streams gets transcoded to the same chosen format if the container format support its, if the container only supports 1 audio stream you get one by random. This is not ideal :)

Ended up filing this bug with a request for how we can improve the GStreamer API to make handling such things easier for application developers. Discoverer, uridecodebin and encodebin makes a lot of things a lot easier, but for handling files with multiple streams of the same type I think we still need some improvements.

Instant messaging hackfest at Collabora office

This week the Collabora office has been filled with a great group of people trying to make sure the instant messaging in GNOME Shell among other things works nicely. For those of us who use GNOME shell, like with latest Fedora, the integration into the shell is quite nice, but it also has some irritating behavioural issues. To resolve these issues some of our top Collabora coders working on Empathy and Telepathy has joined forces with coders from Red Hat, Intel and the community who work on messaging and/or the GNOME shell, to iron out the remaining issues and define any new APIs that are needed. The full agenda and attendee list can be found on the IM hackfest page.

To give you all an idea of the event I took this photo of the group sitting in our meeting room today:

Hackfest at Collabora office

For day to day reporting I suggest following the blog of Bastien Nocera who has been making daily posts from the hackfest. You would also want to read the update from the hackfest from Collaboras own Danielle Madeley.

On the path to GStreamer 1.0

GStreamer maintainer and code god Wim Taymans just posted an update on the the progress of GStreamer 0.11 to the GStreamer development mailing list. For those interested in learning about the new features coming in GStreamer 1.0 this email (along with the previous update) is must read material.

In addition to the updates on the core coding work and important notice from Wim in his email is that the very first 0.11.x release will happen this week, so that you have a snapshot release to start playing with. GStreamer 1.0 is moving forward at a fast pace, so be prepared :)

Hopefully we can do a GStreamer 1.0 release part at the GStreamer Conference 2011!

Luis talk on Rygel

For those who don’t know yet Rygel is an open source implementation of DLNA, a standard for ensuring interoperability between the different media devices on your home LAN. Rygel was started some years ago by my friend Zeeshan Ali and is being used in Meego and GNOME among others. We have been working on Rygel for some time now and thus Collaboras own Luis de Bethencourt did a talk at the recent Meego Summit in San Fransisco. It is an interesting talk about the current state of Rygel and how a lot of the Rygel features are implemented using GStreamer. So if you are interested in the future of interoperable devices check out Luis talk at the Meego website. Seek about 3.5 minute into the talk as they haven’t edited the videos it seems so you get a lot of uninteresting preparation before the talk starts.

New PiTiVi release getting a lot of positive attention

I am really happy to see how the new 0.14 version of PiTiVi is garnering so much positive attention. A lot of tweets seen and quite a few people blogging about this recent release, like this entry on omgUbuntu or this entry on Ubuntu corner or this little blurb on Phoronix.

A lot of people here at Collabora are involved with PiTiVi development as time allows and while we for a long while felt that we had a forest of features we could enable in PiTiVi, we seemed to be stuck with a certain feature set for a long while, as we kept going back to maturing the under laying GStreamer plugins and features that we wanted for PiTiVi. I think we have rounded a corner and with a total of 4 Google Summer of Code projects underway around PiTiVi we should be ensured that PiTiVi continues to develop quickly, as the PiTiVi team continue to both stabilize the current feature set and add new ones.
My hope is that PiTiVi will soon be packaged by every major distribution and be seen as a core part of the linux desktop and something that everyone uses when they need to edit their holiday movies or make small projects for school or work.

Hmm, remdinds me need to make sure we got a nice PiTiVi talk at the GStreamer Conference this year :)

Btw, for those interested in getting involved with PiTiVi, the best place to meet the community and get involved in joining the #pitivi channel on irc.freenode.net.

OpenOffice vs LibreOffice – the next chapter

Been seeing with interest the latest moves around Open Office. While a lot of people see it as almost a direct attack on Libre Office, to me personally it seems like a clumsy result of Oracle trying to ditch OpenOffice without frustrating their main OpenOffice business partner, IBM. Due to having the Lotus Symphony suite based on OpenOffice under a special license from Sun/Oracle, I wouldn’t be surprised if switching to the pure LGPL Libre Office seemed painful to them. And thus the idea of an Apache licensed OpenOffice must have seemed endearing.

Personally I hope people stick with LibreOffice and build upon their existing success. Chasing a big company like IBM might seem tempting, but big companies change their mind and change priorities all the time, just look at Nokia, so if you have something viable without a big company involved, stick with it, and let the big company contribute on your terms if they want, as it will then have the ability to stay around even when the big company goes elsewhere.

Sometimes the bleeding edge cuts

One thing I like with being a Fedora user is that it usually gets me a bleeding edge stuff, but at the same time it tends to be well maintained and tested enough to not break my system. Since a lot of the most important and cool new developments in the Linux world is done by Red Hat engineers they of course are able to bring out quite stable and working versions of the new stuff in Fedora first.

Of course once in a while there are some painful hickups. Gedit had been crashing for me since the upgrade to FC15, so I decided to run a yum upgrade this weekend. It grabbed an updated gedit along with some other stuff. Gedit now seems more stable, but unfortunately a lot of other stuff stopped working. Most critically it seems NetworkManager is down and out, so I had to fall back to the trusty old ‘ifup’ command to get online. Also it seems docking station support got an accidental axe in the back, because if I connect my laptop to the docking station, both screens just go black now.

Seems I am not the only one as I found 708445 in the Red Hat bugzilla for the network manager issue and 708530 for the docking station issue.

Hopefully things will get sorted soon, Red Hat tends to be quite good and getting fixes out fast in these situations, but I guess I once again learned the hard lesson about living on the bleeding edge :)

GNOME 3 and Fedora 15

Updated my own and my wifes computers yesterday to latest Fedora version, which included an upgrade to GNOME 3. Have to say I am quite impressed with it so far, I mean it is definitely a .0 release with a lot of little issues (like not remembering how to deal with my dual screen setup at work). But apart from that it feels pretty sweet, especially like the messaging integration into the desktop. It still got quite a few issues though, but here at Collabora we now have Jonny Lamb and Guillame Desmottes helping out with trying to polish it up.

The biggest change I found that was that of the attitude of my wife, she went from “linux sucks, why do I have to use this stuff” to “this is actually quite cool”.

So a big congrats to the GNOME 3 team for a wonderful release! I am looking forward to seeing how it develops in the coming Months.

I am generally impressed by all the nice work being done across a lot of projects these days, helping to make sure we have a really powerful and nicely integrated platform. It wasn’t that long ago the linux desktop (and server for that matter) felt like a taped together collection of stuff, but for each new release it seems the ease of use and polish increase, with good integration happening between all major layers. Efforts to drain the swamp, like systemd, does make a huge difference over time and draws us ever closer to the goal set when GNOME 2 was being created, remove the need to have configure options in the user interface to make the system ‘work’. If you need to enter a configuration menu to have basic functionality work, then that is a bug, not a feature.

I think there has been a general change in philosophy happening over the last 5-6 years, where we moved from everyone trying to fix the world in their own corner, to people instead trying to work together. For instance in GStreamer we have moved from trying to fix the problem by supporting every sound system under the sun, and instead try to work closely with the best solution out there to actually solve the problems people have, which is why people like GStreamer maintainer Wim Taymans have also been contributing to Pulse Audio over the last year. Enabling people to switch backends between ALSA, OSS, Sun Audio or Pulse Audio isn’t a solution, is it exposing a bug. So while the plugins supporting all those systems are still there of course, as they are useful for people in various situations, I think our thinking now is that when we find an issue that is best solved in Pulse Audio, as opposed to GStreamer, we solve it in Pulse Audio, instead of trying to make a second rate solution in GStreamer itself. And if there is a feature missing in Pulse Audio the solution is not to add an option in the user interface to ALSA, it is to add the feature to Pulse Audio. There are of course still cases where we need to support multiple plugins offering the same functionality of course, codecs being the best example, but if we want to make the open source ecosystem better we need to all focus on making things work well without needing the user to reconfigure which libraries and backends they use for a given task.

Seeing all this other great efforts move forward to plug the remaining holes I am also happy to say that by the end of the year we should have GStreamer 1.0 out the door, Wim Taymans is putting the foundations together as we speak. It should provide a lot of great improvements to GStreamer, like good solutions for handling 3D video for instance, but also provide a lot of speed improvements which will be especially useful for embedded setups (allthough I haven’t met a desktop user so far who hates getting faster software either.)

How to mix code with different licenses

Got a question on IRC today about the licensing of a specific file in GStreamer CVS, as it was under a MIT license instead of the LGPL license. While we strive to keep our licensing simple by making all new code LGPL or in some specific cases dual licensed, there are a few cases where we got code which is under the MIT or BSD license. This create a situation where we have some files in a directory under the LGPL while others are MIT for example. While I think he have kept things on an even keel within GStreamer, I have noticed that there is a lot of confusion in the open source community in general, about how you deal with MIT and BSD code in a GPL/LGPL context. In some extreme cases I have even seen people just cut’n pasting the MIT code into their GPL project believing that the MIT ‘do what you want license’ includes the right to relicense the code. It does not.

Anyway, to clear up the details for myself I contacted Luis Villa to get some help understanding some of the possible corner cases. Luis then pointed me at this great resource from the Software Freedom Law Center for understanding how MIT and GPL code can co-exist in your codebase. I absolutely recommend reading over this to better understand the implications.

cdparanoia now LGPL v2

Some time ago I blogged about cdparanoia switching from GPLv2 to LGPLv3 on our request. After that time we have been discussing in the GStreamer community about licensing and what is the exact and implicit licensing promise we are and have been making with GStreamer. The conclusion was that since the LGPLv3 is more restrictive than the LGPLv2 we do not want LGPLv3 dependencies in gst-plugins-good and gst-plugins-base. As mentioned before we always tried to be very serious and coherent with our licensing in GStreamer and suddenly reducing the rights we offer application and plugin developers is not something we feel should be done without very good reason. This is a policy I hope also other important libraries decide to follow, personally I would think it would be a very sad thing if Glib and Gtk+ for instance started taking away rights from their users without a very well reasoned explanation.

Luckily Monty is a very kind soul, and starting from yesterday there is a new version of cdparanoia III out, 10.1, which is dual-licensed under the LGPLv2 and the GPLv2. So even in the future there will be cdripping support offered in GStreamer gst-plugins-base package.
So go to the cdparanoia download page and get yourself this minty fresh version of cdparanoia. We recommend distributions to update to this version as soon as possible to ensure there are no licensing conflicts in their distribution.