[mythtv] Memory leaks in SVN

Daniel Kristjansson danielk at cuymedia.net
Sun Apr 9 16:13:09 UTC 2006


On Sun, 2006-04-09 at 15:40 +0100, Ed W wrote:
> >We know precisely the reason behind the 'funny names', we just haven't written 
> >a permanent solution yet. There are some patches and explainations in ticket 
> >#1485. The sdt.patch for example should fix the majority (all?) of the funny 
> >names.
> Hmm, that patch seems to be already merged into svn 9647 which is what I 
> am using?  Still getting those funny names though
There was an ugly hack in that patch which wasn't applied, there is
some discussion in the ticket about figuring out the correct fix.
I think this effort got stalled because the hack works for DVB-T
in urban areas. But it doesn't work when there are repeaters (such
as in rural or mountainous areas) and it breaks DVB-S scanning.

> I am just scanning the notes on the ticket, but I am not immediately 
> seeing the reason for the issue?
> Can you direct me to do some more directed debugging on this please 
> (assuming it's of use and that someone more knowledgable isn't already 
> on the case?)

There are two callback functions in SIScan (siscan.cpp) HandleNIT() and
HandleSDT(). At the end of both of these callbacks there is a call
to HandleDVBDBInsertion(). This function is supposed to check that all
the NIT sections and all the SDT sections have arrived. If they have,
this function should insert the channels and tell the scanner to move
on to the next transport. But for some reason HasCachedSDT() is failing.

When the transport scanning times out without HandleDVBDBInsertion()
completing we run HandlePostInsertion(). If an NIT has been seen
we try to run HandleDVBDBInsertion again, but without requiring a
complete set of SDT's. If we don't see an NIT either we check to
see if a PAT has been seen and if it has we inserts a channels based
on the PMT. It is these channels based on the PMTs which are creating
the "UNKNOWN" channels, since the PMTs don't contain channel names.

My guess is that if you figure out why GetCachedNIT() doesn't return
anything then you can fix this problem. If I recall correctly, the
hack in the patch Stuart suggested just ignored the NIT, but this
of course causes other problems since the NIT can contain important
information about how to use the the SDTs, and which transports to
scan next when doing a "Tuned" scan.

-- Daniel



More information about the mythtv-dev mailing list