1.
Introduction
1.1
What is the TPEG Library?
The
TPEG Library is a software library and a collection
of tools that use the library that allow TPEG
streams to be encoded, manipulated, transmitted
and decoded. Why is the TPEG Library being made
available?
The
library was written for two reasons:
- to
provide a demonstration facility for BBC services
based on TPEG
- to
allow the development of a software infrastructure
to support the creation, management and transmission
of future BBC TPEG services.
Having
written the library, there would be little to
be gained from not distributing the software
more widely. It is hoped that by distributing
the software in this way it will be possible
to stimulate the development of both receivers
and services - which is essential to the development
and acceptance of the technology.
1.2
What is TPEG?
TPEG
(Transport Protocol Experts Group) is an open
specification for a byte-stream protocol that
can carry a range of data - traffic and travel
information in particular. The basic framing
structure is defined as a stream of data containing
transport frames. Each transport frame then contains
several component frames. Component frames store
data for a particular application.
Currently
there are two applications;
- Service
and Network Information (SNI), and
- Road
Traffic Messages (RTM).
The
Service and Network Information (SNI) application
carries information about a particular TPEG service
and its contents.
The
Road Traffic Messages (RTM) application carries
traffic and travel information relating to road
travel. Road Traffic Messages contain information
about events such as the location, severity and
details of the incident.
1.3
Who wrote/maintains the TPEG Library?
The
TPEG Library is currently maintained by Tristan
Ferne - email: licensing@rd.bbc.co.uk.
1.4
Will there be any updates?
This
version of the library conforms to the standardised
version of TPEG and is unlikely to now change
significantly.
1.5
Can I request new features?
You
can always try. I certainly don't promise to
include anything but I am open to good suggestions.
1.6
Is the library supported in any way?
The
library software is provided as is with no warranty
(see the license for complete details). I will
try to resolve any issues that arise but give
no guarantees. Who do I tell if I find an error?
The
best thing to do is to email me at licensing@rd.bbc.co.uk -
I'm not promising to fix it but I'll probably
have a go.
2.
Obtaining the software
2.1
How can I get the TPEG Library?
To
obtain the library you should download the license
document, complete it and sign it and then
mail it to me at:
BBC
Research & Development
Kingswood Warren
Tadworth
Surrey
KT20 6NP
United Kingdom
When
I receive the signed license I will email the
library distribution to you.
Note:
Please remember to supply your email address.
2.2
Is the software really free?
Yes.
The only reason for a license agreement is to
protect the BBC. Because the software is provided
free of charge, the license prevents you from
selling software using or derived from the library
when using it to write software for originating
TPEG streams. The arrangement for using the library
to write decoder software is slightly different
since it is in everybody's interest to promote
receiver development - the library may be used
in a commercial decoder product (preferably a
DAB enabled TPEG receiver) without charge.
Note
that the license permits use of the library for
writing TPEG stream origination software for
test purposes only - let me know if you want
to use it for an operational service. This will
probably also be free although I have yet to
get this cleared internally.
2.3
Are there any IPR issues?
Not
as far as I am aware - but we offer no guarantees.
See sections 3.1 and 12 of the license for full
details.
2.4
What if I want to use the server library for
an operational service?
Let
me know and I'll see what can be arranged.
2.5
Can I get a license to include the library
in a product to originate TPEG services?
Let
me know and I'll see what can be arranged.
3.
Installing the software
The
unzipped archive should produce a directory structure
including the source code, Makefiles and project
workspaces for both Linux and Win32.
3.1
Linux installation
The
library was developed using gcc 2.8.1 under
Linux 2.0.30. No problems have yet been
reported with any other versions. A makefile
is included to build the library. simplespool
is a simple TPEG stream generator that parses
a given RTM text file and produces a TPEG stream
on a TCP/IP socket. simplerx is a simple TPEG
receiver that takes a TPEG stream as an input
(from a socket/file/stdin), keeps a database
of RTMs and displays new messages to the console.
3.2
Windows NT installation
The
library has now been ported to Win32 using Windows
NT 4.0 and Microsoft Visual C++ 6.0. Project
workspaces for Microsoft Visual Studio 6.0 are
provided and they allow the building of a DLL
and a simple console-based receiver. tpegConsoleReceiver
is the Win32 equivalent of simplerx described
above.
3.2.1
How do I use the TPEG Library DLL?
When
using the TPEG Library DLL it should be copied
to a directory where Windows can find it, i.e.
one of;
- Current
directory
- Executable's
directory
- System
directory
- Windows
directory
- any
other directory in the path.
The
tpegConsoleReceiverDLL project that is included
in the archive illustrates the use of the DLL.
4.
Using the library
The
library is designed to be used to create three
main modules in a TPEG system; an application
source, a frame multiplexer and a decoder. Application
sources provide component frames for specific
TPEG applications to a multiplexer. The multiplexer
creates a complete TPEG stream from these and
the Service and Network Information. A decoder
receivers a TPEG stream, demultiplexes the frames
and decodes the application data. The distribution
includes an example TPEG receiver that uses the
console for input and output and a simple application
source/multiplexer. See the TPEG
Library Overview document for more details.
5.
Troubleshooting and known issues
The
following parts of the TPEG specification are
currently unsupported in the library:
SNI:
Service component reset, service logo, same
service linkage information, related service linkage
information and subscriber information.
RTM:
Diversion advice.
LOC:
Location descriptions container.
6.
Versions of the library and major changes
6.1
V1.1 (was previously 0.8.2b on the website)
TPEG Part 2 - TPEG-SSF_1.1/004
TPEG Part 3 - TPEG-SNI_1.0/001
TPEG Part 4 - TPEG-RTM_1.2/001
6.2
V1.4 (28 January 2000)
TPEG Part 2 - TPEG-SSF_1.2/001
TPEG Part 3 - TPEG-SNI_1.0/001
TPEG Part 4 - TPEG-RTM_1.2/003
6.2.1
Changes
Service
Provider ID and Service ID now replaced by ID-A,SID-B,SID-C.
Various changes in RTM components.The component
frame CRCs now work as described in the Troubleshooting
section above.
Renamed
all the source files from ".cc" and ".hh" to ".cpp" and ".h". Various
changes now allow the library to compile under
MS Visual C++ 6.0 as a static library
and a DLL.
6.2.2
Bugfixes
Parses seconds in time fields in RTM
content files correctly.
6.3
V2.0 (17 April 2002)
BPN 027-2 TPEG Part
2 - Syntax, Semantics and Framing Structure, TPEG-SSF_3.0/001
BPN
027-3 TPEG Part 3 - Service and Network Information,
TPEG-SNI_3.0/001
BPN
027-4 TPEG Part 4 - Road Traffic Message Application,
TPEG-RTM_3.0/001
BPN
027-6 TPEG Part 6 - Location Referencing for
Applications, TPEG-LOC_3.0/001
6.3.1
Changes
Many
- see changes_2.0.txt in library distribution.
Top |