BeagleBoard/gst-openmax

This article explains how to use TI's DSP with GStreamer (e.g. on BeagleBoard). You need to have the DSP properly set up following BeagleBoard/DSP_Howto.

= Setup =

OpenMAX IL
The easiest way to use the DSP capabilities is through the OpenMAX IL API, but in order to compile TI's implementation a special DSP library is required.

libdspbridge
libdspbridge is a library which wraps up the ioctl calls to the dspbridge kernel driver. Originally it is in the userspace-dspbridge repository. But it is bloated and its build process is over-complicated. That is why we have started a slimmed version of it.

git clone git://gitorious.org/vjaquez-beagleboard/libbridge.git cd libbridge git co -b mybranch 23.3.3 make DESTDIR=/media/rootfs install

libomxil-ti
The original distribution of the TI's OpenMAX IL is in its gforge site. Nevertheless, its build process is overcomplicated. For that reason we started a repository which simplifies the build machinery, and also we are targeting a general code cleanup.

git clone git://gitorious.org/vjaquez-beagleboard/ti-omxil.git cd ti-omxil git co -b my-branch 3.28-2 make DBAPI_CFLAGS=-I/media/rootfs/usr/include/dspbridge \ DBAPI_LIBS=-L/media/rootfs/usr/lib DESTDIR=/media/rootfs install

gst-openmax
You would need to compile gst-openmax inside scratchbox:

git clone git://github.com/felipec/gst-openmax.git cd gst-openmax git checkout -b omap origin/omap ./autogen.sh --noconfigure ./configure --prefix=/usr make DESTDIR=rootfs install

= Related stuff =

In order to get the omapfb usable for video playback you need this kernel argument: video=omapfb:vram:2M,vram:4M

And the GStreamer element: git clone git://github.com/felipec/gst-omapfb.git cd gst-omapfb make DESTDIR=rootfs install

= Running =

You should be able to use the gst-openmax elements now:

gst-launch-0.10 filesrc location="foobar.avi" ! avidemux ! omx_mpeg4dec ! omapfbsink