Please note that User Registration has been temporarily disabled due to a recent increase in automated registrations. If anyone needs an account, please request one here: RequestAccount. Thanks for your patience!--Wmat (talk)
Please email User:Wmat if you experience any issues with the Request Account form.

Difference between revisions of "BeagleBoard/gst-openmax"

From eLinux.org
Jump to: navigation, search
(libomxil-ti)
(See also: dsp-tools)
 
(9 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
[[Category: Linux]]
 
[[Category: Linux]]
 
[[Category: OMAP]]
 
[[Category: OMAP]]
This article explains how to use TI's DSP with GStreamer (e.g. on [[BeagleBoard|BeagleBoard]]). You need to have the DSP properly set up following [[BeagleBoard/DSP_Howto]].
+
 
 +
This article explains how to use TI's OpenMAX-IL with GStreamer (e.g. on [[BeagleBoard]]).
 +
 
 +
[http://www.khronos.org/openmax/ OpenMAX IL] is a standardized API to communicate with multimedia codecs (implemented either in hardware or software).
 +
 
 +
[http://freedesktop.org/wiki/GstOpenMAX GstOpenMAX] is a GStreamer plug-in that allows communication with OpenMAX IL components.  
  
 
= Setup =
 
= Setup =
 +
 +
As the TI's OMXIL is hardware accelerated by DSP, you need to have the DSP properly set up following the [[BeagleBoard/DSP_Howto|DSP howto]].
  
 
== OpenMAX IL ==
 
== OpenMAX IL ==
  
The easiest way to use the DSP capabilities is through the [http://www.khronos.org/openmax/ OpenMAX IL] API, but in order to compile TI's implementation a special DSP library is required.
+
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 ===
  
 
''libdspbridge'' is a library which wraps up the ioctl calls to the dspbridge kernel driver. Originally it is in the [http://dev.omapzoom.org/?p=tidspbridge/userspace-dspbridge.git;a=summary 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.
 
''libdspbridge'' is a library which wraps up the ioctl calls to the dspbridge kernel driver. Originally it is in the [http://dev.omapzoom.org/?p=tidspbridge/userspace-dspbridge.git;a=summary 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.
 
Warning: This project is a Work In Progress.
 
  
 
  git clone git://gitorious.org/vjaquez-beagleboard/libbridge.git
 
  git clone git://gitorious.org/vjaquez-beagleboard/libbridge.git
Line 26: Line 31:
 
  git clone git://gitorious.org/vjaquez-beagleboard/ti-omxil.git
 
  git clone git://gitorious.org/vjaquez-beagleboard/ti-omxil.git
 
  cd ti-omxil
 
  cd ti-omxil
  git co -b my-branch 3.28-2
+
  git co -b my-branch v3.28-2
  make DBAPI_CFLAGS=-I/media/rootfs/usr/include/dspbridge \
+
  make DBAPI_CFLAGS=-I/media/rootfs/usr/include/libbridge \
       DBAPI_LIBS=-L/media/rootfs/usr/lib DESTDIR=/media/rootfs install
+
       DBAPI_LIBS="-L/media/rootfs/usr/lib -lbridge" DESTDIR=/media/rootfs install
  
 
== gst-openmax ==
 
== gst-openmax ==
  
You would need to compile gst-openmax inside scratchbox:
+
The official gst-openmax repository is git://anongit.freedesktop.org/gstreamer/gst-openmax
  
  git clone git://github.com/felipec/gst-openmax.git
+
Nevertheless, for the TI's OpenMAX IL implementation some hacks are still required. And because of that, a unofficial repository is set up, which is the one we use in this document.
 +
 
 +
  git clone git://gitorious.org/vjaquez-beagleboard/gst-openmax.git
 
  cd gst-openmax
 
  cd gst-openmax
 
  git checkout -b omap origin/omap
 
  git checkout -b omap origin/omap
  ./autogen.sh --noconfigure
+
  /autogen.sh --build=i686-linux --host=arm-linux --target=arm-linux
./configure --prefix=/usr
+
  make DESTDIR=/media/rootfs install
  make DESTDIR='''rootfs''' install
+
  
 
= Related stuff =
 
= Related stuff =
Line 49: Line 55:
 
  git clone git://github.com/felipec/gst-omapfb.git
 
  git clone git://github.com/felipec/gst-omapfb.git
 
  cd gst-omapfb
 
  cd gst-omapfb
  make DESTDIR='''rootfs''' install
+
  make DESTDIR=/media/rootfs install
  
 
= Running =
 
= Running =
Line 56: Line 62:
  
 
  gst-launch-0.10 filesrc location="foobar.avi" ! avidemux ! omx_mpeg4dec ! omapfbsink
 
  gst-launch-0.10 filesrc location="foobar.avi" ! avidemux ! omx_mpeg4dec ! omapfbsink
 +
 +
= See also =
 +
 +
* [[BeagleBoard/dsp-tools]]
 +
* [[BeagleBoard/gst-dsp]]

Latest revision as of 18:48, 13 August 2010


This article explains how to use TI's OpenMAX-IL with GStreamer (e.g. on BeagleBoard).

OpenMAX IL is a standardized API to communicate with multimedia codecs (implemented either in hardware or software).

GstOpenMAX is a GStreamer plug-in that allows communication with OpenMAX IL components.

Setup

As the TI's OMXIL is hardware accelerated by DSP, you need to have the DSP properly set up following the DSP howto.

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 v3.28-2
make DBAPI_CFLAGS=-I/media/rootfs/usr/include/libbridge \
     DBAPI_LIBS="-L/media/rootfs/usr/lib -lbridge" DESTDIR=/media/rootfs install

gst-openmax

The official gst-openmax repository is git://anongit.freedesktop.org/gstreamer/gst-openmax

Nevertheless, for the TI's OpenMAX IL implementation some hacks are still required. And because of that, a unofficial repository is set up, which is the one we use in this document.

git clone git://gitorious.org/vjaquez-beagleboard/gst-openmax.git
cd gst-openmax
git checkout -b omap origin/omap
/autogen.sh --build=i686-linux --host=arm-linux --target=arm-linux
make DESTDIR=/media/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=/media/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

See also