IceTV timers for Nine HD show incorrect or blank service name
The IceTV plugin code in EPGFetcher.processTimers
assumes that the ServiceType (third) field in a serviceref is always 1. For NineHD it is 0x19 and for RACING.COM it is 0x16.
This means that searches to derive the name of the service will either match the old serviceref for GEM if it is still in the bouquets from old scans, or will not match any serviceref, and show a blank name.
The critical ONID/TSID/SID data is correct, so the timers appear to record correctly.
The bug can probably be addressed cleanly by changing:
db = eDVBDB.getInstance()
for channel in channels:
serviceref = ServiceReference("1:0:1:%x:%x:%x:EEEE0000:0:0:0:" % (channel[2], channel[1], channel[0]))
if db.isValidService(channel[1], channel[0], channel[2]):
to
db = eDVBDB.getInstance()
for channel in channels:
serviceref = db.searchReference(channel[1], channel[0], channel[2])
if serviceref.valid():
in EPGFetcher.processTimers
Comments (4)
-
-
reporter I can do that, but I'm not actually able to test it against 9HD. The best I can do is to test that it doesn't break anything else.
-
- changed status to resolved
Fix bug
#439: IceTV timers for Nine HD show incorrect or blank service name[Plugins.SystemPlugins.IceTV.plugin]
Replace construction of a new or updated timer's serviceref with a fixed (and, for Nine HD, incorrect) service type to use eDVBDB::searchReference() to look up the matching serviceref from the timer's (onid, tsid, sid) triple.
[eDVBDB]
Expose eDVBDB::searchReference() in the SWIG API.
→ <<cset adb07bffe9b0>>
-
Merged in prl/easy-ui-4/Fix-bug-439 (pull request #181)
Fix bug
#439: IceTV timers for Nine HD show incorrect or blank service name→ <<cset a5d3cfd54880>>
- Log in to comment
Please feel free to test the proposed change and create a pull request once you are satisfied that it works well enough for public deployment.