Wednesday, 9 November 2011

Analysing DVB STB software update using DSM-CC analyser

I was going through the list of MT DTT services on
Two services caught my attention.
"Handan Software Update" and "Intek Software Update".
The service names strongly suggest that these services are carrying software updates for set-top box'es (STB). That would most likely be the set-top box'es offered by GO.

I decided to examine these services further with DVBStreamExplorer. I started by having a look at PSI/SI information for one of the services. I chose to have a closer look at "Handan Software Update". I launched DVBStreamExplorer and tuned on 754 MHz MUX which is carrying the update services. There are two options to retrieve PSI/SI information with DVBStreamExplorer. Either use the PSI/SI/PSIP -> DVB PSI/SI scanning -> current MUX. This will take a snapshot of PSI/SI information currently applicable for stream. It is also possible to use Transport Stream Monitor. This feature will monitor stream continiously. Any changes in stream will be reflected immidiately in UI.
I decided to use PSI/SI/PSIP -> DVB PSI/SI scanning -> current MUX feature. This gave me stream information like below.

The service contain one stream of type 0x0B ISO/IEC 13818-6 type B. The stream is carried on PID 0x0bb8.
This is a good candidate for a stream type carrying a software update. ISO/IEC 13818-6 type B means that it contains DSM-CC data carousel.
So the next step is to examine the service even further from a DSM-CC perspective.
DVBStreamExplorer has two options to analyse DSM-CC. Either use the standalone 'DSMCC Analyzing  (DVB)' function. Or use the DSM-CC analyser which is part of 'Transport Stream Monitor' function. Using DSMCC analyser in 'Transport Stream Monitor' has the advantage that you can browse other stream information while DSM-CC analyser is working. Simply navigate through the tabs in 'Transport Stream Monitor'.
After starting scan in 'Transport Stream Monitor' wait a few seconds. Then select the update service in service selector in top part of 'Transport Stream Monitor' window. Then select 'DSMCC' tab. By now it should have found one or more PID streams which are good candidates to carry DSMCC data. Select one or more streams to start analysing.
One disadvantage of DSM-CC analyser in  'Transport Stream Monitor' is that if a PID stream is not recognized as one carrying DSM-CC then it's not possible to analyse that PID stream. With standalone DSM-CC analyser any arbitrary PID stream can be scanned for DSM-CC carousel.

Another difference between the two DSMCC analysers in DVBStreamExplorer is that in 'Transport Stream Monitor' you can start examining DSMCC sections (DSI, DII and DDB) as they arrive. In standalone DSMCC analyser you have to wait until all DSMCC sections have been found before you can start examining content.

In screenshot above is shown part of Download Info Indication (DII) message for the Handan update service. It contains one module. The module info node shows various properties for the module. I.e. ModuleID 0x001c, moduleSize 690039 etc. There is also the moduleInfo block. In reality this is a descriptor loop. Unfortunately these descriptors are not decoded in current version of DVBStreamExplorer. Hopefully descriptor decoding will be added as a feature in a future release of DVBStreamExplorer. But after brief decoding by hand it can be seen that descriptor loop contains type descriptor (tag 0x01), CRC32   descriptor (tag 0x05) and compressed_module descriptor (tag 0x09).

We can now go to 'Data Carousel' tab to see the modules found. Another advantage of DSMCC analyser in  'Transport Stream Monitor' is that it provides a binary/ASCII view of the content of the modules found.

Both DSMCC analysers in DVBStreamExplorer have the ability to save the data carousel modules to disk. That can be useful if you want to examine the module further offline with other tools.
This concludes the brief introduction on how to analyse DSM-CC carousels with DVBStreamExplorer.