1,381
edits
Changes
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 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: <span style="color: rgb(255, 0, 0);">alsa-dev_1.0.20-r1_armv7a.ipk </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=<YOUR_USER_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_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 & Clean<br> ==
Build the framework:<br>
<pre>cd /home/<YOUR_USER_PATH>/Projects/myigep/workspace/igep-dsp-gst-framework/igep-dsp-gst-framework-3_10_10
make</pre>
Clean the framework<br>
<pre>cd /home/<YOUR_USER_PATH>/Projects/myigep/workspace/igep-dsp-gst-framework/igep-dsp-gst-framework-3_10_10
make clean</pre>
== Build & Clean Manually<br> ==
Build the framework:<br>
<pre>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
</pre>
Clean the framework:<br>
<pre>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
</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 <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.
</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/<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 ==
<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 -> ../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</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><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
</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 ! 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
</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 ! 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
</pre>
= Useful Links =
*[[GStreamer|Gstreamer]]
*[[Example GStreamer Pipelines]]<br>
[[Category:Gstreamer]]
IGEP gst framework it's based on TI DVSDK. It's modified version for provide all DSP 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: <span style="color: rgb(255, 0, 0);">alsa-dev_1.0.20-r1_armv7a.ipk </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=<YOUR_USER_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_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 & Clean<br> ==
Build the framework:<br>
<pre>cd /home/<YOUR_USER_PATH>/Projects/myigep/workspace/igep-dsp-gst-framework/igep-dsp-gst-framework-3_10_10
make</pre>
Clean the framework<br>
<pre>cd /home/<YOUR_USER_PATH>/Projects/myigep/workspace/igep-dsp-gst-framework/igep-dsp-gst-framework-3_10_10
make clean</pre>
== Build & Clean Manually<br> ==
Build the framework:<br>
<pre>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
</pre>
Clean the framework:<br>
<pre>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
</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 <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.
</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/<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 ==
<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 -> ../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</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><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
</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 ! 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
</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 ! 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
</pre>
= Useful Links =
*[[GStreamer|Gstreamer]]
*[[Example GStreamer Pipelines]]<br>
[[Category:Gstreamer]]