DVBZap Project Overview Documentation [2] [3] Sitemap

Introduction

Welcome. This project was born from using DVB-S cards. Two of them in one computer, to be exact. One is a budget card and one has a hardware decoder. At no time ever these cards did work out of the box. On all revisions of my linux operating system I had to recompile the dvb drivers directly from the linux-dvb source cvs.

The standard gui (graphical windows) tools however do not provide enough information to track down problems. In the end I was always ever using the command line tools - usually dvb-apps from the linux-dvb site and metzlerbros dvb-mpegtools for ts (transport stream) recording. In the beginning the ts recoding had to be recoded since mplayer did not recognize it. Plus I was messing with a number of video (overlay buffer) viewers since many of them were sending bogus informtion to the dvb drivers - xawtv seems to work in the majority of cases but I was patching gnome zapping and kde kdetv before that.

And so it did turn out that I had usually a number of open terminals on screen - two terminals with "szap", one with "xawtv", one with "mplayer", one with "ts2pes". (Using "ts2ps" results in bad mpeg recoding since satellite dvb streams have 2-3 seconds offset of audio to video which most transcoder programs do not get right unless they see an additional transport pes packet telling about it). Anyway, it was quite a mess on the screen - and switching channels on a card required to remember the correct szap terminal, control-c it and type a new command along with the channel name.

So, I had the urge to create a little gui that would combine the usages while still providing the required debugging information in case there are problems. I did end up with two different approaches that are represented in the dvbzap tarball - one is creating a highlevel C library of helper routines that interface to the linux-dvb kernel api that would allow me to put a gtk gui on top with all debugging information. It did turn out to be quite a bunch of work. In the meantime I did create a python gtk applet that would dock into my gome panel and present a gui for (some of the) terminals in use.

That did work for quite some time - and the project did not move on. As of late I was porting the python gtk applet code to pure gtk/C. As of version 0.2.9 the pygtk applet and libgtk applet are almost identical. Well, they need some polish that's for sure. However from hereon I am starting to provide documentation as I think that other people benefit from the weeks of work that had been already put into the source.

Personally, I will continue to add more features - the next big gui thing is to replace the combobox plus buttons of the current applet with a menu button and a channel switcher that works with the mouse wheel. On the backend side I want to integrate a recording tool (or record directly from the library code) and to start integrating some library code that gets turned into a gui widget presenting debugging information. However, do not think that it will be here fast - I have a lot of other things to do.

Patches are welcome. - Sincerely, Guido Draheim (MoCS)

2005-03-22