[linux-dvb] DVB file formats

Robert Schlabbach robert_s at gmx.net
Thu Jun 16 01:21:49 CEST 2005


From: "Andrew de Quincey" <adq_dvb at lidskialf.net>
> http://www.linuxtv.org/wiki/index.php/File_Format_Comparison
> Please let me know your thoughts.

I'm not sure I fully understand your format. You have a "section" named
"[transponder]" in there, and under it transponder data for one transponder
(or channel). Where do you put the other transponders, or do you only store
one per file?

BTW, I don't like the term "transponder" as it is specific to satellite
reception. Microsoft uses the term "locator" in their unified tuning model,
and this seems more appropriate to me.

FWIW, in my Windows application, I use the good old Windows "INI" file
format, and the format is unified for DVB-C/S/T. The scanner "seed" files
look like this:

; Name=Frequency;Polarisation;Bandwidth;Modulation;SymbolRate;CodeRate

[Locators]
Trp 1 (1F)=11214250;1;-1;20;22000;6
Trp 3 (1C)=11243750;1;-1;20;22000;6

(for DVB-S) -or-

CC 02=113000;-1;8;3;6900;-1
CC 03=121000;-1;8;3;6900;-1

(for DVB-C) -or-

CH 05=177500;-1;7;-1;-1;-1
CH 06=184500;-1;7;-1;-1;-1
CH 07=191500;-1;7;-1;-1;-1

(for DVB-T)

I set unused/unneeded values to -1. This allows only one set of locators
for one transmission system to be stored in a file, but then again I don't
think it makes much sense to mix them. But if you wanted to store e.g. the
transponder data for several satellite positions, how about appending them
to the section name, e.g.

[Locators.ASTRA 19.2°E]
...

[Locators.HotBird 13.0°E]
...

BTW, originally I even used the same file for DVB-C and DVB-T... It might
be a good idea to add an identification section, though, like your
"dvbchannels" one, best also specifying the transmission system type, e.g.

[Version]
System=[DVB-C|DVB-S|DVB-T|ATSC]
Version=Version[;Date]

Now the scanner will read the above locator file, and output its results in
a similar format:

[Locators]
ONID:TSID=Name;Frequency;Polarisation;Bandwidth;Modulation;SymbolRate;CodeR
ate

e.g.

1:1008=Trp 8 (1F);11317500;2;-1;20;22000;6

[Services]
ONID:TSID:SID=NetworkName;ProviderName;ServiceName;ServiceType

e.g.

1:1008:29800=ASTRA;DOC;DOCUMANÍA;1
1:1008:29801=ASTRA;FK;JETIX;1
1:1008:29802=ASTRA;DCH1;DISNEY CH. +1;1

You could also add other data, e.g. the encryption system.

The actual TV application then reads the Locators section and then the
Services section and retrieves the corresponding locator data for each
service by the ONID:TSID pair (as per DVB specification). For the TV
application to store presets, I use another section in the same file:

[Presets]
Number=ONID:TSID:SID

e.g.

1=1:1101:28106

Now this could definitely be more sophisticated, e.g. to allow several
presets groups. A simple extension would be:

[Presets.Default]
...

[Presets.Sports]
...

[Presets.News]
...

This could even be taken several levels deep:

[Presets.Movies.Action]
...

[Presets.Movies.Horror]
...

I'm not sure, though, if it is good to keep the presets and the scanner
output together in one file, as the presets are a user preference, whereas
the scanning results are not, and might be updated with a new scan. OTOH,
there is somewhat of a relationship between the presets and the scan
results... An alternative solution would be to make the presets somewhat
independent of even the service identifiers, and leave it up to the
application to find a matching service. Then you could get away with
something as simple as this:

[Presets]
1=ARD
2=ZDF
3=RBB

And the application would try to find the closest matching service name...
You could enhance this by adding a transmission system preference, e.g. if
you prefer DVB-S reception over DVB-T...

Just my thoughts,
--
Robert Schlabbach
e-mail: robert_s at gmx.net
Berlin, Germany





More information about the linux-dvb mailing list