Mailing List archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[linux-dvb] Re: dvbsak 0.0.2
Hi,
> Of course. I'm just not sure yet which CVS repository to use.
Good. It is quite easy to open a SourceForge project. Maybe it is a
bad idea to open a new one, for one does exist for dvbtools.
But my feeling says it's better if linuxtv.org is used.
> Ugh... =) I think I'll lean towards Doxygen.
A small explanation of the syntax of the comments:
http://www.stack.nl/~dimitri/doxygen/docblocks.html#docblocks
Take also a look at the projects page, the GNU stdc++ library is
documented with it.
>
> > * What about specifications? I know it's a hard thing to do, but
could
> > you explain us what is the concept behind your library?? I mean
what
> > are the main types, the main functions, etc. If you could define
and
> > present your API before implementing it, it would help everybody,
we
> > could have a real global discussion about the needs.
>
> The library consists of several 'modules':
> - Transport Stream demuxer (struct dvbts_demux)
> - Service Information decoder (struct dvbsi_decoder)
> - DVB demux device handler (struct dvbdmx_dev, should be dvbdev_dmx)
> - DVB frontend device handler (struct dvbfe_dev, should be dvbdev_fe)
> - And others, as soon as they're implemented =)
>
> dvbts_demux takes care of validating the incoming TS packets and
> sending them away according to PID. It also takes care of continuity
> checking. Data is fed to dvbts_demux by
>
> int dvbts_push_packet(struct dvbts_demux *, const uint8_t * packet)
>
> in 188 byte chunks (which equals to the size of the TS packet,
surprisingly).
> Packet handlers are registered using:
>
> int dvbts_add_processor(struct dvbts_demux *, int pid,
> dvbts_processor_callback_t callback, void
*cb_arg);
>
>
> dvbsi_decoder is the complex part. It takes either TS packets or full
> sections as it's input. In case of TS packets, there's a state machine
> that takes care of constructing full sections from the packets. After
> the full section has been fed or collected, dvbsi_decoder tries to
> decode the table contained in it. If it knows how to handle the
table, it
> decodes the table and feeds it to a callback, if one has been
registered.
>
> I think the device handlers are pretty straightforward.
Sounds good! But can you use this even without callbacks? I mean write
some standard callback that can fill a big struct with the collected
information, a struct than you can find as a member of your
dvbsi_decoder struct? I'm sure it is.
I think the main point is that you need just a few line to achieve the
following things:
* Set the frequency and all the additional parameters of a
transponder, taken from a globally defined list. This list should also
define the available channels on each transponder.
* Start the playback of a channel.
* Gets the system info provided by a transponder in a big structure.
* Sends some data to the MPEG2/Sound decoder.
* Make a full scan of the available frequencies. Like waht you did for
dvbscan, but integrated in the library.
* ...
Just the main features you are awaiting from a library, hide the
details as much as possible. Of course, these ready-to-use functions
should in turn call more general-purpose functions.
I hope it sounds realistic.
Ben
--
Info:
To unsubscribe send a mail to listar@linuxtv.org with "unsubscribe linux-dvb" as subject.
Home |
Main Index |
Thread Index