Linux Media Kernel Documentation

All Kernel media documentation can be found on 4 books:

The Linux Media Infrastructure userpace API. This book is split into 5 parts:

The Media subsystem kernel internal API

The Linux Digital TV driver-specific documentation

The Video4Linux (V4L) driver-specific documentation

Please notice that audio input/output on media devices use the ALSA API.

If you prefer, the entire media documentation is also available in PDF file format and ePUB file format.


Now, all documentation for the media subsystem should be written in Restructured Text markup kanguage (ReST) using the dialect used by Sphinx version 1.2.3.


1) Since July, 2016, all media documentation was converted to Sphinx version 1.2.3.

2) Since Sept, 15 2009, V4L and DVB API's got integrated into a compendium that presents both API's, plus the IR input event mapping.

Deprecated documentation

In the past, the documentation was written in DocBook, but this is deprecated on Kernel 4.8. The OLD Linux Media Infrastructure API documentation will be kept here for a while mainly to help identifying and fixing any issues that might have happened during its conversion to Sphinx.

Media Kernel developers Documentation

The Linux Kernel Device driver now has a chapter with the Media devices kABI It is also splitted into 4 parts:

NOTE: Please notice that this is a work in progress. There are still several things not properly documented. Feel free to contribute on enhancing this documentation.

Linux DVB libdvbv5 Documentation

The libdvbv5 API documentation, available since Sept, 2014, documents the libdvbv5 userspace library. It is also available in pdf format.

Complementary documents


A small collection of READMEs and FAQs is included in the Linux kernel source tree in linux/Documentation/dvb/ ( browse docs in the git repository).


A small collection of READMEs and FAQs is included in the Linux kernel source tree in linux/Documentation/video4linux/ ( browse docs in the git repository).

For developers, wrote a series of articles focusing at the development of a Linux V4L2 driver.

Really old legacy/outdated documents

The pre-merge V4L and DVB API specs are still available as separate documents. However, they are outdated and are kept here just as historic reference.

Legacy DVB documents

You can find the original PDF version of the Linux DVB API version 3 in the download area.

Legacy Video4Linux documents

A browsable online version of Video4Linux2 API updated up to pre-kernel 2.6.32 is at here.

There's a V4L Drivers guide at here.

Video4Linux API version 1 is obsolete. Driver and application developers are requested to migrate their work to V4L2 API.

There's an effort in course to fully remove its support from the drivers and the compatibility kernel driver mode, targeted to kernels 2.6.36/2.6.37.

Compatibility with V4L1 applications, including binary-only applications will be provided by v4l-utils libv4l.