.. SPDX-License-Identifier: GPL-2.0

Contributors
============

.. note::

   This documentation is outdated. There are several other DVB contributors
   that aren't listed below.

Thanks go to the following people for patches and contributions:

- Michael Hunold <m.hunold@gmx.de>

  - for the initial saa7146 driver and its recent overhaul

- Christian Theiss

  - for his work on the initial Linux DVB driver

- Marcus Metzler <mocm@metzlerbros.de> and
  Ralph Metzler <rjkm@metzlerbros.de>

  - for their continuing work on the DVB driver

- Michael Holzt <kju@debian.org>

  - for his contributions to the dvb-net driver

- Diego Picciani <d.picciani@novacomp.it>

  - for CyberLogin for Linux which allows logging onto EON
    (in case you are wondering where CyberLogin is, EON changed its login
    procedure and CyberLogin is no longer used.)

- Martin Schaller <martin@smurf.franken.de>

  - for patching the cable card decoder driver

- Klaus Schmidinger <Klaus.Schmidinger@cadsoft.de>

  - for various fixes regarding tuning, OSD and CI stuff and his work on VDR

- Steve Brown <sbrown@cortland.com>

  - for his AFC kernel thread

- Christoph Martin <martin@uni-mainz.de>

  - for his LIRC infrared handler

- Andreas Oberritter <obi@linuxtv.org>,
  Dennis Noermann <dennis.noermann@noernet.de>,
  Felix Domke <tmbinc@elitedvb.net>,
  Florian Schirmer <jolt@tuxbox.org>,
  Ronny Strutz <3des@elitedvb.de>,
  Wolfram Joost <dbox2@frokaschwei.de>
  and all the other dbox2 people

  - for many bugfixes in the generic DVB Core, frontend drivers and
    their work on the dbox2 port of the DVB driver

- Oliver Endriss <o.endriss@gmx.de>

  - for many bugfixes

- Andrew de Quincey <adq_dvb@lidskialf.net>

  - for the tda1004x frontend driver, and various bugfixes

- Peter Schildmann <peter.schildmann@web.de>

  - for the driver for the Technisat SkyStar2 PCI DVB card

- Vadim Catana <skystar@moldova.cc>,
  Roberto Ragusa <r.ragusa@libero.it> and
  Augusto Cardoso <augusto@carhil.net>

  - for all the work for the FlexCopII chipset by B2C2,Inc.

- Davor Emard <emard@softhome.net>

  - for his work on the budget drivers, the demux code,
    the module unloading problems, ...

- Hans-Frieder Vogt <hfvogt@arcor.de>

  - for his work on calculating and checking the crc's for the
    TechnoTrend/Hauppauge DEC driver firmware

- Michael Dreher <michael@5dot1.de> and
  Andreas 'randy' Weinberger

  - for the support of the Fujitsu-Siemens Activy budget DVB-S

- Kenneth Aafløy <ke-aa@frisurf.no>

  - for adding support for Typhoon DVB-S budget card

- Ernst Peinlich <e.peinlich@inode.at>

  - for tuning/DiSEqC support for the DEC 3000-s

- Peter Beutner <p.beutner@gmx.net>

  - for the IR code for the ttusb-dec driver

- Wilson Michaels <wilsonmichaels@earthlink.net>

  - for the lgdt330x frontend driver, and various bugfixes

- Michael Krufky <mkrufky@linuxtv.org>

  - for maintaining v4l/dvb inter-tree dependencies

- Taylor Jacob <rtjacob@earthlink.net>

  - for the nxt2002 frontend driver

- Jean-Francois Thibert <jeanfrancois@sagetv.com>

  - for the nxt2004 frontend driver

- Kirk Lapray <kirk.lapray@gmail.com>

  - for the or51211 and or51132 frontend drivers, and
    for merging the nxt2002 and nxt2004 modules into a
    single nxt200x frontend driver.

(If you think you should be in this list, but you are not, drop a
line to the DVB mailing list)
