Restricted formats
In some jurisdictions, patents on algorithms apply and royalty payments may be required. Examples include MP3, and MPEG-4. This is a particular nuisance for media players, for which many of the common codecs algorithms are patented. In other jurisdictions, software patents do not apply and there are usually freely available implementations for these algorithms available.
Sometimes, as in Adobe Flash®, or the Real Helix® player there are free (as in beer) implementations available, where those corporations have paid these patent royalties and made usually (binary) versions of codecs available. This has direct consequences as OLPC does not want to burden all machines with payment of what may be unnecessary duplicate patent royalties: OLPC must therefore leave the customization of the distribution for these formats for "in country". For jurisdictions in which such patent laws apply, there are now solutions such as those sold by Fluendo to these issues.
The Flash format (whether Adobe's Flash 9 or Gnash) illustrates this problem well; even though we include Gnash, we distribute a build that does not have support for MP3 or MPEG-4; you may rebuild Gnash to include these codecs.
Instructions for installing software for dealing with web-based multimedia such as Flash and Java applets using proprietary players or codecs are found below. You use the Terminal activity to install these tools.
MP3
Fluendo has made available a free (as in beer) MP3 codec, with a free (as in speech) implementation, with a paid up license for the Gstreamer code framework. This requires execution of a license agreement for redistribution; unfortunately, the agreement does not permit sub-licensing, so while including it would be convenient and OLPC may choose to execute this agreement in the future, those redistributing our software would still have to execute this agreement to legally redistribute the codec.
In order to download the codec you have to "check out" the Fluendo mp3 decoder from their store for $0.00. You are then allowed to download the file fluendo-mp3-2.i386.tar.bz2
For more info, see the Fluendo mp3 decoder page. Also see the talk page for more options.
Rebuilding Gnash for MP3 and MPEG-4 support
When configuring Gnash, use the following option:
./configure --enable-media=ffmpeg
Adobe Flash
It has been noted that version 9.0.48 runs slower than 9.0.31, so you may want to try that version instead. Binary for 9.0.31 is not available Katie 06:14, 5 January 2008 (EST)
From the Terminal activity:
su -l rpm -i http://fpdownload.macromedia.com/get/flashplayer/current/flash-plugin-9.0.115.0-release.i386.rpm exit
More detailed instructions can be found here.
Proprietary code bundle for the Helix player
See the Helix media activity page for details.
Sun Java
Note that Sun is in the process of relicensing their Java implementation to free software, but it is not yet available in that form. Its size (the SDK "on disk" size is 75 megabytes and its memory consumption is large) makes it difficult to swallow. We are investigating other Java implementations as they mature, and the BTest-3 systems and after will have 1GB of flash.
Note that jre1.5.0_13 has been known to work, while jre-6u3 does not work on the XO.
Addendum to previous note: the java browser plugin does _not_ work with either jre1.5.0_13 or jre-6u3. (See http://dev.laptop.org/ticket/6465 and http://dev.laptop.org/ticket/865)
Also, you cannot download a Java RPM directly from Sun. You need to follow the somewhat more convoluted steps outlined below:
1. Get the Java RPM:
1.1 On an non-XO machine, goto http://java.sun.com/products/archive/j2se/5.0_13/index.html and click the "Download JRE" link.
1.2 On the webpage which follows, click "Accept License Agreement", find the section title: "Linux Platform - Java Runtime Environment 5.0 Update 13", and right-click or ctrl-click (mac) the "Linux RPM in self-extracting file" link to save the file named jre-1_5_0_13-linux-i586-rpm.bin
[As of 9 Apr 08 that version no longer seems to be available. Whether I use the right-click save-as, or just click the link, or use the Sun Download Manager option that appears in IE, both the rpm file and the plain bin option arrive as a 15 byte file containing "File not found." I don't see them anywhere else on the web, either. Maybe 1_5_0_15 would work?]
1.3 Copy the file (jre-1_5_0_13-linux-i586-rpm.bin) to a USB stick
1.4 Insert the USB memory stick in the XO;
1.5 From the Terminal activity, copy the file off of the USB stick:
cp /media/yourUSBdisk/jre-1_5_0_13-linux-i586-rpm.bin ./
where yourUSBdisk is the name of your USB stick. If you don't know the name, you can find out by typing:
df
You'll see a list of file systems. Your USB stick is the one "Mounted on" /media.
2. Change the file permissions on the Java file
chmod a+x jre-1_5_0_13-linux-i586-rpm.bin
3. Run the self-extracting file:
su - cd /home/olpc ./jre-1_5_0_13-linux-i586-rpm.bin exit
4. Link to the Java plugin from the Mozilla plugin directory:
su - cd /usr/lib/mozilla/plugins ln -s /usr/java/jre1.5.0_13/plugin/i386/ns7/libjavaplugin_oji.so exit
(Take care to check that the filenames in the above commands match those that you download: copying these instructions in their entirety will not work since the filenames change as Sun issues new releases.)
You can check which browser plugins you have installed by visiting the page "about:plugins" in the Browse activity.