Difference between revisions of "IGEP GST FRAMEWORK 3.10.10"

From IGEP - ISEE Wiki

Jump to: navigation, search
m (Download)
 
(15 intermediate revisions by 3 users not shown)
Line 5: Line 5:
 
= Changes From 3.00.00  =
 
= Changes From 3.00.00  =
  
*Support linux kernel 2.6.35.13-2<br>  
+
*Support linux kernel 2.6.35.13-3<br>  
*ISEE kernel 2.6.35.13-2
 
 
*Update codec server to codecs-omap3530_4_02_00_00.<br>  
 
*Update codec server to codecs-omap3530_4_02_00_00.<br>  
*Added MP3 codec (decode only).<br>  
+
*Added MP3 codec (decode only).<br>
*Added IGEP X-Loader.<br>
+
*Added MPEG4 and H264 720P Video Encoder.<br>
 +
*Added IGEP X-Loader.<br>  
 
*Prebuild binaries for DM3730 and OMAP3530 included.<br>
 
*Prebuild binaries for DM3730 and OMAP3530 included.<br>
  
Line 23: Line 23:
 
= Download<br>  =
 
= Download<br>  =
  
The package be available in the IGEPv2 download area.  
+
The package is available at the Official ISEE site, at the IGEPv2 download area.  
  
<span style="color: rgb(51, 102, 255);">01-ISEE_Products --&gt; IGEPv2 --&gt; SW_Tools_SDK --&gt; igep_gst
+
http://isee.biz/component/zoo/item/igep-dsp-gst-framework
--&gt; igep-dsp-gst-framework-3_10_00.tar.bz2</span><br>
 
  
Download the package and uncompress this package as normal user in your desired directory ('''''don't use sudo command for decompress this file''''')  
+
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>  =
 
= How to Build<br>  =
Line 36: Line 35:
 
Rules.make<br>  
 
Rules.make<br>  
  
<span style="color: rgb(0, 0, 255);">'''''Your igep-gst directory path:''' ''</span>  
+
<span style="color: rgb(0, 0, 128);">'''''Your igep-gst directory path:''' ''</span>  
  
'''<span style="color: rgb(255, 0, 0);">WORKSPACE=/home/&lt;YOUR_USER_PATH&gt;/Projects/myigep/workspace/igep-dsp-gst-framework/igep-dsp-gst-framework-3_10_00</span>'''  
+
'''<span style="color: rgb(255, 0, 0);">WORKSPACE=&lt;YOUR_USER_PATH&gt;</span>'''  
  
