Working with patented and non-free codecs is a sticky issue for all GNU/Linux distributions. In an effort to try and improve on the current situation, Fedora 8 will ship with Codec Buddy by default, providing users with a simple click-through GUI for enabling playback of various kinds of media. Read on for an interview with ThomasVanderStichele, Fluendo developer and Fedora contributor, and BastienNocera, Red Hat employee and Fedora contributor.
Digg it
If you enjoy this article, consider giving it a digg :D
http://digg.com/linux_unix/Codec_Buddy_in_Fedora_8
Application Screenshots
The screenshots below show graphically the steps involved in installing the MP3 codec pack.
File:Interviews CodecBuddy codeina-01.png
If you click on the link to read more about Proprietary and Free formats, you will be taken to a good educational session at CodecBuddy page.
Once you click See available options you are presented with a screen which lists the available codec packs suitable for playing this type of media.
File:Interviews CodecBuddy codeina-02.png
Tick the box for the codec you desire and then press the Get selected button which begins the process of downloading and installing the selected codec.
File:Interviews CodecBuddy codeina-03.png
Agree to the license and ...
File:Interviews CodecBuddy codeina-04.png
... You can now play MP3 files!
Developers Interview
File:Interviews CodecBuddy Picture.jpg
Location: Barcelona
Profession: CTO (Chief Technology Officer)
IRC Nick: thomasvs
Age: 31
Blog: http://thomas.apestaart.org/log/
Interviewed by: JonathanRoberts
- T: ThomasVanderStichele, Fluendo developer and Fedora contributor.
- B: BastienNocera, Red Hat employee and Fedora contributor.
Fedora has been in a tricky situation, Re: providing access to multimedia codecs for patent encumbered and non-free formats. While it has always been possible, if you have the know how, to get access to these codecs, Fedora has never been able to ship a solution that would help users access these; what approach has Codec Buddy taken that has made aiding the user possible?
T: Obviously, Fedora cares about a bunch of things - the user, the freedom aspect, and the legal aspect. The user wants to play files. There are very few codecs that are free in the sense that they are freely shippable. And the legal aspect is important because Fedora, as a distribution, is shipped from and to countries where patents apply.
So, codeina today is doing two - distinct, but related - things:
- it allows you to easily install a legally licensed and free (as in price) MP3 decoder (although MP3 itself is still patented)
- it allows you to easily figure out what to buy in the Fluendo webstore for other formats that you don't have codecs for.
(Note: it will be possible for other providers to hook into codeina and provide their GStreamer plug-ins. This could be done either by commercial entities, as well as other repositories.)
B: The main reason why codeina/Codec Buddy works is Fluendo's backing. Their offering of the MP3 plugin for free (as in beer) means that we were going to be able to offer that critical feature to our users. Without that free codec, I don't think that the project would have taken off the ground.
Could you talk a little bit about the end-user experience, perhaps taking an example of what will happen if a user tries to play an MP3 file on their Fedora 8 system?
B: It's really just a matter of clicking quite a bit. And it means that playing back MP3s works NOOB (Nearly Out-Of-the-Box).
The workflow for the pay-for Fluendo codecs is less optimal right now (it involves going to Fluendo web store in your web browser), but I know Thomas will be working with people at Fluendo to streamline the process.
I got some very interesting feedback from users with the workflow, which is really very close to what Windows Media Player or QuickTime provide, with more automation.
What were some of the most significant challenges you faced in getting this feature into Fedora 8?
T: Actually, there was a big push for getting this in Fedora 7. Max and Greg were all for it and even flew me over to Fudcon in Boston to discuss it. We did, we had a plan, and then for some reason communication from Red Hat just stopped on the subject. I still don't know if it was due to lack of time or something else... But I'm happy to see it go in now thanks to Bastien's hard work!
B: If you must know, most of the lag was due to far too much work to do for people outside the actual implementation side of things. Then, as you can tell from the FESCo meeting logs, it was mainly usual Free Software politics, and the fact that, right now, Fluendo were the only provider represented in codeina's interface.
As Thomas mentioned, we'd like to be able to have other providers in the UI, with all the legal problems that this might involve for some of them.
A big kudos to Tim-Philipp Müller as well. He did the Totem integration, as well as implementing the functionality that was available in libgimme-codec into GStreamer itself. That allowed us to avoid another dependency in Totem, and allow integration in other applications without depending on yet another library. Comments such as "I have to wonder if this single 200 line source file + header is really worth packaging as a shared library" really shows what the original integration was like.
Are there improvements you'd still like to see made to Codec Buddy post Fedora 8?
T: Lots! We want it to be a generic frontend for GStreamer codec installation. That means any repository should be able to integrate and be a provider for missing codecs or formats.
We also want it to integrate with our Fluendo web shop directly. Right now, it just allows you to open a browser window to the shop, and then you're supposed to download the other plugins from there after paying for them.
We want more distros to pick it up; it's easy for a distro to customize the distro-specific messages (like the free formats dialog that Fedora presents today).
B: Apart from those, it will be integration of the functionality into other applications. Work is on-going to have that "missing plugins" functionality integrated in Rhythmbox as well. There's probably more applications that could make use of it.
Can you speculate about the possibility that Fedora might be able to link to the RPMFusion repository for future releases?
T: I would doubt that they would legally be able to. But I think that's beside the point.
I think Fedora was brave to, some time ago, take the decision to support free formats. While it's good that there are things like freshrpms, livna and now RPMFusion out there, given the legal issues these should remain repositories that are outside of the default Fedora space. People should know and consciously decide when they cross over the border of full freedom and legality to a darker place that we're trying to get rid of in the future.
[Editor's Note: Since Fedora is a U.S based distribution and bound by U.S laws, Red Hat Legal team is still evaluating the feasibility of pointing to another repository. If it can be done, it probably will be and Codec Buddy has been designed to allow other sources. Stay tuned]
B: Nothing much to add there. I see no reasons why those third-party
providers couldn't be integrated in Codeina. Technical issues aren't the
hardest ones to fix. The legality of it is the main problem.
And as a little extra, would you like to say a little bit about yourselves? What got you interested in free software originally? What you like to do when not hacking on free software projects?
T: I used to hack BASIC and C when I was a youngster, and stopped hacking when Windows came out because I lost interest after losing EDIT and the command line console.
Then later I developed my thesis on UNIX machines (Solaris at university, and Linux at home), which is how I really got into Linux. My thesis got me interested in GStreamer, which looked awesome - until I tried to program with it :) That was 7 years ago. It's gone a long way.
Along the way, I got involved in lots of projects, including GNOME, and started Fluendo together with my bosses, to solve the problem of multimedia and GStreamer on Linux.
I love music, go out to concerts, dance Argentinan tango, read a lot, and most of all, enjoy spending time with my girlfriend when we get some time together in the same place (we live 1400 km apart).
B: I stabbed GStreamer in the back when I started Totem, using xine-lib at the time. The added pressure obviously worked, as GStreamer, which fits the goals and design of GNOME better, went leaps and bounds in the past couple of years and is now the default backend for Totem.
Slackware, Red Hat Linux, Debian, Red Hat Linux, Fedora was my path. I'm just glad I don't have to lug floppy disks around anymore to install software.
[What you like to do when not hacking on free software projects?] Football (i.e., Soccer for a good portion of the readers), films, and music, in that order. The latter two make it pretty obvious why I started Totem and Rhythmbox as projects :)