Restricted formats

From OLPC
Revision as of 15:42, 24 March 2008 by Sj (talk | contribs) (..)
Jump to navigation Jump to search
  This page is monitored by the OLPC team.
This page describes third-party software that does not meet the OLPC standards for software freedom. The use of such software is unsupported; OLPC does not endorse or encourage its use.
See the Ubuntu RestrictedFormats page for more ideas.

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.


  For the general public

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

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.