File Format Comparison

From LinuxTVWiki
Revision as of 20:53, 14 June 2005 by Adq (talk | contribs)
Jump to navigation Jump to search

Comparison of existing DVB file formats.



"Nokia" format.

Satellite/network/transponder/channel listing.

Example:

:SAT "Astra" 19.2 E
:NET "Canal Sat
:TRP 1074 1189500 275000 1 V 0 3/4
:CHN "Canal Sat
:CHN "Hit List" 29461 R
  • Can only represent DVBS.
  • From libdvb - cannot find other examples.
  • Can be edited in a text editor.
  • Easy to parse.
  • Appears to be the format used by an unknown nokia receiver (?)
  • May not be the same across all nokia devices.



meztler bros' libdvb XML

Satellite/network/transponder/channel/etc listing.

Example:

<?xml version="1.0"?>
<satellite>
<transponder type="S" freq="11817000" srate="27500000" polarity="V" >
<service id="8001" ca="1">
<description tag="0x48" type="1" provider_name="CANALSATELLITE" service_name="S$
<ca_descriptor tag="0x09" system_id="0x0500" ca_pid="2" />
<ca_descriptor tag="0x09" system_id="0x0500" ca_pid="5" />
<stream type="198" pid="1251">
</stream>
</satellite>
  • Can represent all FE types.
  • Extensible
  • Can be edited in a text editor, but XML reduces clarity.
  • Easy to parse, but requires XML parser.



meztler bros' libdvb plaintext

Satellite/network/transponder/channel/etc listing.

Example:

LNB ID 2 TYPE 0  LOF1 9750000 LOF2 10600000 SLOF 11700000 DISEQCNR 2
  SAT ID 3592 NAME "Thor 2,3          " LNBID 2 FMIN 10700000 FMAX 12700000
    TRANSPONDER ID 0001 SATID 3592 TYPE 0 FREQ 11229000 POL H SRATE 24500000 FEC 7/8
      CHANNEL ID 0 SATID 3592 TPID 1 SID ca TYPE 0 VPID 2bc APID 2bd ANAME "eng" TTPID c9 PCRPID 2bc
      CHANNEL ID 1 SATID 3592 TPID 1 SID cb TYPE 0 VPID 200 APID 280 TTPID 240
      CHANNEL ID 2 SATID 3592 TPID 1 SID cd TYPE 0 VPID 258 APID 259 TTPID cb
      CHANNEL ID 3 SATID 3592 TPID 1 SID 196 TYPE 0 VPID 384 APID 385 TTPID 12d
  • Can represent all FE types.
  • Exact meaning of some values unclear.
  • Extensible.
  • Easy to edit in a text editor.
  • Easy to parse.



satcodx

Channel oriented listing.

Example:

SATCODX103PANAMSAT 9        TDIC10037200001USA Amer3020PAN009CA______195103000000000000000030000100001ESP__________ica Latina  
SATCODX103PANAMSAT 9        TDIC10037200001Cino Lat3020PAN009CA______195103000000000000000040000100001ESP__________ino         
SATCODX103PANAMSAT 9        TDIC10037200001Exa TV  3020PAN009CA______195103000000000000000050000100001ESP__________            
SATCODX103PANAMSAT 9        TDIC10037200001Hallmark3020PAN009CA______195103000000000000000060000100001ESP__________ Channel Mex
SATCODX103PANAMSAT 9        TDIC10037200001MVS Empr3020PAN009CA______195103000000000000000070000100001ESP__________esarial     
  • Likely can only be able to represent DVBS.
  • Not easily editable.. or understood :)
  • Easy to parse.
  • Not extensible.



zap

Channel oriented listing.

Example:

BBC Radio 1:658166670:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:0:6210:14336
BBC Radio 2:658166670:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:0:6226:14400
BBC Radio 3:658166670:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:0:6242:14464
BBC Radio 4:658166670:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:0:6258:14528
  • Can represent all FE types - but exact FE type is not encoded in the file.
  • Easily editable and understood.
  • Easy to parse.
  • Not easily extensible - you can keep adding on more stuff at the end, but this reduces clarity a great deal.



vdr sources.conf

This gives a standard identifier to each satellite cluster as there is no other such standard IDs for them defined anywhere.

Example:

S5E     Sirius 2/3
S7E     Eutelsat W3
S10E    Eutelsat W1R
S13E    Hotbird 1-(5)-6
S16E    Eutelsat W2
  • Easy to parse
  • Extensible (e.g. to -C and -T)



vdr disceqc.conf

This defines diseqc sequences for tuning to a particular channel.

Example:

S19.2E  11700 V  9750  t v W15 [E0 10 38 F0] W15 A W15 t
S19.2E  99999 V 10600  t v W15 [E0 10 38 F1] W15 A W15 T
S19.2E  11700 H  9750  t V W15 [E0 10 38 F2] W15 A W15 t
S19.2E  99999 H 10600  t V W15 [E0 10 38 F3] W15 A W15 T

To find the diseqc sequence for a channel, find the source_id, the frequency, and the polarity. Using those, the entries in diseqc.conf are searched for a matching entry. When found, the associated command string is executed.

Command string example: S19.2E 11700 V 9750 t v W15 [E0 10 38 F0] W15 A W15 t

This matches channels which are from S19.2E, are less than 11700 frequency, V polarity. When matched, it says subtract 9750 from the base frequency, and execute the following diseqc sequence: turn the tone off, 13v, wait 15ms, send a disqec master command, wait 15ms, send tone burst A, wait 15 seconds, turn tone off.

  • Very extensible.
  • The nicest diseqc representation seen so far.
  • Easily editable and understood.



vdr channels.conf

Channel definitions.

RTL Television,RTL;RTL World:12187:hC34:S19.2E:27500:163:104=deu:105:0:12003:1:1089:0
SAT.1;ProSiebenSat.1:12480:vC34:S19.2E:27500:1791:1792=deu;1795=deu:34:0:46:133:33:0
Sky News;BSkyB:11597:vC56:S19.2E:22000:305+131:306=eng:0:0:28707:1:1026:0
  • Can represent all FE types.
  • Derived from zap format.
  • Hard to parse.
  • Hard to extend without adding more complexity.
  • Not easy to understand.
  • Editable in text editor.



Andrew's vague ideas for alternative file formats.


An initial idea for channels:

:DVBCHANNELS-0.1

:TRANSPONDER <source_id> <DVBT|DVBC|DVBS|ATSC> <transport_stream_id> 
<original_network_id>
fe <frequency> <polarization> <inversion> <symbol_rate> <fec_inner> # DVBS
fe <frequency> <inversion> <symbol_rate> <fec_inner> <modulation> # DVBC
fe <frequency> <inversion> <bandwidth> <code_rate_hp> <code_rate_lp> <constellation> <transmission_mode> <guard_interval> <hierarchy_information> # DVBT
fe <frequency> <inversion> <modulation> # ATSC

:CHANNEL <program_number> <order_in_channels_list> <group_id>
name <name>
shortname <shortname>
ca <id> <id> ...
es <pid> <type> [<language>] [pcr]
.... (additional es entries)
  • Use VDR diseqc.conf and sources.conf as-is, but with a redesigned channels file format.
  • Keep file format as simple as possible, with just as much information as needed.
  • Any other information can be retieved using the DVB library and parsing PMTs etc.
  • es entries are not strictly necessary as all information can be derived from the PMT once you have the program_number. However, it is useful to store these to accelerate channel changing speed.
  • <type> in ES is one of the codes defined in the ISO 13818-1 for elementary streams in PMT tables.