Changes

IGEP GST FRAMEWORK 3.40.00

8,509 bytes added, 16:47, 6 February 2013
Created page with '= What is? = IGEP gst framework it's based on TI DVSDK. It's modified version for provide all DSP essential packages and the gstreamer DSP plugin for use it …'
= What is? =

IGEP gst framework it's based on TI DVSDK. It's modified version for provide all DSP&nbsp;essential packages and the [[GStreamer|gstreamer]] DSP plugin for use it in IGEP platforms. <br>

= Changes From 3.00.00 =

*Support linux kernel 2.6.35.13-3<br>
*Update codec server to codecs-omap3530_4_02_00_00.<br>
*Added MP3 codec (decode only).<br>
*Added MPEG4 and H264 720P Video Encoder.<br>
*Added IGEP X-Loader.<br>
*Prebuild binaries for DM3730 and OMAP3530 included.<br>

== Dependences<br> ==

*ISEE Toolchain poky-eabi-glibc-i586-arm-toolchain-sdk-3.2.1.tar.bz2<br>
*linux kernel 2.6.35.13-2 included with this package.<br>
*Ubuntu 10.10
*Automake 1.7 and Libtool ( '''sudo apt-get install autoconf automake libtool ''')
*Gstreamer.<br>
*SDK:&nbsp;<span style="color: rgb(255, 0, 0);">alsa-dev_1.0.20-r1_armv7a.ipk&nbsp;</span><span style="color: rgb(0, 0, 0);">(Now included inside the directory: tools/package).</span><br>

= Download<br> =

The package is available at the Official ISEE site, at the IGEPv2 download area.

http://isee.biz/component/zoo/item/igep-dsp-gst-framework

Download the package and uncompress this package as normal user in your desired directory ('''''don't use sudo command for decompress this file''''')

= How to Build<br> =

You should edit the file Rules.make and update package path and toolchain path.<br>

Rules.make<br>

<span style="color: rgb(0, 0, 128);">'''''Your igep-gst directory path:''' ''</span>

'''<span style="color: rgb(255, 0, 0);">WORKSPACE=&lt;YOUR_USER_PATH&gt;</span>'''

'''<span>DVSDK_INSTALL_DIR=$(WORKSPACE)/igep-dsp-gst-framework/igep-dsp-gst-framework-3_10_10</span>'''

<span style="color: rgb(0, 0, 128);">'''Your toolchain directory path:'''</span>

'''<span style="color: rgb(255, 0, 0);">CSTOOL_DIR=/usr/local/poky/eabi-glibc</span>'''

'''<span style="color: rgb(255, 0, 0);">CSTOOL_PREFIX=$(CSTOOL_DIR)/bin/arm-none-linux-gnueabi-</span><br>'''

Now the kernel it's included with this package you don't need to change anything related to the kernel.

Select your right processor:<br>

<span style="color: rgb(0, 0, 255);">'''''PLATFORM=o3530 (OMAP3530)'''''</span>

<span style="color: rgb(0, 0, 255);">'''''PLATFORM=dm3730 (DM3730)'''''
''''' '''''</span>

== Build &amp; Clean<br> ==

Build the framework:<br>
<pre>cd /home/&lt;YOUR_USER_PATH&gt;/Projects/myigep/workspace/igep-dsp-gst-framework/igep-dsp-gst-framework-3_10_10
make</pre>
Clean the framework<br>
<pre>cd /home/&lt;YOUR_USER_PATH&gt;/Projects/myigep/workspace/igep-dsp-gst-framework/igep-dsp-gst-framework-3_10_10
make clean</pre>
== Build &amp; Clean Manually<br> ==

Build the framework:<br>
<pre>cd /home/&lt;YOUR_USER_PATH&gt;/Projects/myigep/workspace/igep-dsp-gst-framework/igep-dsp-gst-framework-3_10_10
make linux
make dsplink
make lpm
make cmem
make sdma
make codecs
make c6accel
make c6run
make dmai
make gst_ti
</pre>
Clean the framework:<br>
<pre>cd /home/&lt;YOUR_USER_PATH&gt;/Projects/myigep/workspace/igep-dsp-gst-framework/igep-dsp-gst-framework-3_10_10
make linux_clean
make dsplink_clean
make lpm_clean
make cmem_clean
make sdma_clean
make codecs_clean
make c6accel_clean
make c6run_clean
make dmai_clean
make gst_ti_clean
</pre>
= Install =

After build the framework you must install all build packages inside the target directory using below command.<br>
<pre>make install
</pre>
Inside the target directory you've two new directories:<br>

dm3730-binaries (modules, kernel ... for DM3730)<br>

omap3530-binaries (modules, kernel ... for OMAP3530)

Copy target directory to your board as:<br>
<pre>cd target
scp -r dm3730-binaries &lt;remote_user&gt;@&lt;IGEP IP&gt;:/home/&lt;your_desired_directory&gt;
scp -r scripts &lt;remote_user&gt;@&lt;IGEP IP&gt;:/home/&lt;your_desired_directory&gt;

Also included you've the IGEP Xloader and the configuration file.
</pre>
Enter inside your IGEP board and go to gstreamer directory normally inside /usr/lib/gstreamer-0.10 and create two symbolic links from this directory to your files:<br>

cd /usr/lib/gstreamer-0.10

ln -s /home/&lt;your_desired_directory&gt;/cs.x64P

ln -s /home/&lt;your_desired_directory&gt;/libgstticodecplugin.so

