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 the 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=/media/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