Compiling GStreamer On The XO

From OLPC
Jump to: navigation, search

This is a work-in-progress document. Any suggestions/better ideas are much appreciated :)

  • As of 8/17/09, Pitivi, and Gstreamer work just as they come from the repository, with the newest Fedora Core 11 build. See pitivi on Fedora Core 11, and the more difficult effort to backport pitivi on build 802 of the XO.

NOTE: YOU DO NOT WANT TO DO THIS UNLESS YOU /NEED/ CUTTING-EDGE GSTREAMER ON THE XO. These should be new enough for most media work--this is necessary primarily for development of the Projects/VideoEditing application.

This guide is based on the GStreamer Setup Page from the PiTiVi Wiki.

This is all represented in a script [1] in the Projects/VideoEditing repository, but it may time out in Sugar.

Getting Dependencies

Lots to install:

su -
yum install -y make gcc autoconf automake gettext-devel libtool cvs \ 
svn git bison bison-devel flex flex-devel glib2-devel libxml2 \
libxml2-devel alsa-devel alsa-lib-devel libogg-devel libvorbis-devel \
libtheora-devel libX11-devel libXv-devel gcc-c++ libpng-devel

we need to remove liboil so we can get a newer version. this clobbers totem, totem-mozplugin along with all of gstreamer, so we need to do some removing, installing, and rebuilding. get the liboil rpms: http://rpm.pbone.net/index.php3/stat/4/idpl/6705758/com/liboil-0.3.14-1.fc9.i386.rpm.html http://rpm.pbone.net/index.php3/stat/4/idpl/6705759/com/liboil-devel-0.3.14-1.fc9.i386.rpm.html

su -
yum remove liboil
rpm -vi liboil-0.3.14-1.fc9.i386.rpm
rpm -vi liboil-devel-0.3.14-1.fc9.i386.rpm

let's put everything back with the new liboil:

su -
yum install -y totem totem-mozplugin gstreamer gstreamer-python \
gstreamer-pluging-base gstreamer-plugins-good gnonlin

Compiling GStreamer

Once the dependencies are met, instructions on the PiTiVi GStreamer Setup Page work more-or-less the same way. This takes forever on the XO.

For the PiTiVi port to work, we need new versions of--at the very least--gstreamer, gst-plugins-base, gst-plugins-good, and gnonlin. I'm having trouble getting the gstreamer-python bindings updated without breaking all of Sugar, but this may not be necessary.