Building GStreamer for OMAP4
Building a module
Building GStreamer using native compilation is really the same as it is to build GStreamer natively on a desktop.
First get the source code by git cloning from GStreamer-omap repository in Gitorious and change to the git branch you want to build.
$ git clone git://gitorious.org/gstreamer-omap/gstreamer.git $ git checkout v0.10.35+ti
Then install the dependencies using apt-get build-dep <source-package-name>:
$ apt-get build-dep gstreamer0.10
$ cd gstreamer $ ./autogen.sh $ ./configure --prefix=<YOUR_INSTALL_DIR>/usr/ $ make
Use the gst-uninstalled script to run gstreamer without having to install it, or run $make install and use GST_PLUGIN_PATH environment variable to point to the recently installed plugins.
For gst-plugins-good and gst-plugins-bad you should add --enable-experimental to configure parameters in order to build v4l2sink and camerabin2.
Repositories and branches
Repositories for regular GStreamer modules track upstream on the branch master and TI modifications on a separate branch. The name of this branch is composed as v<upstream release number>+ti. For instance, on gstreamer.git repository, branch v0.10.35+ti contains TI modifications on top of release 0.10.35 of gstreamer library.
GST-Ducati and Libdce are maintained by TI itself and the branch master holds the current development.
List of repositories and corresponding TI branches:
- git://gitorious.org/gstreamer-omap/gstreamer.git: v0.10.35+ti
- git://gitorious.org/gstreamer-omap/gst-plugins-base.git: v0.10.35+ti
- git://gitorious.org/gstreamer-omap/gst-plugins-good.git: v0.10.30+ti
- git://gitorious.org/gstreamer-omap/gst-plugins-bad.git: v0.10.22+ti
- git://gitorious.org/gstreamer-omap/gst-ducati.git: master
- git://gitorious.org/gstreamer-omap/libdce.git: master
- ntp doesn't seem to update the time automatically. Run 'sudo /etc/network/if-up.d/ntpdate' after you reboot.
- Be careful of time when you build: If you don't reset the system clock (or use ntp to do it for you) then when you recompile, `make' might not recompile some .c files if it thinks they are older than the .o file.
- Master branch of upstream repositories is not refreshed often, if you want to use master branch track it from upstream repository on freedesktop.org