Development: Linux DVB API history and future: Difference between revisions

From LinuxTVWiki
Jump to navigation Jump to search
(some reorg)
Line 1: Line 1:
The Linux DVB API (application programming interface) is essentially a kernel interface for [[DVB|Digital Video Broadcasting]] device drivers.
== Introduction ==


Digital Video Broadcasting is an evolving field and every month new chipsets, STBs and software becomes available. Demands and Requirements change and thus even the best-established APIs have to evolve.
[[DVB|Digital Video Broadcasting]] is an evolving field that continuously sees new chipsets, STBs and software being developed and becoming available. As demands and requirements change, even the best-established APIs have to evolve too in order to keep pace with the technological advancements. Past development of the DVB API has proceed in a very conservative way such that application developers see only a minimum impact on their already-written code.

We tried to develop the public API in the past in a very conservative way so that application developers see only a minimum impact on their already-written code. Here a short overview over the pasttime milestones:


Here provided is a short overview of past, present and perhaps future API milestones:


== v1: the old Nokia API ==
== v1: the old Nokia API ==

Originally implemented on the first [[TI AV711x|AV711x]]-based [[Siemens]]/[[TechnoTrend]] DVB-C and DVB-S cards by Christian Theiss and the Metzler Brothers for Convergence Integrated Media.
Originally implemented on the first [[TI AV711x|AV711x]]-based [[Siemens]]/[[TechnoTrend]] DVB-C and DVB-S cards by Christian Theiss and the Metzler Brothers for Convergence Integrated Media.


== v2: the NEWSTRUCT branch ==
== v2: the NEWSTRUCT branch ==

The first major Refactoring Step, after this process had stabilized we were ready for all DVB-S, DVB-C and DVB-T cards and STBs available in those days.
The first major Refactoring Step, after this process had stabilized we were ready for all DVB-S, DVB-C and DVB-T cards and STBs available in those days.


== v3: DVB is part of the official Kernel ==
== v3: DVB is part of the official Kernel ==

This API version mainly contained namespace cleanups but was mostly binary-compatible with the NEWSTRUCT branch.
This API version mainly contained namespace cleanups but was mostly binary-compatible with the NEWSTRUCT branch.


Today hosted in the dvb-kernel module in CVS.
Today, v3 of the DVB API continues to serve the Linux community.


Both [[Multiproto]] and [[S2API]] were originally proposals for DVB API version 3.3, though their statuses as "version 3" have been dropped and, instead, adopted as the version 5 API proposals (see below).
{{Note|LinuxTV no longer uses CVS, having switched to Mercurial instead. However, the old CVS repository is still available; see [http://www.linuxtv.org/repo/ here].}}


Also see: [[Multiproto]] and [[S2API]] which are both proposals for DVB API version 3.3.

------------------------------------------------------------------------------------------
Presumably everything (v4,v5) below here is now obsolete


== v4: use all features of today's STBs ==
== v4: use all features of today's STBs ==
In addition to some intended cleanups of the v3 DVB API, development of a version 4 of the API was initiated to extend support coverage for features of newer generation [[STB]]s. Unfortunately, due to various reasons, active pursuit of the project was not maintained, and so its development fell into some sort of sleep-mode and, consequently, has been passed by. Some further history and information on this unfinished project can be found [[Linux DVB API Version 4|here]].

The API was extended to support all features of today's latest STBs. Includes some cleanups.

The project is currently not actively maintained. Unfortunately, none of the developers has worked on it for quite some time now due to various reasons. So the project is in some sort of sleep-mode.

If you are interested in developing the V4 API futher and want to work on the project, please contact Michael Hunold <hunold@linuxtv.org>.


== v5: tomorrow. ==
== v5: tomorrow. ==
Though originally slated as version 3.3. proposals, both [[Multiproto]] and [[S2API]] have been re-designated as candidates for the version 5 of the API.


(let's see;)





Revision as of 23:33, 9 December 2008

The Linux DVB API (application programming interface) is essentially a kernel interface for Digital Video Broadcasting device drivers.

Digital Video Broadcasting is an evolving field that continuously sees new chipsets, STBs and software being developed and becoming available. As demands and requirements change, even the best-established APIs have to evolve too in order to keep pace with the technological advancements. Past development of the DVB API has proceed in a very conservative way such that application developers see only a minimum impact on their already-written code.

Here provided is a short overview of past, present and perhaps future API milestones:

v1: the old Nokia API

Originally implemented on the first AV711x-based Siemens/TechnoTrend DVB-C and DVB-S cards by Christian Theiss and the Metzler Brothers for Convergence Integrated Media.

v2: the NEWSTRUCT branch

The first major Refactoring Step, after this process had stabilized we were ready for all DVB-S, DVB-C and DVB-T cards and STBs available in those days.

v3: DVB is part of the official Kernel

This API version mainly contained namespace cleanups but was mostly binary-compatible with the NEWSTRUCT branch.

Today, v3 of the DVB API continues to serve the Linux community.

Both Multiproto and S2API were originally proposals for DVB API version 3.3, though their statuses as "version 3" have been dropped and, instead, adopted as the version 5 API proposals (see below).

v4: use all features of today's STBs

In addition to some intended cleanups of the v3 DVB API, development of a version 4 of the API was initiated to extend support coverage for features of newer generation STBs. Unfortunately, due to various reasons, active pursuit of the project was not maintained, and so its development fell into some sort of sleep-mode and, consequently, has been passed by. Some further history and information on this unfinished project can be found here.

v5: tomorrow.

Though originally slated as version 3.3. proposals, both Multiproto and S2API have been re-designated as candidates for the version 5 of the API.