TSReader

Network Detection and Processing


Updated September 5, 2008

Introduction

The MPEG-2 specifications define the video, audio and multiplexing of MPEG-2 transport streams. They leave the definition of the extra tables required to implement a fully functional digital TV system up to other standards bodies. As a result, the world contains a number of different systems - all based on MPEG-2 transport stream, but with additions specific to the distribution method - satellite, cable or terrestrial.

When TSReader starts running, it examines the stream in an attempt to determine which type of stream is currently being processed - this we call a network type. Supported types are DVB, ATSC, ISDB and Digicipher II (DCII). Generally, no network specific streams are processed until TSReader has determined the network type - so if you're not seeing tables show up but you know they're there, TSReader most likely hasn't detected the correct network. To resolve this, either use the command-line option to force the network type or correct the network which usually means making changes to the multiplexor or SI/PSIP generator.

How TSReader determines the network type

In order to determine which network type is being sent through TSReader, we use the following criteria:

Network Type Criteria
DVB PAT with program zero (the network program) with the PMT PID set to 0x0010.
ATSC PID 0x1ffb present and containing a valid MGT.
ISDB Same rule for DVB (so may show DVB initially) but TSReader also looks for ISDB specific tables and then switches if these are present.
DCII PAT with program zero (the network program) with the PMT PID set to 0x0ffe.

Exceptions to the rule

There are a few exceptions to the rules above when processing streams, due to the number of badly constructed transport streams that we've come across.

Exception Criteria
DVB If an SDT is seen on a network that TSReader has not recognized as being DVB and there is an SDT present, TSReader will use the SDT names to label each channel.
DCII Some DCII streams contain no network tables but do contain a special descriptor in the PMT for each program with the name of the channel (a type 0x40 descriptor). This decriptor is then processed to get the channel name.

Forcing the network type

It's possible to override the network type by using a command-line switch:

Switch Network
-Dd DVB
-Da ATSC
-Di ISDB
-Dm DCII