Mailing List archive

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

[vdr] Re: Proposal/Announcement: Alternative SI library



Marcel Wiesweg wrote:
> 
> > This came just in time for VDR 1.3 :-)
> >
> > The diff you provided doesn't remove the libdtv stuff from the makefile.
> > Does this mean you still use parts of that lib? A short glance over your
> > code would indicate you don't...
> 
> No, I don't use any parts of libdtv (actually libsi uses si_tables.h, but I
> copied that into headers.h). I think I replaced everything in eit.{c,h} which
> used libdtv. I simply didn't remove it from the Makefile.

Ok, fine.

> > Also (again, this is just after a quick glance at the code, so please
> > forgive me if I've overlooked something): the section data that VDR 1.3
> > will distribute to the individual filters (maybe implemented by plugins)
> > will be 'const u_char *'. For instance, the new cFilter class will have a
> > member
> >
> >  virtual void Process(const u_char *Data, int Length);
> >
> > which will be offered any section data block that gets received (and
> > was requested by that filter), but must not alter that data in any way.
> >
> > I'm wondering whether your functions all accept 'const' data.
> > If they don't, you may want to change that.
> 
> Data is stored in CharArray objects (see util.c). A buffer is allocated and
> received data is copied exactly once for each section, and that chunk of data
> is shared between all objects (Descriptors, LoopElements, Strings,...) a
> section contains. It is deleted when the last object containing a reference
> is deleted.
> So with this solution, the only function which has to accept const data is
> CharArray::assign, and that's no problem.
> 
> Nevertheless it might be a good idea to change everything in internal use to
> const because even if we operate on a private buffer there is no sense in
> changing it.

Do you really have to actually copy the data?
This might be handy in case you want to let some objects live longer,
but for VDR's use it would extract the interesting data and then forget
about it. So I would suggest to at least have a mode where the offered
data block is _not_ copied.

Klaus


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



Home | Main Index | Thread Index