or copy the files directly as inside target directory location.

== Target Structure ==
<pre>drwxr-xr-x 5 mcaro mcaro 4096 2011-08-18 11:55 dm3730-binaries
lrwxrwxrwx 1 mcaro mcaro 37 2011-08-19 11:49 igep.ini -&gt; ../psp/igep-x-loader/scripts/igep.ini
lrwxrwxrwx 1 mcaro mcaro 14 2011-08-19 11:48 MLO -&gt; x-load.bin.ift
drwxr-xr-x 5 mcaro mcaro 4096 2011-08-18 10:42 omap3530-binaries
drwxr-xr-x 2 mcaro mcaro 4096 2011-08-18 10:54 scripts
lrwxrwxrwx 1 mcaro mcaro 35 2011-08-19 11:49 x-load.bin.ift -&gt; ../psp/igep-x-loader/x-load.bin.ift</pre>
<u>Directory dm3730-binaries</u>: Inside this directory resides all the build binaries for DM3730 processor.

<u>Directory omap3530-binaries</u>: Inside this directory resides all the build binaries for OMAP3530 processor.

MLO and igep.ini: [[The IGEP X-loader|IGEP X-Loader]]

<u>Scripts Directory</u>:
<pre>-rwxr-xr-x 1 mcaro mcaro 290 2010-12-17 12:33 exec_gst
-rwxr-xr-x 1 mcaro mcaro 198 2010-09-06 10:43 fb1-16M-settings.sh
-rwxr-xr-x 1 mcaro mcaro 1109 2010-12-17 12:33 load-modules.sh
-rwxr-xr-x 1 mcaro mcaro 89 2011-08-17 15:02 powervr.ini
-rwxr-xr-x 1 mcaro mcaro 218 2010-12-17 12:33 unloadmodules.sh</pre>
Some useful scripts.

<u>Directory dm3730-binaries and </u><u>Directory omap3530-binaries has the same structure.<br></u>
<pre>&lt;u&gt;&lt;/u&gt;drwxr-xr-x 3 mcaro mcaro 4096 2011-08-18 11:54 boot
drwxr-xr-x 3 mcaro mcaro 4096 2011-08-18 11:55 lib
drwxr-xr-x 4 mcaro mcaro 4096 2011-08-18 11:56 usr
</pre>
Boot: Here resides the kernel and the modules.

Lib: Here resides the Linux DSP Communication modules as lpm, sdma, cmemk, dsplink.

Usr: Here resides the Codec Server, the gst plugin and some other examples.

= BUGS Detected =

{| width="60%" cellspacing="1" cellpadding="1" border="1"
|-
| Release
| Description
| Workaround
| Other
|-
| 3.10.00
| Incorrect GFX install script
| Copy the target and es.3x or es.5x directly
| Edit Makefile line 43 and remove opengldemos_install
|-
| 3.10.00
| Incorrect DSP Memory map
| Upgrade the package to 3.10.10
| Download the package 3.10.10
|-
| 3.10.10<br>
| Incorrect GFX install script
| Copy the target and es.3x or es.5x directly
| Edit Makefile line 43 and remove opengldemos_install
|-
| 3.10.10
| Gstreamer library initializes incorrectly the video encoder H264 and MPG4
| Upgrade to a newer gst library plugin
| N/A
|}

<br>

= Play with it<br> =

[<span style="color: rgb(255, 0, 0);">IMPORTANT</span>] Some modules requires root privileges account.<br>

Normally in this example we will use 2 frame buffers and we will use the fb2 for playing the videos.<br>

We only need load the modules one time, we provide in the target/scripts directory some useful scripts. You should load the modules using the load-modules.sh script (just remember execute it as root).<br>

After load all modules then you should configure the fb1, it's suggested use the fb1-16M-settings.sh script after that the video image can be black or with random pixels (just it's normal) now you've the fb1 and fb0 running.<br>

fb1 it's on TOP and fb0 it's under fb1, it means that if you don't enable the transparency it's not possible see the fb0.<br>

Now, you're ready for play some nice video using gstreamer, you can use these pipelines:

This is for play a avi file and uses the omapdmaifbsink.
<pre>gst-launch-0.10 -v filesrc location=$1&nbsp;! avidemux name=demux demux.audio_00&nbsp;! queue max-size-buffers=8000 max-size-time=0 max-size-bytes=0 \
! TIAuddec1&nbsp;! alsasink demux.video_00&nbsp;! queue max-size-buffers=2 max-size-time=0 max-size-bytes=0&nbsp;! TIViddec2 engineName=codecServer&nbsp;! omapdmaifbsink
</pre>
Or You can use this other for play a mp4 file it uses a TIDmaiVideoSink.<br>
<pre>gst-launch-0.10 -v filesrc location=$1&nbsp;! qtdemux name=demux demux.audio_00&nbsp;! queue max-size-buffers=8000 max-size-time=0 max-size-bytes=0 \
! TIAuddec1&nbsp;! alsasink demux.video_00&nbsp;! queue max-size-buffers=2 max-size-time=0 max-size-bytes=0&nbsp;! TIViddec2 engineName=codecServer \
! queue&nbsp;! TIDmaiVideoSink displayStd=fbdev displayDevice=/dev/fb1 accelFrameCopy=TRUE contiguousInputFrame=1
</pre>

= Useful Links =

*[[GStreamer|Gstreamer]]
*[[Example GStreamer Pipelines]]<br>

[[Category:Gstreamer]]