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 can include gnash, as built it does not have support for MP3 or MPEG-4, which should work correctly if Gnash is rebuilt.
Note that for MP3 in particular, Fluendo has made available a free (as in beer) 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 sublicensing, 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.
Instructions for installing software for dealing with web-based multimedia such as Flash and Java applets using proprietary players or codecs:
Rebuilding Gnash for MP3 and MPEG-4 support
Adobe Flash
As root:
- rpm -i http://fpdownload.macromedia.com/get/flashplayer/current/flash-plugin-9.0.31.0-release.i386.rpm
Proprietary code bundle for the Helix player
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.
- Go to http://java.com/en/download/linux_manual.jsp, download "Linux RPM (self-extracting file)".
- Copy the file to an XO
- Run chmod a+x jre-1_5_0_11-linux-i586-rpm.bin
- As root:
- ./jre-1_5_0_11-linux-i586-rpm.bin
- cd /usr/lib/mozilla/plugins
- ln -s /usr/java/jre1.5.0_11/plugin/i386/ns7/libjavaplugin_oji.so .
You can check which browser plugins you have installed by visiting "about:plugins".