[linux-dvb] V4L/DVB Tuner API for analogue TV and digital TV devices

Markus Rechberger mrechberger at gmail.com
Thu Aug 9 17:19:52 CEST 2007


Hi,

as announced earlier already I started with another API which is
independent of any API core changes to support devices which use the
dvb-core framework for digital TV and the analogue TV framework for
analogue TV.

The newer API consists of a kernelmodule and a usersland daemon which
automatically loads the tuner modules which are implemented as shared
libraries.

The kernelmodule provides a node /dev/tuner where the usersland daemon
attaches and receives its control commands from kernelspace. The
mechanism behind that is similar to the udev mechanism. The userspace
daemon runs select() on the interface and the kernelmodule wakes the
daemon up if something is requested.
The daemon receives control commands like loading a specific tuner module.
As soon as such a call comes in the daemon looks at a list if the
requested tuner driver is available and forks itself and registers
(opens a new filehandle) the requested module at /dev/tuner.
If the requested module is not found it submits that result back to
kernelspace and attaching the requested tuner fails.

Currently there's one module (xc3028) ported to userspace and tested
with TV and DVB-T (radio is in progress).

The kernelmodule is licensed under GPL, the userspace daemon including
the userspace driver are dual licensed BSD/GPL since the usespace
tuner module is intended to be reused with other operating systems.

The current project site (which includes a link to the sources):
http://mcentral.de/wiki/index.php/Userspace_tuner

There's also a description how to use that API with existing devices,
drivers need a very small modification to get them work with that API.

Feel free to ask some questions about it and/or even to review the
code and comment it.

Markus



More information about the linux-dvb mailing list