yes you are right it is with this patched "TurnOffTuningChannelCache.zip"
and with "tuning channel cache"Turn off, it works
and with "tuning channel cache"Turn off, it works
// update any service scrambled / unscambled changes
if (_channelInfo.scrambled == channel.FreeToAir)
{
channel.FreeToAir = !_channelInfo.scrambled;
Log.Info("subch:{0} SendPMT: Channel FTA information changed to {1} according to CAIDs in PMT.",
_subChannelId, channel.FreeToAir);
}
I agree, I didn't find any other place in TV Server code where tuning details are stored.the only place I can see where tuningdetails are persisted is in:
PersistPMTtoDataBase method.
this takes care of initial changes to the FTA flag.
Yes, when FTA flag is changed is not stored into database. Tuning detail is stored into database only when PMT PID changed.then we have live changes to the FTA flag, this might not be handled yet, as MM states.
Yes, it's only workaround and I suppose that workaround will be removed when FTA detection will be fixed (or another solution will be chosen).I definitely would like to avoid having another setting in TV Server configuration - no disrespect to you georgius, but this solution feels like it is only a work-around for one of the problems.
I agree with you, we have to think how to fix this for MP 1.3.0 because new functionality makes MP unusable for some part of users.Of course I want to re-iterate that this is my ideal solution. It would be quite a lot of work to implement this; especially some of the TV Service logic. We need to be practical and consider what is doable for 1.3b...
Correct.The problem here was not caused by a mixed channel - it was triggered by incorrect FTA/encrypted detection in the library, and then made worse by the cache synchronisation problem.
I think that this could lead to slower changing channels as is in MP 1.2.3.Maybe we can just tune with any tuner, detect actual status in the library, and then throw an exception or not depending on CA availability and current channel status. TV service can move on to try the next tuner with current logic. The service logic would not be 100% optimal, but *significantly* less complex.
My intention was that this should only be done for mixed channels. It would definitely be slower in the case where the first tuner is not able to decrypt the channel. However I don't know if we have the time to implement and test fully optimised logic.I think that this could lead to slower changing channels as is in MP 1.2.3.Maybe we can just tune with any tuner, detect actual status in the library, and then throw an exception or not depending on CA availability and current channel status. TV service can move on to try the next tuner with current logic. The service logic would not be 100% optimal, but *significantly* less complex.
Absolutely - the cache is fine... even great ... as long as it doesn't have negative impacts.I think that card allocation cache and tuning detail cache is not bad idea - it just not work as we want because of wrong FTA detection. Extending the TS header scrambled bit checking and/or searching for CAT's in stream should be better solution as my workaround.
...it partially solves #1 (people not prevented from viewing FTA channels)...1. Incorrect FTA/encrypted detection in the library.
2. Cache de-synchronisation with the detected FTA/encrypted status.
3. TV service making tuner allocation decisions with incorrect information.