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