On 14.10.2011 16:25, Timo Eskola wrote:
Hi,
I started to use xmltv2vdr for some channels with poor EPG data. I do not want to use xmltv2vdr for all channels so I modified xmltv2vdr.pl http://xmltv2vdr.pl script to clear only the channels which will be grabbed with xmltv. The result was multiple EPG events for some programs. I found 2 issues in VDR code that caused this.
- CLRE for a channel does not always clear all events. I compared CLRE for clearing all channels and noticed that it also clears events in timers. The patch will add this to CLRE for a channel.
Adopted for version 1.7.23.
- Second problem was that for some reason there are small differences in events times in EPG and xmltv. The patch find events close to the current event during EPG scan.
I don't see why you are adding 'Duration / 2' here. The call to
GetEventAround(StartTime + Around)
that you have introduced in your patch searches for the event closest to the "middle" of the event in question. Shouldn't you look for an event closest to the *start* of the given event? That would obsolete the new 'Around' parameter and the actual call could simply be
GetEventAround(StartTime)
What I don't like about this whole thing is that it totally defeats the purpose of the eventsHashStartTime hash table, which has been introduced to make this lookup faster. I'm afraid I can't accept this patch because of this.
Klaus
Now I have proper program data from EPG and xmltv.
http://www.tolleri.net/vdr/vdr/vdr-1.7.21-clre-epgscan.patch
Maybe Klaus can have a look if the changes can be implemented in VDR.