[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


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

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.


Christian Praehauser <cpraehaus at cosy.sbg.ac.at>
|| //\\//\\ || Multimedia Communications Group,
||//  \/  \\|| Department of Computer Sciences, University of Salzburg

More information about the linux-dvb mailing list