ChanSort icon indicating copy to clipboard operation
ChanSort copied to clipboard

Possible to include support for Vantage HD-6000S channel lists?

Open viciousvex opened this issue 5 years ago • 8 comments

Hi everyone and thanks for this great piece of software.

I'd like to know if someone here recognizes the file format of channel list files with .SI extension and a file header "intekdgt" (Intek Digital). This file is a channel list saved on a Vantage HD-6000S receiver. Unfortunately, the company seems to have closed recently and one cannot get the original channel editor any longer.

Channel 02-03-2020.zip

Maybe we can build support for these files into ChanSort somehow?

Thanks in advance for your help.

viciousvex avatar Mar 02 '20 11:03 viciousvex

Reverse engineering a binary data format is quite a lot of work and error prone. Having that said, this particular file format does not seem overly complicated and could possible be supported. For that however, I need some more information on how that receiver works. Can you manually reorder channels on the receiver, and if so, does it require you to have continuous numbers or can you for example skip some numbers and set one channel to number 10000? Does the receiver support favorite lists and if, how many and how numbers work inside those lists (can channels have their own order and numbers in those lists or are they implicitly ordered by the channel's program number?)

It would be very helpful if you could send me a 2nd file with channels 1 and 2 swapped and a few channels added to favorites ... and maybe some with special user-flags like "skip", "parental lock", "hide" if the receiver supports those in the menu.

PredatH0r avatar Mar 14 '20 16:03 PredatH0r

Hi PredatH0r, because I am still using this unsupported receiver I had a second look into the channel files today. Maybe I can do the plugin for ChanSort by myself. Can you point me to a plugin that is similar and reads binary files?

Channellists.zip

It contains files

01-Ausgangsliste-Channel 26-12-2020.si

Original channel list

Modified_01-Erster_und_zweiter_Programmplatz_getauscht-Channel 26-12-2020.si

The original list edited with a hex editor - program 1 and 2 where manually swapped with the hex editor.

Modified_01_02_Gespeichert_vom_Receiver_Channel 26-12-2020.si

The modified list was imported into the receiver and then saved to this file on the receiver.

Manual editing of .si file and resorting channels

This seems to work. The receiver loads the edited channel list and shows programs 1 and 2 swapped.

Here is a superficial analysis of the binary format:

Vantage HD 6000 S .si file analysis

Magic Bytes: "INTEKDGT" at position 0x00

Possible checksum (CRC32?) at position 0x08 Is not taken into account by receiver and needs not to be correct if it is a checksum.

Satellite list

Satellite list starts at position 0x00002950 with the first satellite First index at position 0x0000295c (0x00) Name of the satellite 0x00002960 - 296f (length 16 bytes)

Channel list

Channel list starts at position 0x00004edc with the first program of the channel list.

Position in the channel list corresponds to program list of the receiver.

Program record is 16 bytes long (first program 0x4edc-0x4efb)

There is no index. The order of the programs determines the position The program name starts at position 17 Sometimes the program name starts at position 18 and starts with 0x05 (special case) 0x01 (special case, see "Kaufbei.tv")

If a program is moved to the very back of the channel list (arte program position 1 to position 350), then the channel ranks before the radio programs

Radio list

Radio list starts at position 0x000074FC

Favorites (TODO)

Favorites list? Starts at 0x000a12dc mit “HD” 0x000a1610 mit “Sport” 0x000a1944 mit “Film” 0x000a1c78 mit “Musik” 0x000a1fac mit “Einkaufen” 0x000a22e0 mit “Kinder” 0x000a2614 mit “Erwachsene” 0x000a2948 mit “Bildung” 0x000A2C7C mit “Drama”

At position A2FB3 an unknown table starts (TODO?)

At position AEB30 there is a list of operators (TODO?)

viciousvex avatar Dec 26 '20 12:12 viciousvex

The ChanSort.Loader.SilvaSchneider is based on a simple binary file format where the records are physically reordered (rather than changing a programNr value inside the records).

To create your own loader, I think you need to disable compilation of the "ChanSort" project, because it requires a license for the UI components. But it is sufficient to just drop your compiled ChanSort.Loader.Vantage.dll file in a folder where you have an executable ChanSort.exe (or copy ChanSort.exe into your bin/Debug/x86 directory)

PredatH0r avatar Dec 26 '20 12:12 PredatH0r

btw, the Channellists.zip you attached has a size of 0 bytes.

PredatH0r avatar Dec 26 '20 13:12 PredatH0r

Thanks for the info! I will have a look into this.

viciousvex avatar Dec 26 '20 13:12 viciousvex

Hmm.. When I click on https://github.com/PredatH0r/ChanSort/files/5743077/Channellists.zip it has a length of 63131 bytes. Interesting. Here is a second upload: Channellists.zip

viciousvex avatar Dec 26 '20 13:12 viciousvex

This one works fine now. thx!

PredatH0r avatar Dec 26 '20 13:12 PredatH0r

As to the channel names starting with 0x05 and 0x01 ... The DVB specification defines various ways of how channel names can be encoded. The first byte may indicate a certain code-page or encoding to be used for the rest of the name. There may also be control characters inside the name e.g. for "start/stop" capturing characters for short-name where parts of the full channel name are then used as the short channel name to be displayed in the corner of the TV while zapping. See https://www.etsi.org/deliver/etsi_en/300400_300499/300468/01.11.01_60/en_300468v011101p.pdf Annex A

The ChanSort.Api/Utils/DvbStringDecoder class can decode these byte sequences into long and short name with proper code page selection.

PredatH0r avatar Dec 26 '20 13:12 PredatH0r