Hi all,
I realise that there is much 0.17 noise at the moment. Feel free to give this email a lower priority. :)
I've been looking at having MythTV merge the DVB Now/Next show EPG information into the database. Below is my current plan, and I thought I'd post here to see if it seems reasonable (this is my first bit of Myth hacking).
1) Make the siparser grab the current and next program information and hand it on...
siparser.cpp:
504a505,506
> case 0x4E: /* current program */
> case 0x4F: /* next program */
1207a1210,1215
> if ((head->table_id == 0x4E) || (head->table_id == 0x4F))
> {
> ((EventHandler*) Table[EVENTS])->Tracker[head->table_id_ext][0x4E].Reset();
> ((EventHandler*) Table[EVENTS])->Tracker[head->table_id_ext][0x4F].Reset();
> }
>
(Note that I see no reason why a patch like this one couldn't go in already. I say "like this one" because I haven't actually tested this one myself yet. There was an earlier patch posted to this list that did similar things. It didn't have the Reset() lines. Are these needed or have I misunderstood something here?)
2) Adjust the prefs to that the "on air guide" can be on at the same time as xmltv (channelsettings.cpp, lines 275 and 304)
3) Merge the new events into the database rather than just ignoring them. (siscan.cpp around line 997)
I was assuming something like this during the code to process on air guide events:
// find all programs in the DB with either start time -2 to +1 hours of this event (assuming shows are more likely to be delayed than moved forward) on the same channel
// loop through them looking for a match
//longest common substring in title - if over 50% of shorter string, then it is a match
//overlapping time - if multiple title matches, most overlap in time is best match
// if no title matches then insert duplicate entry in program table, increment counter
// else take best match and see if start and end times have changed
// if so, correct them and increment counter
(the counter I was referring to above is a counter in the current code that marks when changes have been made to the DB and the scheduler needs to be re-run.)
This algorithm would occasionally leave gaps in the EPG. I assume that is no big issue. It might also occasionally cause overlaps in the EPG. Is that going to cause a problem?
4) I think I also need to change things so that siscan is called regularly. Not sure where this is called from yet, or what the best schedule is. Two options I'm considering:
- Every 30 mins loop through the channels (just long enough to get Now/Next info)
- Half way through the show prior to any scheduled recording, scan for Now/Next info
Any thoughts or suggestions?
Will :-}
-- Dr William Uther National ICT Australia Phone: +61 2 9385 6357 Computer Science and Engineering Email: [EMAIL PROTECTED] University of New South Wales Web: http://www.cse.unsw.edu.au/~willu/ Sydney, Australia
_______________________________________________ mythtv-dev mailing list [email protected] http://mythtv.org/cgi-bin/mailman/listinfo/mythtv-dev
