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:
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.
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.
From the Terminal activity:
su rpm -i http://fpdownload.macromedia.com/get/flashplayer/current/flash-plugin-9.0.48.0-release.i386.rpm
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.
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.com/en/download/linux_manual.jsp
1.2 Download "Linux RPM (self-extracting file)"
1.3 Copy the file (jre-1_5_0_11-linux-i586.rpm.bin) to a USB stick (the name of the file might be slightly different);
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_11-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_11-linux-i586-rpm.bin
3. Run the self-extracting file:
sudo ./jre-1_5_0_11-linux-i586-rpm.bin
4. Link to the Java plugin from the Mozilla plugin directory:
cd /usr/lib/mozilla/plugins sudo ln -s /usr/java/jre1.5.0_11/plugin/i386/ns7/libjavaplugin_oji.so
(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.