Bug #1154
Some channels don't receive EPG data EIT, OpenTV, Sky, etc
100%
Description
Currently receiving full EPG OTA using Opentv: Sky UK, Uk: Freeview, UK:Freesat, EIT: DVB grabber
Almost all channels receive full EPG as expected, however a handful of them don't receive any EPG data at all, even when tuned to the channel no EIT data comes in for them.
List of channels that will do this repeatedly:
Discovery Realtime
Discovery Science
Discovery Turbo
(Discovery HD - Interestingly this works and gets full EPG)
Cartoonito
Nicktoons
Boomerang
Boomerang +1
(Probably not an exhaustive list).
But one common factor is that these are all provided by Sky (i.e. not freesat), and all are subscription so I have to use my CWC and card-reader to decrypt the channels. By tuning to the channel the content works, so the decrypt is working (although I don't know if this would be needed during the EPG grab, as I'd assume the EPG data is present for all channels regardless of if you can tune to them or not depending on your subscription). Note that other channels that ARE encrypted work fine, for example Discovery HD, and all of the SKY channels themselves, so it doesn't appear to be related to the encryption from what I can see.
In debug logs for TVH there are no epg events triggered for the missing channels, no now/next, arm, expire or anything. In contrast a working channel gives me:
Aug 24 08:30:01 tvserver tvheadend19736: epg: expire event 2243380 from Discovery HD
Aug 24 08:30:01 tvserver tvheadend19736: epg: now/next 2243382/2243383 set on Discovery HD
Aug 24 08:30:01 tvserver tvheadend19736: epg: arm channel timer @ 1345795200 for Discovery HD
Aug 24 08:30:01 tvserver tvheadend19736: epg: inform HTSP of now event change on Discovery HD
Aug 24 09:00:00 tvserver tvheadend19736: epg: expire event 2243382 from Discovery HD
So it isn't giving anything out in debug logs for the missing channels.
One thing thats interesting here is that I have 3 cards in my machine, DVB-S, DVB-S2, DVB-T (In that order physically, so adapter0 is the DVB-S).
Checking my dvbtransports I can see that "Discovery Turbo" only exists on my adapter1 (As I believe its a DVB-S2 feed) on service_id 6209, so could it be that the EPG grab is only taking place on my adapter0 card and not any other sat card, therefore it cannot receive the EPG for S2 channels?
History
Updated by Andy Brown about 12 years ago
_dev_dvb_adapter1_Conexant_CX24116_CX2411811876000_H_satconf_2/_dev_dvb_adapter1_Conexant_CX24116_CX2411811876000_H_satconf_2_1841
{
"service_id": 6209,
"pmt": 277,
"stype": 1,
"scrambled": 1,
"channel": 0,
"provider": "BSkyB",
"servicename": "Disc.Turbo",
"channelname": "Discovery Turbo",
"mapped": 1,
"dvb_eit_enable": 1,
"pcr": 2337,
"disabled": 0,
"stream": {
"pid": 2337,
"type": "MPEG2VIDEO",
"position": 0,
"width": 544,
"height": 576
},
"stream": {
"pid": 2338,
"type": "MPEG2AUDIO",
"position": 1,
"language": "eng"
},
"stream": {
Updated by Andy Brown about 12 years ago
Try again (I can't delete posts for some reason!)
_dev_dvb_adapter1_Conexant_CX24116_CX2411811876000_H_satconf_2/_dev_dvb_adapter1_Conexant_CX24116_CX2411811876000_H_satconf_2_1841
{
"service_id": 6209,
"pmt": 277,
"stype": 1,
"scrambled": 1,
"channel": 0,
"provider": "BSkyB",
"servicename": "Disc.Turbo",
"channelname": "Discovery Turbo",
"mapped": 1,
"dvb_eit_enable": 1,
"pcr": 2337,
"disabled": 0,
"stream": {
"pid": 2337,
"type": "MPEG2VIDEO",
"position": 0,
"width": 544,
"height": 576
},
"stream": {
"pid": 2338,
"type": "MPEG2AUDIO",
"position": 1,
"language": "eng"
},
"stream": {
"pid": 2339,
"type": "MPEG2AUDIO",
"position": 2,
"language": "NAR"
},
"stream": {
"pid": 2340,
"type": "TELETEXT",
"position": 3
},
"stream": {
"pid": 9080,
"type": "TEXTSUB",
"position": 1000,
"language": "eng",
"parentpid": 2340
},
"stream": {
"pid": 1288,
"type": "CA",
"position": 262144,
"caidlist": [
{
"caid": 2403
},
{
"caid": 2401
},
{
"caid": 2400
}
]
}
}
Updated by Andy Brown about 12 years ago
Aha!
I think it is what I suspected. The EPG scanning is only taking place on the first sat card (adapter0 which is my DVB-S card), and adapter2 (DVB-T), its not using the adapter1 DVB-S2 card:
Aug 24 09:32:58 tvserver tvheadend19736: dvb: "/dev/dvb/adapter0" tuning via s2api to "ASTRA: 11,261,000 kHz Horizontal (Default (Port 0, Universal LNB))" (1511000, 27500000 Baud, 2/3, SYS_DVBS, QPSK) for EPG scan
Aug 24 09:33:38 tvserver tvheadend19736: dvb: "/dev/dvb/adapter0" tuning via s2api to "ASTRA: 11,222,170 kHz Horizontal (Default (Port 0, Universal LNB))" (1472170, 27500000 Baud, 2/3, SYS_DVBS, QPSK) for EPG scan
Aug 24 09:34:19 tvserver tvheadend19736: dvb: "/dev/dvb/adapter0" tuning via s2api to "ASTRA: 11,307,000 kHz Vertical (Default (Port 0, Universal LNB))" (1557000, 27500000 Baud, 2/3, SYS_DVBS, QPSK) for EPG scan
Aug 24 09:46:10 tvserver tvheadend19736: dvb: "/dev/dvb/adapter2" tuning to "Teesside.: 474,000 kHz" (EPG scan)
Aug 24 09:58:11 tvserver tvheadend19736: dvb: "/dev/dvb/adapter2" tuning to "Teesside.: 578,167 kHz" (EPG scan)
Aug 24 10:01:36 tvserver tvheadend19736: dvb: "/dev/dvb/adapter0" tuning via s2api to "ASTRA: 12,524,000 kHz Vertical (Default (Port 0, Universal LNB))" (1924000, 27500000 Baud, 2/3, SYS_DVBS, QPSK) for EPG scan
Aug 24 10:03:17 tvserver tvheadend19736: dvb: "/dev/dvb/adapter0" tuning via s2api to "ASTRA: 10,832,000 kHz Horizontal (Default (Port 0, Universal LNB))" (1082000, 22000000 Baud, 5/6, SYS_DVBS, QPSK) for EPG scan
Aug 24 10:04:17 tvserver tvheadend19736: dvb: "/dev/dvb/adapter0" tuning via s2api to "ASTRA: 10,729,000 kHz Vertical (Default (Port 0, Universal LNB))" (979000, 22000000 Baud, 5/6, SYS_DVBS, QPSK) for EPG scan
Updated by Adam Sutton about 12 years ago
It should actually matter that only one adapter is used for EPG, this is in fact the intention (or at least it will be). Since Freesat/OpenTV info is on a specific mux (rather than spread around like EIT now/next). It's a waste to scan the same info on two adapters. But for now that will happen.
So I don't think its that. I need to get some debug out of the opentv feed to see if its even getting info on those channels (though it certainly should be!).
It's more likely that it's some cockup on the way I actually decide which internal service it should be added via.
Updated by Andy Brown about 12 years ago
I have an idea on this, with doing the xmltv.c digging I found the function service_is_primary_epg sometimes doesn't quite do what I expected, i.e. multiple adapters with differing lineups caused that function to reject some channel updates.
What I'm wondering is could this be doing a similar thing within the opentv module? i.e. it won't update the channel because it can see the channel in multiple adapters, but the channel is disabled on the first adapter it comes across, so therefore doesn't process EPG for that channel.
In my example, we'll stick with "Discovery Turbo"
This channel is present on my two DVB-S/2 cards, but I have only enabled it on adapter1 (adapter0 has the service disabled). So this will only tune on adapter1. I suspect that the service_is_primary_epg is returning false when it finds "Discovery Turbo" on the EPG scan, therefore doesn't update the EPG.
This is just my interpretation of code, so shoot me down, but I'll give it a go changing the code and see what happens, if nothing else to satisfy my curiosity.
Updated by Andy Brown about 12 years ago
OK, bit of progress.
My initial setup was:
adapter0 - DVB-S - Service disabled for Discovery Turbo
adapter1 - DVB-S2 - Service enabled for Discovery Turbo
adapter2 - DVB-T - Not able to receive
With the above, Discovery Turbo won't get EPG data.
However as soon as I enable the service on adapter0 and restart tvh, EPG data starts flooding in for Discovery Turbo. So at least now I know what causes this!
Updated by Adam Sutton about 12 years ago
I've looked at the code a dozen times and I just can't see what's going wrong here. I think I need to do some experimentation.
Or at least stick some debug on you can look at.
Adam
Updated by Adam Sutton about 12 years ago
- Status changed from New to Fixed
- % Done changed from 0 to 100
Applied in changeset commit:8fb625f6f562746f93b2b8b61a4023e50a8ce94c.