- improved IniFile and Mapping to better handle missing settings

- working on philips *.db/FLASH* file format (identified 3 different variations so far)
This commit is contained in:
Horst Beham
2021-09-15 10:59:05 +02:00
parent 44749acaf0
commit ece2cd7e66
15 changed files with 968 additions and 354 deletions

View File

@@ -2,22 +2,31 @@
# Repair\CM_*_LA_CK.BIN file (or similar) with a hidden .xml - stable
[Repair_xml]
reorderRecordsByChannelNumber=false
; nothing to configure
############################################################################
# Repair\channel_db_ver.db, atv_chan_phy_c.db, FLASH_DTVINFO_S_FTA, mgr_chan_s_fta.db, ... - experimental
# unfortunately read-only because all attempts so far produced inconsistencies between the channels in the menu and what the tuner actually put on screen
# There is a program number at offset 0 and another one around 450. My guess is that the 1st is the "new" number and the 2nd the "old" number - or it is the other way around.
# Repair\channel_db_ver.db, mgr_chan_s_fta.db, FLASH_DTVINFO_S_FTA, _pkg, ... - experimental
# There are different version of this format using different offsets/lengths/sizes.
# The calculated length of a channel record in the .db file is used to select specific config sections.
#
# There is a program number at offset 0 and another one around 450 in the .db file.
# My guess is that the 1st is the "new" number and the 2nd the "old" number - or it is the other way around.
# When both numbers are updated and also the value of RecordIndex is set to PrNr-1, the TV doesn't show any changes.
; ---------------------------------------------
; mappings that are the same for all format variants
[mgr_chan_s_fta.db]
lenHeader=64
lenEntry=476
lenFooter=12
offFooterChecksum=8
reorderRecordsByChannelNumber=false
allowEdit=true
allowEdit=false
; field mappings needed to calculate variable channel record length: blockSize / (tvChannels + radioChannels)
numTvChannels=0x2C
numRadioChannels=0x30
channelBlockSize=0x3C
[mgr_chan_s_fta.db_entry]
offProgNr=0
@@ -32,15 +41,16 @@ offTsid=460
offSid=464
offOnid=466
[mgr_chan_s_pkg.db]
lenHeader=64
lenEntry=480
lenFooter=12
offFooterChecksum=8
reorderRecordsByChannelNumber=false
allowEdit=true
allowEdit=false
; field mappings needed to calculate variable channel record length: blockSize / (tvChannels+radioChannels)
numTvChannels=0x2C
numRadioChannels=0x30
channelBlockSize=0x3C
[mgr_chan_s_pkg.db_entry]
offProgNr=0
@@ -55,15 +65,17 @@ offTsid=460
offSid=464
offOnid=466
[mgr_chan_dvbt.db]
lenHeader=64
lenEntry=472
lenFooter=12
offFooterChecksum=8
reorderRecordsByChannelNumber=false
allowEdit=true
allowEdit=false
; field mappings needed to calculate variable channel record length: blockSize / (tvChannels + radioChannels)
numTvChannels=0x2C
numRadioChannels=0x30
channelBlockSize=0x3C
[mgr_chan_dvbt.db_entry]
offProgNr=0
@@ -80,15 +92,17 @@ offSymbolRate=462
offSid=464
offOnid=466
[mgr_chan_dvbc.db]
lenHeader=64
lenEntry=472
lenFooter=12
offFooterChecksum=8
reorderRecordsByChannelNumber=false
allowEdit=true
allowEdit=false
; field mappings needed to calculate variable channel record length: blockSize / (tvChannels + radioChannels)
numTvChannels=0x2C
numRadioChannels=0x30
channelBlockSize=0x3C
[mgr_chan_dvbc.db_entry]
offProgNr=0
@@ -105,7 +119,130 @@ offSymbolRate=462
offSid=464
offOnid=466
; ---------------------------------------------
; variant with 476 bytes per entry in mgr_chan_s_fta.db
[flash_dtvinfo_s_fta:476]
offChannelTransponderTable=4
numChannelTransponderTable=4000
lenChannelTransponder=4
offTransponderTable=0x5f2c
numTransponderTable=1100
lenTransponder=31
offSatellites=0xe460
offChannelBlock=0x10000
lenChannelBlock=0x10000
; struct Transponder
transponderId=0
freq=4,21
symbolRate=6
onid=10
tsid=12
nid=14
; struct ChannelBlock
offChannel=4
numChannel=734
lenChannel=89
; struct Channel
channelId=0
flags=3
sid=8
pcrPid=10
vpid=12
progNr=22
apid=31
[flash_dtvinfo_s_pkg:476]
offChannelTransponderTable=4
numChannelTransponderTable=2000
lenChannelTransponder=4
offTransponderTable=0x287C
numTransponderTable=550
lenTransponder=31
offSatellites=0x6B16
offChannelBlock=0x10000
lenChannelBlock=0x10000
numChannel=734
; struct transponder
transponderId=0
freq=4,21
symbolRate=6
onid=10
tsid=12
; relative to ChannelBlock
offChannel=4
lenChannel=89
; channels within the ChannelBlock
channelId=0
flags=3
sid=8
pcrPid=10
vpid=12
progNr=22
apid=31
;-------------------------------------------------------------------------
; variant with 480 bytes per entry in mgr_chan_s_fta.db
[flash_dtvinfo_s_fta:480]
offChannelTransponderTable=4
numChannelTransponderTable=4000
lenChannelTransponder=4
offTransponderTable=0x4f14
numTransponderTable=1100
lenTransponder=36
offSatellites=0xe9c4
offChannelBlock=0x10000
lenChannelBlock=0x10000
reorderRecordsByChannelNumber=false
; struct Transponder
transponderId=0
freq=4,21
symbolRate=6
onid=10
tsid=12
nid=14
; struct ChannelBlock
offChannel=4
numChannel=703
lenChannel=93
; struct Channel
channelId=0
flags=3
sid=8
pcrPid=10
vpid=12
progNr=24
apid=34
[flash_dtvinfo_s_pkg:480]
offChannelTransponderTable=4
numChannelTransponderTable=2000
lenChannelTransponder=4
offTransponderTable=0x2804
numTransponderTable=550
lenTransponder=36
offSatellites=0x755C
offChannelBlock=0x10000
lenChannelBlock=0x10000
; struct transponder
transponderId=0
freq=4,21
symbolRate=6
onid=10
tsid=12
; struct ChannelBlock
offChannel=4
numChannel=703
lenChannel=93
; struct Channel
channelId=0
flags=3
sid=8
pcrPid=10
vpid=12
progNr=24
apid=34
############################################################################
# Repair\ChannelList\chanLst.bin version 1.x with AntennaDigSrvTable, CableDigSrvTable and service.dat (for DVB-S) - should be stable