This article explains how to use TI's OpenMAX-IL with GStreamer (e.g. on BeagleBoard). As the TI's OMXIL is hardware accelerated by DSP, you need to have the DSP properly set up following BeagleBoard/DSP_Howto.
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 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
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 v3.28-2 make DBAPI_CFLAGS=-I/media/rootfs/usr/include/libbridge \ DBAPI_LIBS="-L/media/rootfs/usr/lib -lbridge" DESTDIR=/media/rootfs install
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=/media/rootfs install
In order to get the omapfb usable for video playback you need this kernel argument:
And the GStreamer element:
git clone git://github.com/felipec/gst-omapfb.git cd gst-omapfb make DESTDIR=rootfs install
You should be able to use the gst-openmax elements now:
gst-launch-0.10 filesrc location="foobar.avi" ! avidemux ! omx_mpeg4dec ! omapfbsink