[mythtv-commits] Ticket #5562: scanning Astra 28.2 doesn't populate the default authority descriptor

MythTV mythtv at cvs.mythtv.org
Tue Jan 6 15:22:28 UTC 2009


#5562: scanning Astra 28.2 doesn't populate the default authority descriptor
-------------------------+--------------------------------------------------
 Reporter:  stuarta      |        Owner:  stuarta 
     Type:  defect       |       Status:  assigned
 Priority:  minor        |    Milestone:  0.22    
Component:  channelscan  |      Version:  head    
 Severity:  low          |   Resolution:          
  Mlocked:  0            |  
-------------------------+--------------------------------------------------

Comment(by David Matthews <dm at prolingua.co.uk>):

 I've been looking into this and the attached patches enable the channel
 scanner to pick up the default authority from Freesat data.  The default
 authority is actually transmitted using BAT and SDTo on the non-standard
 PID 3841.  BAT is used where many channels share the same default
 authority, essentially BBC and ITV; and SDTo for the remainder.  One
 complication that appeared during testing was that there are SDTo, and
 possibly BAT, on PID 0x11 with the same ID as those on PID 3841 but
 different versions.

 Patches 1, 2 and 3 are fairly straightforward.  I originally used the BAT
 code from #5530 but once it became clear that the layout of a BAT was
 essentially the same as a NIT I largely copied the code from there.

 Patch 4, which adds this into the scanner, is more complicated.  The
 existing logic is driven by the arrival of the NIT and SDT.  When both
 have been seen the information from the SDT is added to the database and
 the next transport is selected.  In the case of the Freesat default
 authority it is necessary to wait until all the information from the BAT
 and SDTo has been collected before the SDT can be processed, but with the
 proviso that not all services in the SDT have a default authority.  This
 is done by looking at the SDT when it first arrives and setting a timer of
 10 seconds for the first of the BAT and SDTo to arrive.  Each BAT and SDTo
 is processed to add the default authorities to a map and the timer
 extended.  The next time an SDT arrives after the time has expired it can
 be processed.  This all works because DVBStreamData only allows tables
 with a particular version through once.  The version for SDT is reset
 (actually DTVSignalMonitor::HandleSDT does this anyway) so that it can be
 seen again.  The changes to ScanStreamData are to ensure that only the BAT
 and SDTo on the desired pid are processed.

 Note: While developing this patch I came across a bug that causes "mythtv-
 setup -v siparser" to segfault at the end of a channel scan.  The problem
 is that the destructor for SIScan calls SIScan::loc after the channel
 object has been deleted.  The fix is to set channel to zero in deleteLater
 and this fix is included in patch4.

-- 
Ticket URL: <http://svn.mythtv.org/trac/ticket/5562#comment:4>
MythTV <http://www.mythtv.org/>
MythTV


More information about the mythtv-commits mailing list