Yes, sure - will need to do it later though as I don't have access at the moment.
I've done a fair bit of tracing already. I may very well not be right (and I'm happy to be corrected), but I believe I understand what I have seen. At the very least I have made up a good theory that seems to fit my understanding ;)
My understanding of how itshould work (and how it seems to work on e.g. the BBC channels):
* Due to the pre-recording padding on my profile tvh will tune to the right channel for the recording 10 minutes before the scheduled start time
* tvh will then monitor for EIT packets referring to the programme (event) I want to record
* tvh will start to record the programme when an EIT packet for the correct event is seen with a running status of 2 (starts in a few seconds) or 4 (running)
* tvh will stop the recording when an EIT packet for the correct event with a running status of 1 (not running) is seen ...... or it might be when a status of 2 or 4 is seen for a different event - haven't looked that deeply into the source
What I see in the traces for channels like BBC is that prior to the programme starting, EIT packets with a running status of 1 (not running) are transmitted for the programme due to start at fairly regular intervals prior to the programme actually starting to air. This, I think, is part of the problem with ITV.
What I have seen in the ITV traces (and some other channels) is that the EIT packets are not transmitted at such regular intervals prior to the recording starting. This is compounded by the fact that the Event ID transmitted in the EIT data by ITV is not the same as the event ID transmitted in the Freesat EPG (as far as I can see anyway).
In normal cirumstances, this wouldn't be an issue as TVH already has code that matches the EIT event to an EPG event using some fuzzy matching and updates the EPG event ID if necessary. It will also update any DVR timers associated with the old (EPG) event ID with the new (EIT) event ID. So, in an ideal world, things happen like this:
# tvh monitoring for EPG Event ID 1234
# tvh sees EIT with running status 1 (not running) for event ID 5678
# tvh uses fuzzy matching to realise that EIT event ID 5678 is the same programme as EPG Event ID 1234
# tvh updates the EPG event to have ID 5678
# tvh updates any DVR entries for event ID 1234 to have event ID 5678
# tvh sees EIT for Event ID 5678 with a running status of 2 or 4
# tvh matches event ID 5678 to the DVR entry updated earlier and recording is started
The problem is that tvh must see an EIT event with the "wrong" event ID early enough before the programme actually starts to compelte steps 3, 4 and 5 below. If it doesn't, when it sees the EIT event in step 6 it isn't able to match it to a DVR entry so the recording never starts.
ITV create an ideal scenario for this to happen by transmitting the EIT data for the required event less frequently than other channels and also becuase the event ID in the EIT is different to the event ID in the Freesat EPG. This is also why, if you have been watching ITV for a while before the programme starts, things tend to be a lot more reliable (because there has been more of a change to see and process EIT data and to update the event IDs).
I'm hoping to find some time soon to test a change to TVH that forces the DVR entry update (step 5 above) as soon as tvh has realised that the event IDs are the same (and before the running status is evaluated for the purposes of starting the recording). I'm fairly sure that will fix the issue for me, but before doing that, I was hoping that someone else would confirm that there reallyIS a problem and that I'm not just seeing an issue that doesn't exist because of a problem with my configuration. It could easily be that all the above is an absolute load of twoddle and I'm just making things up to fit what I think I have seen in the traces.