BBC HomeExplore the BBC

19 December 2009
Accessibility help
Text only
TPEG project

BBC Homepage
BBC Research

BBC Research Projects
  Home
  News
  FAQ
  About
  Documentation
  Downloads
  Links
  Pilot service
  XML
  Contacts

Contact Us

Like this page?
Send it to a friend!

 
TPEG Library FAQ
This is the FAQ for the BBC TPEG Library (tpeglib)

This FAQ is included within the tpeglib distribution and may also be obtained from:
www.bbc.co.uk/rd/projects/tpeg

The current issue of the FAQ is 2.0

Last update to the FAQ 17/04/02

The current issue of the library2.0

Contents

1. Introduction

1.1 What is the TPEG Library?
1.2 What is TPEG?
1.3 Who wrote/maintains the MOT Library?
1.4 Will there be any updates?
1.5 Can I request new features?
1.6 Is the library supported in any way?

2. Obtaining the software

2.1 How can I get the TPEG Library?
2.2 Is the software really free?
2.3 Are there any IPR issues?
2.4 What if I want to use the server library for an operational service?
2.5 Can I get a license to include the library in a product to originate TPEG services?

3. Installing the software

3.1 Linux installation
3.2 Windows NT installation

3.2.1 Which compilers can I use to build the library?

4. Using the library

5. Troubleshooting and known issues

6. Versions of the library and major changes

6.1 V1.1 (was previously 0.8.2b on the website)
6.2 V1.4 (28 January 2000)

6.2.1 Changes
6.2.2 Bugfixes

6.3 V2.0 (17 April 2002)

6.3.1 Changes

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



About the BBC | Help | Terms of Use | Privacy & Cookies Policy