[linux-dvb] DVB-S2 BBFrame Interface and Software-based Demultiplexer

Christian Praehauser cpraehaus at cosy.sbg.ac.at
Tue Dec 4 17:15:43 CET 2007


Hello!

I recently started to work on adding DVB-S2 support to the existing DVB Demux in Linux-DVB.
With "DVB-S2 support" in the context of the demultiplexer I mean interfaces which allow to access DVB-S2
Base-band frames (BBFrames) and Generic Streams (Packetized and Continuous), as well as a software 
implementation which processes BBFrames and dispatches the data to different feeds (if not done by the card driver itself).

What I did is to add a new feed type "struct dmx_bb_feed" in demux.h. Functions for allocating and releasing
bb feeds were added to the Demux interface (struct dmx_demux) and are implemented by the DVB demux 
(dvbdmx_allocate_bb_feed and dvbdmx_release_bb_feed in dvb_demux.c,dvb_demux.h).

A bb feed can be allocated for a specific ISI or for all ISIs. Currently the following modes are supported:
	+ BB_FRAME	Deliver full BBFrames (incl. header) to demux feed (default)
	+ BB_PACK_GS	Deliver Packetized Generic Stream to demux feed
	+ BB_CONT_GS	Deliver Continues Generic Stream to demux feed
	+ BB_TS		Deliver Transport Stream (if stream is using TS-Compatibility mode) to demux feed

Although the DVB demux is very TS-specific (especially struct dvb_demux_feed) and
dvb_demux.c is already very complex, some reasons why I put it there are:
	- Try avoid code duplication
	- Keep demux-stuff at one place
	- Try to add BB-Frame support with minimal changes 
	- Can be used by existing drivers without much change

I created a Mercurial repo for this project, which is available under
http://www.cosy.sbg.ac.at/~cpraehaus/hg.cgi/bb-demux

Currently, I'm testing the whole thing, especially the handling of packetized data.
It will also soon be possible to feed TS packets received from DVB-S2 Base-band frames to the
TS demultiplexer, which then in turn can reassemble sections, for example.

Next step would be to extend the DVR device (), so that DVB-S2 "Base-band data" can be read in user-space.

Cheers,
Christian.

-- 
Christian Praehauser <cpraehaus at cosy.sbg.ac.at>
|| //\\//\\ || Multimedia Communications Group,
||//  \/  \\|| Department of Computer Sciences, University of Salzburg
http://www.cosy.sbg.ac.at/~cpraehaus/
http://www.network-research.org/
http://www.uni-salzburg.at/



More information about the linux-dvb mailing list