[mythtv-commits] Ticket #11399: EIT scanner causes unnecessary reschedules and prevents idle shutdown

MythTV noreply at mythtv.org
Tue Feb 5 10:49:12 UTC 2013


#11399: EIT scanner causes unnecessary reschedules and prevents idle shutdown
---------------------------------------+------------------------
     Reporter:  Roger James <roger@…>  |      Owner:  stuarta
         Type:  Patch - Bug Fix        |     Status:  new
     Priority:  minor                  |  Milestone:  0.26.1
    Component:  MythTV - EIT           |    Version:  0.26-fixes
     Severity:  medium                 |   Keywords:  eit idle
Ticket locked:  0                      |
---------------------------------------+------------------------
 The handling of DVB table version numbers in eitcache.cpp is incorrect.
 This causes multiple unnecessary reschedules and as a consequence also
 prevents idle shutdown from occurring.

 Apologies to those who are familiar with this stuff for the simple summary
 that follows.

 DVB EIT specifies two types of tables "now next" tables and "schedule"
 tables. The "now next" table contains events referring to program content
 that is currently being transmitted or is to be transmitted immediately
 following the current program content. The "schedule" table contains
 events that refer to program content sometime in the future after the "now
 next" content. The tables do not overlap.

 The tables are identified by tableids. The "now next" table is identified
 by two tableids (0x4e and 0x4f) although there are two ids they both refer
 conceptually to the same single table. The "schedule" table is identified
 by 32 tableids (0x50 - 0x6f) again these all refer conceptually to the
 same single table.

 The current code in IsNewEIT (eitchache.cpp) treats every change of
 tableid to a lower number as a table change. I believe this is incorrect.
 The only thing the denotes a change to a table is a change of its version
 number.

 I have attached a patch that fixes this. To avoid changing the database
 schema the patch reuses the tableid field in the eitcache table to store
 the now next table version number. The patch also contains a patch to
 eithelper.cpp that causes now next table updates to be ignored if they do
 not relate to recording rules. The patch also stops tables that are not
 "current" being actioned.

 Roger

-- 
Ticket URL: <http://code.mythtv.org/trac/ticket/11399>
MythTV <http://code.mythtv.org/trac>
MythTV Media Center


More information about the mythtv-commits mailing list