Testbed Readme
Directory Structure of DVB-H Project
The subversion link of the mobile TV project is: https://cs-svn.cs.surrey.sfu.ca/svn/nsl The directory should be self-contained: users can set up a base station with only Ubuntu and our project directory. To achieve this, please keep our code within the project directory, and create symbolic links if necessary. For example, Apache server may access web files, which reside in /home/cly/DVB-H/web, through a link.
The current directory structure looks like:
. |-- bin binaries for DVB-H service |-- media sample video files |-- scripts test scripts to launch test configurations | `-- esg_ipdc_test test case with IPDC ESG and one TV channel |-- src (possibly modified) source code for programs not supported by Ubuntu | |-- LinuxSDK driver and API of the modulator card | |-- OpenCaster DVB-T utilities, note that it only works with Python 2.4 | |-- enc_proto an early IPE prototype used to evaluate our algorithms (based on fatcaps) | |-- fatcaps_v0.5 IP Encapsulator | |-- fec-3.0.1 FEC library used by fatcaps | |-- flute mad flute code, we only use its simple sender | `-- log4c-1.2.1 logging library for C programs |-- tar (unmodified) source code from other projects `-- web web user interface `-- configs
Presetup:
login with proper account, know the bandwidth and frequency of DVB-H network, start PCI card with the following command
/DVB-H/Dta1xx/Dta1xxInit start
File folder structures
(1) /nsltester/DVBH-Encapsulator
this folder is used to keep Encapsulator source files, whenever you change something in Encapsulator, you need to make again. See
/nsltester/DVBH-Encapsulator/Makefile for more details
make
make install
(they are installed to /usr/local/bin)
(2) /nsltester/DVBH-Encapsulator/doxgen
this folder is used for doxgen of DVB-H Encapsulator
(3) /nsltester/DVBH-Encapsulator/media
this folder is used to keep video source files
(4) /nsltester/DVBH-Encapsulator/<test*>/log4crc
this files is used to control the log level, remember DVB-H Encapsulator use log4c, the log files are kept in
/nsltester/DVBH-Encapsulator/<test*>/logs
Note: each test will have its own log files, e.g. for test1, the logs are under /nsltester/DVBH-Encapsulator/test1/logs
(5) /nsltester/DVBH-Encapsulator/test*
these folders are used for DVB-H demo, each folder test a feature.
Test1: only play one video program, no ESG
cd /nsltester/DVBH-Encapsulator/test1 ./run.py (it will call test1.sh, see the following for details)
After the test:
./stop.py (it just do some system call to kill process)
steps:
1.1 start vlc to play the video file (done by test1.sh)
1.2 start DataAggregator (proxy) to get the packet (done by test1.sh)
1.3 start timeslicer (done by test1.sh)
1.4 add PSI/SI info (done by run.py)
1.5 use Dtplay to send DVB-H signal (done by run.py)
Test2: one video program and its ESG
cd /nsltester/DVBH-Encapsulator/test2 ./run.py (it will call test2.sh, see the following for details)
After the test:
./stop.py
steps:
2.1 (a) start vlc to play the video file (done by test2.sh)
2.1 (b) start flute to send ESG files (done by test2.sh)
2.2 (a) start DataAggregator (proxy) to get the packet from vlc (done by test2.sh)
2.2 (b) start DataAggregator (proxy) to get the packet from flute (done by test2.sh)
2.3 start timeslicer (done by test2.sh)
2.4 add PSI/SI info (done by run.py)
2.5 use Dtplay to send DVB-H signal (done by run.py)
Test3: three video programs, and one ESG
cd /nsltester/DVBH-Encapsulator/test3 ./run.py (it will call test3.sh, see the following for details)
After the test:
./stop.py
steps:
3.1 (a) start vlc to play three video files (done by test3.sh)
3.1 (b) start flute to send ESG files (done by test3.sh)
3.2 (a) start three DataAggregator (proxy) to get the packet from vlc (done by test3.sh)
3.2 (b) start one DataAggregator (proxy) to get the packet from flute (done by test3.sh)
3.3 start timeslicer (done by test3.sh)
3.4 add PSI/SI info (done by run.py)
3.5 use Dtplay to send DVB-H signal (done by run.py)