Mailing List archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[vdr] explanation of the EIT hierarchy



Hello,

I have begun to integrate some processing from a provider's user defined 
descriptors and some of that is a little intensive, it keeps my 1.4ghz 
machine quite busy doing it in real time.

I am trying to understand how all the classes related to the EIT relate to 
one another.  My codebase is vdr-1.1.10 because that is where other 
modifications have been made.  My eventual goal is  to move to >1.1.25 or 
whatever is current at the time it is working correctly and I want ot 
migrate to the new tree, so explanations relating to both versions would 
be helpful.

A short optimization would be to keep track of the section id, network id, 
transport stream id, and version number we have seen, look up by section 
id, network id, and transport stream id, and if version matches, skip 
processing this section, else process it.

Now I have noticed that vdrProgramInfo, cEIT, and Event all seem to be 
quite similar, and copying all this stuff about makes vdr quite large in 
memory--it currently hovers around 60mb or more, depending on how long it 
is allowed to run.  I'm debating to whether there is a memory leak, or 
whether I have introduced one, but that will have to wait until I can get 
vdr to run long enough to profile it over a period of hours--currently 
there appears to be a bug in the drivers such that heavy section filter 
use seems to crash the arm.

The most logical place to perform the check seems to me to be in 
cSIProcessor::Action() at that point you haven't gone down any of the 
creating track.  Where would cSections and cSection need to be placed? I 
don't understand the point of class cEIT, so maybe you could help me out 
on this.

_J


-- 
Info:
To unsubscribe send a mail to listar@linuxtv.org with "unsubscribe vdr" as subject.



Home | Main Index | Thread Index