IGEP GST FRAMEWORK 3.10.10
From IGEP - ISEE Wiki
Contents
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