[mythtv] DVB EIT Implementation

Stuart Auchterlonie stuarta at squashedfrog.net
Wed Oct 12 10:45:02 UTC 2005


On Wed, Oct 12, 2005 at 06:28:47AM -0400, Daniel Kristjansson wrote:
> On Wed, 2005-10-12 at 10:18 +0100, Stuart Auchterlonie wrote:
> > On Wed, Oct 12, 2005 at 09:57:52AM +0100, John Pullan wrote:
> 
> > Something I noticed while looking at the memory leaks is the
> > Events map contains events for EVERY channel available, but
> > GetEmitID only ever picks events from the channels on the
> > current mplex.
> It should only contain the events for that transport,
> and emit them when they are known to be complete.

Ahh, this is where various situations are different.

UK DVB-T transmits EIT info for all mplexes on all mplexes.
Aus DVB-T transmits EIT info for 1 mplex on that mplex.
  (plus the info isn't very good apparently...)
DVB-S is sometimes like both of these and sometimes has a single
channel carrying EIT info.

No idea about ATSC.

> 
> > Put another way, there can be event information in the Events
> > map, but they won't be inserted because of the way GetEmitID
> > works.
> That sounds like a possible bug, but keep reading...
> 
> > It would also be nice to clear each set of events after we
> > have inserted them in the database. At the moment we only
> > do that when siparser is deleted.
> The reason they are kept is because they are part of a "data carousel".
> What that means is there are lots of transmission glitches and the like
> so you never get all the EIT information when it is first sent to you.
> But since the it is continuously being fed from a ringbuffer, you just
> wait for the parts you are missing to come around again. When your
> data block is complete, you send it along to EITHelper where it is
> inserted in the DB. But you keep a copy so you know not to try to fetch
> it off the "data carousel" again and what not to send to the EITHelper
> again. You would soon have a partial version of you data block if you
> didn't track the data, and redundant DB inserts are a waste of time.

The data carousel makes sense, so keeping a cache makes sense too.
There isn't much point to signatures though.

The way it works now is based on the assumption you outlined above,
that this mplex only has data for this mplex.


Stuart



More information about the mythtv-dev mailing list