GStreamer's MP3 for Linux
[Posted January 2, 2006 by corbet]
The MP3 audio format is a pain. It is patent-encumbered, making it hard for
Linux distributors to package (or Linux users to use) legally in various
parts of the world. It doesn't even sound all that good, compared to some
of the alternatives. Yet MP3 is hard to avoid; digital audio players often
prefer it, and much of the interesting audio content to be found on the net
is encoded as MP3. So Linux users who do any amount of audio listening
with their systems generally end up with MP3 software on their systems even
if their distributor refuses to include it.
The hassles of tracking down unofficial repositories, configuring a system
to use those repositories, and installing MP3-capable software are
something that many Linux users take in stride. Using Linux has often
required some of that kind of work, after all; you newcomers should just be
happy that you don't have to come up with your own XFree86 modelines
anymore. But the lack of native MP3 capability is an impediment for
potential users who want things like audio to simply work without a bunch
of fiddling around. Such people tend to be uninterested in discussions of
the evil of software patents and the superiority of Vorbis audio. None of
that helps them listen to their favorite Norwegian reggae Internet radio
station.
The folks at Fluendo - the main force behind GStreamer - have made an attempt
to
improve this situation. Fluendo has bought a patent license for the MP3
technology, and has used it to make a couple of different items available:
- A GStreamer plugin for MP3 released under the BSD license; it is
downloadable from the
Fluendo site.
- A binary-only version of the plugin which has been made freely
downloadable via the Fluendo web
shop. The binary plugin is generated from the BSD-licensed
source.
There are other freely-licensed MP3 decoders available, but the Fluendo
release is still worthy of note due to its use of the BSD license. Most
MP3 codecs are licensed under the GNU GPL, which includes
this language:
If you cannot distribute so as to satisfy simultaneously your
obligations under this License and any other pertinent obligations,
then as a consequence you may not distribute the Program at
all. For example, if a patent license would not permit royalty-free
redistribution of the Program by all those who receive copies
directly or indirectly through you, then the only way you could
satisfy both it and this License would be to refrain entirely from
distribution of the Program.
This language makes it hard to distribute patent-encumbered, GPL-licensed
code, so the redistribution of any application containing a GPL-licensed
MP3 codec is legally dubious. The use of the BSD license is an attempt to
avoid this particular clause of the GPL. One should not forget, however,
that the result of linking BSD- and GPL-licensed code is normally a
derivative work which must retain the GPL license. So it is not clear that
any GPL-licensed GStreamer application can be shipped with the new decoder.
The binary-only plugin has a different intent. This plugin is fully
licensed, so any Linux user (on a supported version of a supported
distribution on a supported architecture) should be able to install it and
play MP3 files without patent worries. Distributors can also sign a
contract [PDF] with Fluendo which allows the binary plugin to be
included with a distribution. There are plenty of restrictions in the
contract, including an end-user license which prohibits further
redistribution. So, while a distributor can gain the right to legally
distribute the binary-only MP3 decoder, any derivative distributions must
sign their own agreement with Fluendo to obtain the same right. The
contract also prohibits "embedded" use, so projects like iPodLinux seem unlikely to be
able to ship this plugin.
So Linux distributors can now ship MP3-capable distributions, as long as
they don't mind the little fact that any such distribution is not 100%
free. Which distributors will accept this deal remains to be seen; in a
few cases, some guesses can be made based on the discussion (or lack
thereof) on the relevant mailing lists:
- Fedora looks like it will sit for months waiting for Red Hat's
lawyers to issue a pronouncement. One Red Hat staff member has said, however: "I expect there will
be future developments in the media formats area of Fedora, but for now
it seems unlikely that we will do more than link to the packages you
have kindly made available."
- Mandriva already includes MP3 support in its distribution.
Assuming that Mandriva feels safe in shipping MP3 codecs now, it
probably sees little to gain by adding a binary-only version.
- Ubuntu seems to be considering including the plugin in its
"restricted" area. There is some discussion of whether it would still
be legal to include rhythmbox, which is GPL-licensed with no plugin
exception, in such a work.
Most other major distributions do not currently appear to have a public
discussion going.
In an ideal world, our systems would include free codecs for all of
the widely-used audio and video formats. The world we actually live in,
unfortunately, requires that we set our expectations a little lower. While
many of us can do nicely with formats like Ogg much of the time, the simple
fact is that missing MP3 support makes Linux less useful for many people.
And this is not a problem that can be solved by coding. The contributions
from Fluendo do not qualify as a solution, but they could well help make
Linux work for people who were not able to do what they wanted previously.
That's a step in the right direction, even if it is not ideal.
(
Log in to post comments)