Linux Media Kernel Documentation
All Kernel media documentation can be found on 4 books:
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.
3) Although it is possible to generate a PDF version of the specs, the generated PDF is not very useful, since some tables and pictures are larger than the output page. So the better is to use the browable 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
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 DocumentationThe libdvbv5 API documentation, available since Sept, 2014, documents the libdvbv5 userspace library. It is also available in pdf format.
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).
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.