Development: Linux DVB API history and future: Difference between revisions
(18 intermediate revisions by 7 users not shown) | |||
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 |
[[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 proceeded 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 == |
||
⚫ | |||
⚫ | |||
== 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. It was merged in Jun/2003 on this [[http://git.kernel.org/cgit/linux/kernel/git/tglx/history.git/commit/include/linux/dvb/version.h?id=33e9942ccbf8ecbb35f4eb576a1f650b15ba18a9 commit]]). |
|||
Today, v3 of the DVB API continues to serve the Linux community. |
|||
This API version mainly contained namespace cleanups but was mostly binary-compatible with the NEWSTRUCT branch. |
|||
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). |
|||
Today hosted in the dvb-kernel module in CVS. |
|||
⚫ | |||
The v3 API had several shortcomings when looking at it from the perspective of DVB system-on-a-chip (SoC) architetures used in newer generation set-top-boxes (STBs). |
|||
In 2004, the development of the v4 API was initiated to extend support coverage for the specific needs of these systems and in 2005 the first working version could be demonstrated. |
|||
⚫ | |||
Because the majority of the DVB community is working with standard PC hardware and not DVB SoCs, development was done by just a few core developers initially. When, due to various reasons, active pursuit of the project could not be maintained by these developers, the v4 API development was stopped and, consequently, has been passed by during the last years. |
|||
Some further history and information on this unfinished project can be found [[Linux DVB API Version 4|here]]. |
|||
Johannes' and Michael's current Project. The API was extended to support all features of today's latest STBs. Includes some cleanups. |
|||
⚫ | |||
Though originally slated as version 3.3. proposals, both [[Multiproto]] and [[S2API]] were designated as candidates for the version 5 of the API. |
|||
[[S2API]] was selected and added in kernel 2.6.28. |
|||
⚫ | |||
An RFC on a proposal for adding support for ISDB-T/ISDB-Tsb to DVB-API v5 was issued on 3 Aug 2009, with the goal to be added in 2.6.32. |
|||
(let's see;) |
|||
Latest revision as of 00:39, 6 February 2014
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 proceeded 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. It was merged in Jun/2003 on this [commit]).
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
The v3 API had several shortcomings when looking at it from the perspective of DVB system-on-a-chip (SoC) architetures used in newer generation set-top-boxes (STBs).
In 2004, the development of the v4 API was initiated to extend support coverage for the specific needs of these systems and in 2005 the first working version could be demonstrated.
Because the majority of the DVB community is working with standard PC hardware and not DVB SoCs, development was done by just a few core developers initially. When, due to various reasons, active pursuit of the project could not be maintained by these developers, the v4 API development was stopped and, consequently, has been passed by during the last years.
Some further history and information on this unfinished project can be found here.
v5: today.
Though originally slated as version 3.3. proposals, both Multiproto and S2API were designated as candidates for the version 5 of the API.
S2API was selected and added in kernel 2.6.28. An RFC on a proposal for adding support for ISDB-T/ISDB-Tsb to DVB-API v5 was issued on 3 Aug 2009, with the goal to be added in 2.6.32.