Thursday, 26 July 2012

How DVBStreamExplorer is keeping old PSI/SI section versions

In this post I will describe an often overlooked, but nice feature in DVBStreamExplorer Pro Edition TS Monitor feature. When scanning for SI/PSI table sections DVBStreamExplorer Pro Edition will like most other analysing software keep a copy of all unique sections. However when a new version of a given section arrives in stream, DVBStreamExplorer Pro Edition will keep the old section when inserting the new 'current' section in the tree. Below is an example of how an EIT section version 6 was first acquired and then later superseded by version 7, and finally by version 8. The section version currently applicable in TS is labelled (current) for easy identification. The section version_number field  is 5 bits long. So DVBStreamExplorer Pro Edition will keep up to 32 versions, including current version, of each unique section.

The curious user can then examine different section versions in the tree to find out exactly what changed. Below is EIT section version 7 expanded in SI/PSI tree.

And  below is EIT section version 8 expanded in SI/PSI tree.

It can be seen that the event ID of first event in loop was changed from 707 (section version 7) to 708 (section version 8).
This approach can also be applied for table sections like PAT, CAT, PMT, NIT, SDT, NIT etc. In this example I used EIT because the section version change can be observed after scanning for a relatively short period of time. For the other table section types one usually have to scan for a significantly longer time to catch a section version change.