Difference between revisions of "IGEP GST FRAMEWORK 3.40.00"

From IGEP - ISEE Wiki

Jump to: navigation, search
(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 …')
 
 
(7 intermediate revisions by 2 users not shown)
Line 3: Line 3:
 
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>  
 
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 =
+
= Changes From 3.10.10 =
  
*Support linux kernel 2.6.35.13-3<br>  
+
*Support linux kernel 2.6.37.y<br>  
*Update codec server to codecs-omap3530_4_02_00_00.<br>  
+
*Upgraded IGEP-X-Loader 2.5.0-1<br>  
*Added MP3 codec (decode only).<br>
+
*Included &amp; upgraded toolchain [https://www.isee.biz/support/downloads/item/igep-sdk-yocto-toolchain-1-2-2-3?category_id=81 IGEP SDK Yocto Toolchain 1.2.2-3]<br>  
*Added MPEG4 and H264 720P Video Encoder.<br>
+
*DSP &amp; ARM&nbsp;Memory map changed.
*Added IGEP X-Loader.<br>  
 
*Prebuild binaries for DM3730 and OMAP3530 included.<br>
 
  
 
== Dependences<br>  ==
 
== Dependences<br>  ==
  
*ISEE Toolchain poky-eabi-glibc-i586-arm-toolchain-sdk-3.2.1.tar.bz2<br>  
+
*IGEP SDK Yocto Toolchain 1.2.1-2<br>  
*linux kernel 2.6.35.13-2 included with this package.<br>  
+
*linux kernel 2.6.37.y<br>  
*Ubuntu 10.10
+
*Host: Ubuntu or compatible distribution
*Automake 1.7 and Libtool ( '''sudo apt-get install autoconf automake libtool ''')  
+
*Automake 1.7 and Libtool ( '''sudo apt-get install autoconf automake libtool ''')<br>
*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>  =
 
= Download<br>  =
  
The package is available at the Official ISEE site, at the IGEPv2 download area.  
+
The package is available at the Official ISEE [http://isee.biz/component/zoo/item/igep-dsp-gst-framework 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''''')  
 
 
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>  =
  
You should edit the file Rules.make and update package path and toolchain path.<br>
+
Ensure that you've the right toolchain installed (you can install it using the script included in the root package directory install_toolchain.sh)<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>  
+
Execute the script: build_configure.sh<br>  
  
omap3530-binaries (modules, kernel ... for OMAP3530)
+
It will ask you for the right processor platform:<br>  
 
+
<pre>This program will configure and build this software
Copy target directory to your board as:<br>  
+
Select your processor:
<pre>cd target
+
&lt;A&gt; DM3730, &lt;B&gt; OMAP3530 Please choose one. (default: DM3730)
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>  
 
</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>  
+
After that you're ready for copy it inside your board.<br>  
  
cd /usr/lib/gstreamer-0.10
+
All build binaries will reside inside the target directory under your selected platform, copy all the content inside your board.  
  
ln -s /home/&lt;your_desired_directory&gt;/cs.x64P
+
IGEP-X-Loader and Linux kernel have self own howto about build and install it ...  
  
ln -s /home/&lt;your_desired_directory&gt;/libgstticodecplugin.so
+
Inside target/script directory you can found some useful scripts.
  
or copy the files directly as inside target directory location.
+
= Memory Map =
  
== Target Structure  ==
+
This package uses the same memory structure that dvsdk from TI, it must be configured as (in kernel command line):<br>  
<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.
+
mem=50M@0x80000000<br>mem=383M@0x88000000<br>
 
 
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  =
 
= BUGS Detected  =
Line 161: Line 57:
 
| Other
 
| Other
 
|-
 
|-
| 3.10.00  
+
| 3.40.00  
| Incorrect GFX install script
+
| Alsa dev headers not included
| Copy the target and es.3x or es.5x directly
+
| follow the instructions included inside tools/packages directory
| Edit Makefile line 43 and remove opengldemos_install
+
| see install.txt file
 
|-
 
|-
| 3.10.00  
+
| 3.40.00  
| Incorrect DSP Memory map
+
| build_configure.sh has a syntax error and it not handle correctly any directoy name change.<br>
| Upgrade the package to 3.10.10
+
|  
| Download the package 3.10.10
+
Go to line 19 and replace the line using this alternative:
|-
+
 
| 3.10.10<br>  
+
script="s&#124;"$old_workspace"&#124;"$WORKSPACE"&#124;g"
| 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
 
 
|}
 
|}
  
Line 206: Line 96:
 
! TIAuddec1&nbsp;! alsasink demux.video_00&nbsp;! queue max-size-buffers=2 max-size-time=0 max-size-bytes=0&nbsp;! TIViddec2 engineName=codecServer \
 
! 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
 
! queue&nbsp;! TIDmaiVideoSink displayStd=fbdev displayDevice=/dev/fb1 accelFrameCopy=TRUE contiguousInputFrame=1
</pre>
+
</pre>  
 
 
 
= Useful Links  =
 
= Useful Links  =
  
*[[GStreamer|Gstreamer]]  
+
*[[GStreamer|Gstreamer overview]]
 +
*[[:Category:Gstreamer|Gstreamer]]
 
*[[Example GStreamer Pipelines]]<br>
 
*[[Example GStreamer Pipelines]]<br>
 +
 +
{{Message/Forum}}
  
 
[[Category:Gstreamer]]
 
[[Category:Gstreamer]]

Latest revision as of 12:37, 30 June 2015

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

Dependences

  • IGEP SDK Yocto Toolchain 1.2.1-2
  • linux kernel 2.6.37.y
  • Host: Ubuntu or compatible distribution
  • Automake 1.7 and Libtool ( sudo apt-get install autoconf automake libtool )

Download

The package is available at the Official ISEE download area.

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

Ensure that you've the right toolchain installed (you can install it using the script included in the root package directory install_toolchain.sh)

Execute the script: build_configure.sh

It will ask you for the right processor platform:

This program will configure and build this software
Select your processor:
<A> DM3730, <B> OMAP3530 Please choose one. (default: DM3730)

After that you're ready for copy it inside your board.

All build binaries will reside inside the target directory under your selected platform, copy all the content inside your board.

IGEP-X-Loader and Linux kernel have self own howto about build and install it ...

Inside target/script directory you can found some useful scripts.

Memory Map

This package uses the same memory structure that dvsdk from TI, it must be configured as (in kernel command line):

mem=50M@0x80000000
mem=383M@0x88000000

BUGS Detected

Release Description Workaround Other
3.40.00 Alsa dev headers not included follow the instructions included inside tools/packages directory see install.txt file
3.40.00 build_configure.sh has a syntax error and it not handle correctly any directoy name change.

Go to line 19 and replace the line using this alternative:

script="s|"$old_workspace"|"$WORKSPACE"|g"


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

Igep forum.png If you have any question, don't ask to ask at the IGEP Community Forum or the IGEP Community Chat Irc.png