<span style="color: rgb(0, 0, 128);">'''Your toolchain directory path:'''</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_DIR=/usr/local/poky/eabi-glibc</span>'''  
Line 58: Line 59:
  
 
Build the framework:<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_00
+
<pre>cd /home/&lt;YOUR_USER_PATH&gt;/Projects/myigep/workspace/igep-dsp-gst-framework/igep-dsp-gst-framework-3_10_10
 
make</pre>  
 
make</pre>  
 
Clean the framework<br>  
 
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_00
+
<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>  
 
make clean</pre>  
 
== Build &amp; Clean Manually<br>  ==
 
== Build &amp; Clean Manually<br>  ==
  
 
Build the framework:<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_00
+
<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 linux
 
make dsplink
 
make dsplink
Line 79: Line 80:
 
</pre>  
 
</pre>  
 
Clean the framework:<br>  
 
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_00
+
<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 linux_clean
 
make dsplink_clean
 
make dsplink_clean
Line 90: Line 91:
 
make dmai_clean
 
make dmai_clean
 
make gst_ti_clean
 
make gst_ti_clean
</pre>
+
</pre>  
 
 
 
= Install  =
 
= Install  =
  
After build the framwork you must install all build packages inside the target directory using below command.<br>  
+
After build the framework you must install all build packages inside the target directory using below command.<br>  
 
<pre>make install
 
<pre>make install
 
</pre>  
 
</pre>  
Line 118: Line 118:
 
ln -s /home/&lt;your_desired_directory&gt;/libgstticodecplugin.so  
 
ln -s /home/&lt;your_desired_directory&gt;/libgstticodecplugin.so  
  
or copy the files directly as inside target directory location.<br> <br>
+
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  =
 
= Useful Links  =
Line 125: Line 213:
 
*[[Example GStreamer Pipelines]]<br>
 
*[[Example GStreamer Pipelines]]<br>
  
[[Category:How_to_forge]]
+
[[Category:Gstreamer]]

Latest revision as of 13:22, 14 May 2012

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 in IGEP platforms.

Changes From 3.00.00

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

Dependences

  • ISEE Toolchain poky-eabi-glibc-i586-arm-toolchain-sdk-3.2.1.tar.bz2
  • linux kernel 2.6.35.13-2 included with this package.
  • Ubuntu 10.10
  • Automake 1.7 and Libtool ( sudo apt-get install autoconf automake libtool )
  • Gstreamer.
  • SDK: alsa-dev_1.0.20-r1_armv7a.ipk (Now included inside the directory: tools/package).

Download

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

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

Rules.make

Your igep-gst directory path:

WORKSPACE=<YOUR_USER_PATH>

DVSDK_INSTALL_DIR=$(WORKSPACE)/igep-dsp-gst-framework/igep-dsp-gst-framework-3_10_10

Your toolchain directory path:

CSTOOL_DIR=/usr/local/poky/eabi-glibc

CSTOOL_PREFIX=$(CSTOOL_DIR)/bin/arm-none-linux-gnueabi-

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

Select your right processor:

PLATFORM=o3530 (OMAP3530)

PLATFORM=dm3730 (DM3730)

Build & Clean

Build the framework:

cd /home/<YOUR_USER_PATH>/Projects/myigep/workspace/igep-dsp-gst-framework/igep-dsp-gst-framework-3_10_10
make

Clean the framework

cd /home/<YOUR_USER_PATH>/Projects/myigep/workspace/igep-dsp-gst-framework/igep-dsp-gst-framework-3_10_10
make clean

Build & Clean Manually

Build the framework:

cd /home/<YOUR_USER_PATH>/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

Clean the framework:

cd /home/<YOUR_USER_PATH>/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

Install

After build the framework you must install all build packages inside the target directory using below command.

make install

Inside the target directory you've two new directories:

dm3730-binaries (modules, kernel ... for DM3730)

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

Copy target directory to your board as:

cd target
scp -r dm3730-binaries <remote_user>@<IGEP IP>:/home/<your_desired_directory>
scp -r scripts <remote_user>@<IGEP IP>:/home/<your_desired_directory>

Also included you've the IGEP Xloader and the configuration file.

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:

cd /usr/lib/gstreamer-0.10

ln -s /home/<your_desired_directory>/cs.x64P

ln -s /home/<your_desired_directory>/libgstticodecplugin.so

or copy the files directly as inside target directory location.

Target Structure

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 -> ../psp/igep-x-loader/scripts/igep.ini
lrwxrwxrwx  1 mcaro mcaro   14 2011-08-19 11:48 MLO -> 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 -> ../psp/igep-x-loader/x-load.bin.ift

Directory dm3730-binaries: Inside this directory resides all the build binaries for DM3730 processor.

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

MLO and igep.ini: IGEP X-Loader

Scripts Directory:

-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

Some useful scripts.

Directory dm3730-binaries and Directory omap3530-binaries has the same structure.

<u></u>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

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

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
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


Play with it

[IMPORTANT] Some modules requires root privileges account.

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

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).

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.

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.

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.

gst-launch-0.10 -v filesrc location=$1 ! avidemux name=demux  demux.audio_00 ! queue max-size-buffers=8000 max-size-time=0 max-size-bytes=0 \
! TIAuddec1 ! alsasink demux.video_00 ! queue max-size-buffers=2 max-size-time=0 max-size-bytes=0 ! TIViddec2 engineName=codecServer ! omapdmaifbsink

Or You can use this other for play a mp4 file it uses a TIDmaiVideoSink.

gst-launch-0.10 -v filesrc location=$1 ! qtdemux name=demux  demux.audio_00 ! queue max-size-buffers=8000 max-size-time=0 max-size-bytes=0 \
! TIAuddec1 ! alsasink demux.video_00 ! queue max-size-buffers=2 max-size-time=0 max-size-bytes=0 ! TIViddec2 engineName=codecServer \
! queue ! TIDmaiVideoSink displayStd=fbdev displayDevice=/dev/fb1 accelFrameCopy=TRUE contiguousInputFrame=1

Useful Links