TSReader |
Cards with demuxes and TSReader |
Introduction
As you probably know, TSReader is an MPEG-2 transport stream analyzer. In order to do it's thing it needs access to all data within the transport stream including the NULL PIDs (0x1fff or 8191) that are used to "fill-in" the data stream when no packets are scheduled to be transmitted. Some cards do not provide the entire transport stream. These contain a demultiplexor which just passes packets of interest to the software application being used at that time. Typically these cards are of an older design and have been around since the days of PCs that ran in the hundreds of MHz and that CPU power really wasn't enough to process all packets from the transport stream.
Nowadays 2 GHz and higher processors are common, it's possible to read the entire transport stream and handle demuxing in software with only a tiny load on the processor and much less complex hardware implementations which brings cost down. Only a few years ago satellite PCI cards were selling for $350 and up -- today they can be found for less than $75.
Using cards with demultiplexors
There is limited support in TSReader for cards with demuxes. However, it's worth knowing the limitations of using these cards when used with TSReader. Internally when TSReader starts up the first thing it does is look at the PAT on PID 0x0000. Once this has been read the PIDs of the PMTs will be known and reading these will result in knowledge of where the elementary streams are in the mux. On cards that have no demux, these packets are "always there" but with a demux card, TSReader has to communicate with the demux to tell it that the PID in question be sent while keeping track of the maximum number of PIDs that can be active in the demux - on some cards this is as low as eight PIDs.
Imagine the situation however if the transport stream doesn't contain proper MPEG-2 tables (a very poor man's "scrambling" system) - TSReader has no PAT to read so it can't discover the PIDs used by the PMTs nor can it then find the elementary streams. In this case you won't see any decoding in TSReader - the program will just sit there saying "Reading PAT...".
So, demux cards are limited in this regard but in a few more cases too. Here's a list of oddities you might encounter when using demux cards:
If you have problems with TSReader running with a demux card, we suggest switching to a card without a demux.
About the PID chart and demux cards
If you do use TSReader with a demux card you might see some odd colors in the PID chart. TSReader shows PIDs that are unscrambled in green and scrambled as red. With a demux card you'll likely see PIDs in the chart that have darker colors. These are PIDs that have been seen as active but currently are not active in the card's demux because of the limit of PIDs that can be processed by the demux.