Handle disappearance/reappearance of multiplexes/services more gracefully
I have noticed behaviour in TVHeadend that is quite possibly caused by an underlying issue with my hardware or signal, but the way it is handled in TVHeadend is far from "graceful" and in fact causes mass configuration changes which then need to be fixed.
I have configured my TVHeadend install with 2 DVB cards, one DVB-S/2 card and one DVB-T/2 card, both providing 8 tuners. In the UK, some services are available on both platforms, so I manually merge the services from the DVB-T/2 card with the DVB-S/2 card and give priority to the DVB-T/2 services (as they need no decryption). I also assign channel tags and in some cases change channel names and numbers. This is my "perfect install" - so far so good.
Now the not so good - for some reason the DVB-S/2 tuner loses muxes regularly, either as a result of my actions (i.e. leaving TVH running whilst there is no satellite feed) or due to a glitch/crash in the DVB driver which takes the cards out (either temporarily or until next reboot). When this happens, TVHeadend removes the services from the affected multiplexes - sometimes this means DVB-S/2-only channels disappear and reappear. Where a DVB-S/2 service was merged with a DVB-T/2 service, the DVB-S/2 service disappears and when it reappears it does so as a duplicate channel.
Any channels removed as a result of an affected mux/service returns without the channel tag I previously assigned.
I've devised a workaround to this issue - I keep a "good" archive of the tvheadend directory and if this issue occurs, I simply restore the ./channels/config and ./input/dvb folders to put my multiplexes, services, channels and tags right back how they were before the issue happened.
This should be pretty easy to replicate;
Configure a DVB-S card
Assign channels automatically using bouquets
Remove the satellite feed (or "kill" the signal in some other way)
What I would like to see is either;
TVHeadend remembering the state of a service before it went AWOL (i.e. service xyz was part of channel abc and channel abc had tag 123) or
Stop TVHeadend from assuming that when a service is temporarily unavailable that it is AWOL - presume it will return at some point and when it does, it should slot right in to where it was before it disappeared.
I hope this makes sense - sorry it's not an easy thing to explain but perhaps you've seen this before or you know that this behaviour is by design and can suggest a different way of working.
Updated by Jonathan Thomson about 5 years ago
I do wonder if the auto mapping based on bouquets is part of the problem - from what I know about bouquets, they are designed to automatically add, remove, rename, reorder etc. channels as they're found on the transponder. It makes no allowance for a channel temporarily disappearing from the mux.